操作系统第二章节2.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第二章节2

第二章 进程管理 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操作完成进程间的同步与互斥应遵循以下几个步骤: 分析同步关系(有几个制约条件); 设置信号量(一般情况下,有几个制约条件设置几个信号量); 选择并确定信号量的初值; 写出进程间的同步关系。 P.V操作讨论 当为互斥操作时,它们同处于同一进程; 当为同步操作时,则不在同一进程中出现; 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前; 而两个V操作的顺序无关紧要。 2.5 管程机制 Monitor Mechanism 集中管理分散在进程中的临界段。 1971年,Dijkstra提出,为每一临界资源设置一个“秘书”进程。访问该临界资源的进程都需先报告“秘书”,由“秘书”实现诸进程的同步。Hoare(1974)和Hansen(1975),发展为管程(Monitors)。 把并发进程间的操作,集中于相应的管程中。 管程与信号量机制功能等价,且更容易控制。 The Grammar of Monitor type monitor-name=monitor variable declarations procedure entry P1(…); begin…end; … procedure entry Pn(…); begin…end; begin initialization code end 设var x:condition,则可有 x.wait——因等待x而阻塞,直至其他进程执行x.signal。 x.signal——唤醒一个因等待x而阻塞的进程。 如果x等待队列中无进程阻塞,该操作不产生任何作用。(与信号量的signal不同) 如:因共享资源忙而进程等待,条件变量可定义为: nonbusy:condiction。 则wait为:nonbusy.wait,signal 为:nonbusy.signal 练 习 1 设某计算机有两个I/O通道:分别挂一台输入机和一台打印机。卡片机上有一叠数据卡片,现在要把这些数据逐一输入到缓冲区B1,然后再复制到缓冲区B2,并在打印机上打印出来。 问:系统可设哪些进程来完成这个任务?用P.V原语写这些进程的同步算法。 系统可设3个进程:输入进程R、复制进程C、打印

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档