- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
练习 (第三章 进程管理)小结 Lifang ?2011 */4 操作系统 睡眠理发师问题 Process customer { P(seat) ; V(customers); //向理发师发信号 wait_for_haircut(); } 睡眠理发师问题 方法1 Var customers,seat: Semaphore:=0, 5 Process barber { While(1) { P(customers); //接收顾客信号 Cut_hair(); V(seat); } } Process customer { P(seat) ; V(customers); //向理发师发信号 P(barbers); //接收理发师信号 V(seat); Get_haircut(); } 睡眠理发师问题 方法2 Var customers,barbers,seat: Semaphore:=0,0,5 Process barber { While(1) { P(customers); //接收顾客信号 V(barbers);//向顾客发信号 Cut_hair(); } } Process customer { P(mutex); If (waitingCHIRS) then { waiting=waiting+1; V(customers); //向理发师发信号 V(mutex); P(barbers); //接收理发师信号 Get_haircut(); } else { V(mutex); } } 睡眠理发师问题 方法3 #define CHIRS=5 Var customers,barbers,mutex: Semaphore:=0,0,1 int waiting=0; Process barber { While(1) { P(customers );//接收顾客信号 P(mutex); waiting=waiting-1; V(barbers);//向顾客发信号 V(mutex); Cut hair(); } } 吸烟者问题(1971,Patil):在一个房间内有三位吸烟者、一位材料供应者。其中: a) 吸烟者: 需要拥有三种材料“烟草(Tobacco)、卷烟纸(Cigarette-paper)、火柴(Match)”才能吸烟: 第一位吸烟者有丰富的烟草; 第二位吸烟者有丰富的卷烟纸; 第三位吸烟者有丰富的火柴; ; 当吸烟者拿到所需要的材料后,唤醒供应者进行下一次投放; b) 材料供应者:不吸烟,且有丰富的Tobacco、Cigarette-paper、Match三种材料; 每次随机地将三种材料中的两种投放到桌子上; 允许拥有另一种材料的吸烟者吸烟。 【要求】编写算法用信号量和P、V操作实现它们之间的同步关系。 顺序执行和并发执行 进程:相关概念;(与程序比较);静态表示(上下文,包括PCB),动态表示(状态) 进程控制:状态转换(注意:挂起和激活)… 互斥和同步:临界资源、临界区;信号量、PV操作;经典同步问题、同步问题;管程 进程间通信IPC:基本概念;三种通信方式;直接、间接方式 死锁问题:原因,条件,解决方法;银行家算法 线程:引入原因,与进程比较 处理机调度:分为几个层次(作业调度、中级调度、进程调度);评价调度算法的指标;调度算法各自的特点;采用不同的算法计算进城的周转时间、调度顺序等;实时调度概念、常见算法 信号量: 对应每个资源设置信号量。 对customers,barbers是资源,申请barbers,释放customers 对barbers,customers是资源,申请customers,释放barbers Waiting是customers的一个副本,之所以要waiting,因为customers作为信号量,无法直接访问。故… 而waiting又是临界资源,所以mutex。 没办法直接交流,只能一个发送信号,一个接收信号 可适用于多个理发师的情况 每个顾客来了都要先经过等待椅子,再到理发椅上。 第一个也是如此,第一个来时,理发师正在理发椅上睡觉。顾客坐在等待椅上,给barber发信号(V(customers)). 轮到理发师进程执行时,理发师会申请客户资源试一试
文档评论(0)