第二章进程管理2.4-2.7.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 进程管理 Process Management 在传统的操作系统中,作为资源分配和独立运行的基本单位是进程。OS所具有的四大特征也都是基于进程而形成的。 本章主要内容 进程的基本概念 进程控制 进程同步 经典进程同步问题 管程机制 进程通信 线程 2.4 经典进程同步问题 Classical process synchronization problem 生产者-消费者动画演示(1) 4 利用AND信号量解决 问? 若一个Writer进程正在写,则Reader进程和其他Writer进程的状态和所执行到的位置? 本算法为读者优先算法,即当读者进行读时,写者必须等待,直到所有读者均离开,写者才能进入。存在的问题是什么? 写者优先:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。存在的问题是什么? 公平策略:规则 1:在一个读序列中,若有写者等待,则不允许新来读者开始执行。 2:一个写操作结束时,所有等待读者应比下一写者有更高优先权。 问:对于该公平策略,应如何予以解决呢? 四、打瞌睡的理发师问题 理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子; 理发师为理发椅上的顾客理发,没有顾客就在理发椅上睡觉; 第一个顾客到来,他必须先唤醒理发师; 如果顾客来时理发师正在忙,若有空椅子,则坐下来等;否则离开。 说 明: 理发师和每位顾客都分别是一个进程。 理发师:看是否有顾客,若没有,在理发椅上睡觉;否则,为等待最久的顾客服务,等待人数减1。 顾客:先看有无空座位(等候的顾客数是否少于椅子数),若有则等,等待人数加1;若理发师正瞌睡,则将其唤醒;否则,离开。 理发师和顾客的关系? 变量waiting,用于记录等候的顾客数,初值为0。由于它不是信号量,因此可对其进行增减等操作。 设顾客座椅数(chairs)为常量5。 经典IPC问题 生产者-消费者问题 有界缓冲区问题的建模 哲学家进餐问题 多进程同步问题的建模 读者-写者问题 数据库互斥访问问题的建模 打瞌睡的理发师问题 CS模式进程同步问题的建模 用PV操作完成进程间的同步与互斥应遵循以下几个步骤: 分析同步关系(有几个制约条件); 设置信号量(一般情况下,有几个制约条件设置几个信号量); 选择并确定信号量的初值; 写出进程间的同步关系。 练 习 1 设某计算机有两个I/O通道:分别挂一台输入机和一台打印机。卡片机上有一叠数据卡片,现在要把这些数据逐一输入到缓冲区B1,然后再复制到缓冲区B2,并在打印机上打印出来。 问:系统可设哪些进程来完成这个任务?用P.V原语写这些进程的同步算法。 系统可设3个进程:输入进程R、复制进程C、打印进程P; 这些进程之间的相互制约关系: R受C的约束;C受R、P的约束;P受C的约束。 信号量设置 B1full:缓冲区B1满,初值=0; B1empty:缓冲区B1空,初值=1; B2full:缓冲区B2满,初值=0; B2empty:缓冲区B2空,初值=1。 同步算法如下: 练 习 2 a,b 两点间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下: 当ab间有车行驶时,同向车可以同时驶入ab段,但反向车必须在ab段外等待; 当ab间无车时,a(或b)的车辆可以进入ab段,但不能从a,b点同时驶入; 请用wait,signal工具对ab段实现正确管理。 问题解答 互斥:双方互斥进入单行道;互斥信号量 而同方向的车可同时进入,故每个方向等待进入车道的第一辆车需争夺进入权,一旦争得进入权,同方向的车随意进入,否则需等对方的车都驶出后才能进入。为此,双方均应设置计数器记录该方向是否有车辆在行驶。斥进入的, 保证计数器互斥使用的互斥信号量。 Pab: Wait(ab) Ca++ If Ca=1 then wait(mutex); Signal(ab) enter; wait(ab) Ca- -; if Ca=0 then signal(mutex); signal(ab); 问题分析 一个读者有三种操作,进入、阅读、退出 其中,进入和退出操作要互斥使用登记卡,因此,登记卡作为临界资源。 进入要申请座位,若座位已满,否则不能进入; 退出要释放座位。 有两个进程(进入和退出),设两个信号量: 进入私有信号量SN,表示座位数,初值为100; 互斥信号量mutex,初值为1 。 练 习 4 三个进程R、W1、W2共享一个缓冲区Buf。进程R读入数据到Buf中;若缓冲区中的数为奇数,则进程W1将其取出显示;若缓冲区中的数为偶数

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档