• 桌上有一空盘,允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放桔子, 儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时,一次只能放一个水果供吃者取用,
    请用P、v原语实现爸爸、儿子、女儿三个并发进程的同步。

题目分析:该题实际上时生产者与消费者问题,具体对于此题来说是一个生产者和多个消费者之间的问题。首先,根据题意可知,此题中包含3各进程,分别是爸爸进程,儿子进程,女儿进程。其次,要根据每个进程关注的对象,来确定信号量。爸爸进程关注的对象是:盘子是否为空;儿子进程:盘子中是否有橘子;女儿进程:盘子中是否有苹果。分析知,只有当爸爸在盘子中放了水果以后,儿子或女儿才能取水果吃。故会存在儿子和女儿进程等待爸爸进程的现象,及存在进程相互等待的现象。因此,此题涉及的是进程的同步问题。

解:设信号量S1表示盘子是否为空,故其初值为1;S2表示盘子中是否有橘子,故其初值为0;S3表示其初值为0。

int  s1=1,s2=0,s3=0;//根据初始时的状态确定的各信号量的初值
void  main(){cobegin;father();//爸爸进程son();//儿子进程daugher();//女儿进程coend;
}
father(){
while(1){        //爸爸进程p(s1);                  //判断盘子是否为空,申请资源将水果放入盘中;if(放入盘中的是橘子)V(s2);        //如果放入的是橘子,则唤醒儿子进程elseV (s3);         //否则唤醒女儿进程}
}
Son()     //儿子进程
{while(1){P(s2);           //判断盘中是否有橘子从盘子中取出橘子;V(s1);  //盘子空了,通知爸爸进程,唤醒爸爸进程吃橘子;}
}
daughter()     //女子进程
{while(1){P(s3);                       //判断盘子中是否有苹果从盘子中取出苹果;V(s1);             //盘子空了,通知爸爸进程,唤醒爸爸进程吃苹果;}
}
  • 苹果桔子问题:桌上有一个盘子,最多可以容纳两个水果,每次只能放入/取出一个水果;爸爸专向盘子中放苹果(apple),妈妈专向盘子中放桔子(orange),两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子里的苹果。请用P, V操作来实现爸爸、妈妈、儿子、女儿之间的同步和互斥。

此题实质也是生产者与消费者的问题,不过此处是多个生产者和多个消费者问题。题中存在四个进程,而爸爸进程和妈妈进程关注的是盘子中是否为空,儿子关注的是盘中是否有橘子,女儿关注的是盘子中是否有苹果。不过此题中与上题的不同之处为,此题中盘子中可放两个水果,即缓冲区的大小为2,且题中提到“每次只能放入或者取出一个水果”,即进程间要实现互斥。

解题过程如下


操作系统中PV操作实现进程同步与互斥问题(以苹果橘子问题为例)相关推荐

  1. 操作系统中PV操作之顾客理发师问题

    PV操作:对信号量进行相应操作 S:信号量 P:请求操作,相当于S=S-1:S>=0,进程继续进行 V:释放操作,相当于S=S+1,S>0,进程被唤醒 理发师问题 一个理发师,一把理发椅, ...

  2. Python解决操作系统习题中PV操作过桥问题

    上图是一道操作系统PV操作的习题,用Python解决之,建立一个线程模拟行人从北向南过桥,另一个线程模拟行人从南向北过桥,建立四个信号量,分别实现对桥.北桥段.南桥段和桥中央的互斥. north_si ...

  3. 操作系统中pv操作用c语言,操作系统-pv操作.doc

    <现代操作系统>课程设计 第 PAGE 5 页 共 NUMPAGES 20 页 课程设计报告(论文) 报告(论文)题目: PV操作解决生产者-消费者问题 作者所在系部: 计算机科学与工程系 ...

  4. 【操作系统】——PV操作

    大家都说操作系统中的PV操作部分看不懂,确实我在专业课中学习这门课时,PV操作被列为书中的重点和难点,就是因为它不好理解.当时自己听完课也是一头雾水,到期末考试结束,也没弄明白这是怎么一回事,更没有意 ...

  5. 操作系统中消费者与生产者的同步互斥问题

    在操作系统中,我们有进程,进程会占用资源,有些资源是可以共享的,但有些资源是只允许一个占用,不能共享,只有当占用的线程用完释放后,下一个需要用的线程才可以申请使用,这样的资源便是临界资源.属于临界资源 ...

  6. PV操作实现进程同步问题

    1.设玩具车间生产小组在一个工作台边工作,工作台上有N个位置(N≥3)用于存放车架或车轮,且每个位置只能放一件车架或车轮:又设生产小组有3个工人,其活动分别为: 工人1活动: do {加工1个车架:车 ...

  7. 7 操作系统第二章 进程管理 进程同步与互斥

    文章目录 1 进程同步与互斥 1.1 进程同步 1.2 进程互斥 1.3 进程同步机制遵循的原则 1.3 进程同步.互斥小结 2 进程互斥实现方法 2.1 互斥的软件实现方法 2.1.1 单标志法 2 ...

  8. 操作系统知识——PV操作

    用自己理解的语言描述,如有错误,请疯狂打脸没关系,希望能够指出来. 0. 几个概念 临界资源:一次只能供一个进程使用的资源. 互斥: 几个进程都需要同时使用同一临界资源. 同步:几个进程在某个任务点协 ...

  9. 【操作系统】PV 操作经典例题---三个进程之间的同步

    问题: 总共有 读入.执行.打印 三个进程,试用PV操作描述读入B1打印B2的同步过程. 问题解读: 这个问题就是说了这样一件事:一个输入B1,被操作之后,成为B2,将B2打印.怎样用PV操作来说这件 ...

最新文章

  1. python windows编程_在Windows下配置Python编程学习环境
  2. sqlite数值长度超过7位出错_数值计算方法 第一章 绪论
  3. openssl 非对称加密 RSA 加密解密以及签名验证签名
  4. linux杀气所以进程,Linux使用kill命令的注意事项
  5. SSM中通过okhttp3向接口发送xml格式的请求参数
  6. 统计日志中ip访问次数并排序的三种方法
  7. 职业学校教的计算机技术,浅谈对职业学校计算机专业数据库教学
  8. Host 'controller' is not mapped to any cell
  9. hdu3333(线段树)
  10. [linux]makefile使用
  11. 轻gc和重gc分别在什么时候发生_GC发展与现状
  12. JavaSE基础———对象数组和集合Collection
  13. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作...
  14. tensorflow python3编程_PixelCNN++实现:基于 Python3 和 TensorFlow
  15. mayan 游戏真是毒瘤
  16. Listary -- 高效率办公软件
  17. 【AR实验室】mulberryAR : ORBSLAM2+VVSION
  18. 揭秘苹果回收实验室:87%的旧iPhone被翻新重售
  19. 【小白】【大学】一名嵌入式软件开发小白的单片机学习历程、心路历程、经验分享
  20. 基于SSM架构的美发店会员信息管理系统

热门文章

  1. linux8安装bbr_手动更新 linux 内核开启 BBR 算法
  2. 【实用】windows常用软件及下载地址
  3. 计算机网络应用试卷,计算机网络应用基础试卷.doc
  4. cnn卷积神经网络三大特点,什么是卷积神经网络CNN
  5. KEIL5工程目录下面的组以及重要文件
  6. python如何创建txt文档_基于python实现生成指定大小txt文档
  7. 电脑上老出现万象预览的广告_【软件推荐】让你的电脑可以一键预览文件
  8. CV5200远距离WiFi图传输方案,远距离传输和低延迟传输特点
  9. 全面了解物联网发展现状,看这份报告就够了【附下载】
  10. 【linux】RAID磁盘阵列介绍