




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统习题讲解一、进程概念
二、进程同步和互斥OperatingSystemConcepts进程概念(一)问题:如果系统中有N个进程,运行进程最多几个,最少几个?就绪进程最多几个,最少几个?等待进程最多几个,最少几个?OperatingSystemConcepts解答:运行进程最多1个,最少0个; 就绪进程最多N-1个,最少0个; 等待进程最多N个,最少0个;OperatingSystemConcepts进程同步和互斥(一)问题一:用P.V操作解决下图之同步问题getcopyputfstgOperatingSystemConcepts一个数据上的操作顺序:get-copy-putcpcgpcgpgGet不能向“满”的S中放;Copy不能从“空”的S中取;不能向“满”的T中放;Put不能“空”的T中取OperatingSystemConcepts(同步)信号量:{实际上也起到互斥作用}
S_Empty,T_Empty,{初值为1}
S_Full,T_Full; {初值为0}Get: BeginRepeatP(S_Empty)T_get_S();V(S_Full);Untilfalse;End Copy:BeginRepeatP(S_Full);P(T_Empty);S_copy_T();V(T_Full);V(S_Empty);Untilfalse;EndPut:BeginRepeatP(T_Full);T_put_G();V(T_Empty);Untilfalse;EndOperatingSystemConcepts进程同步和互斥(二)问题:用P.V操作解决下面问题司机进程:REPEAT启动车辆正常驾驶到站停车UNTIL…售票员进程:REPEAT关门售票开门UNTIL…OperatingSystemConcepts信号量:
S_Door, {初值为0}
S_Stop; {初值为0}司机进程: BeginRepeatP(S_Door);
启动;驾驶;停车;
V(S_Stop);Untilfalse;End 乘务员进程:BeginRepeat
关门;
V(S_Door);
售票;
P(S_Stop);
开门;
Untilfalse;End 同步要求:先关门,后开车; 先停车,后开门OperatingSystemConcepts第二类读者写者问题(写者优先)1)共享读2)互斥写、读写互斥3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)进程同步和互斥(三)OperatingSystemConceptsVar
mutex:semaphore;{互斥信号量,初值为1}
R:semaphore;{对应读者等待队列,初值为0}
W:semaphore;{对应写者等待队列,初值为0}{一般变量:}
Writing:Boolean;{初值false,有写者正在写}
rc :integer;{初值0,共享读的读者数}
rq :integer;{初值0,等待队列中读者数}
wq :integer;{初值0,等待队列中写者数}OperatingSystemConcepts读者进程BeginRepeat
P(mutex); If(WritingORwq<>0) ThenBegin
rq:=rq+1;
V(mutex); P(R);
P(mutex);{resume} End;
rc:=rc+1;
V(mutex); Read();OperatingSystemConcepts
P(mutex);
rc:=rc-1; If(rc=0ANDwq<>0) ThenBegin
wq:=wq-1; Writing:=true;
V(mutex); V(W); End; ElseV(mutex);UntilfalseEndOperatingSystemConcepts写者进程BeginRepeat
P(mutex); If(WritingORrc>0) ThenBegin
wq:=wq+1;
V(mutex); P(W); End; ElseBegin Writing:=true; V(mutex); Write();
OperatingSystemConcepts
P(mutex); If(wq<>0) ThenBegin
wq:=wq-1;
V(mutex); V(W); End ElseOperatingSystemConcepts
If(rq>0) ThenBegin Writing:=false; While(rq>0) Begin
rq:=rq-1; V(R) ; End End ElseBegin Writing:=false;
V(mutex); End EndUntilfalseOperatingSystemConcepts理发师问题:
理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子.如果没有顾客,则理发师便在理发椅上睡觉.当一个顾客到来时,他必须先唤醒理发师.如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开。进程同步和互斥(四)OperatingSystemConcepts
Var
Sn:semaphore;{位子数目,初值为n}S:semaphore;{理发师睡觉,初值为0}
mutex:semaphore;{初值为1} 顾客进程i:P(Sn);{门外观望}P(mutex);进门;V(mutex);V(S);等候;理发;V(Sn)P(mutex);出门;V(mutex);OperatingSystemConcepts理发师进程:RepeatP(S);
P(mutex);
叫人理发;
V(mutex);
理发;Untilfalse;OperatingSystemConcepts问题: 推广读写者问题中的消息缓冲处理。消息缓冲区为k个,有m个发送进程,n个接收进程,每个接收进程对发送来的消息都必须取一次进程同步和互斥(五)OperatingSystemConcepts解题思路:发送者发送消息后唤醒所有的接收者;所有的接收者都接收后空出缓冲区;接收者接收时要修改接收次数;接收计数和缓冲区的指针为临界资源,访问时要互斥。OperatingSystemConcepts
TypeBufferType=Record
msg:MessageType; count:integer;
mutex:semaphore;{初值为1}
empty:semaphore;{初值为1}
full:array[1..n]ofsemaphore; {初值全为0}
EndVar
mutex:semaphore;{初值为1}
s:integer; {初值为0}
buff:array[0..k-1]ofBufferType;{k是缓冲区大小;n是接收进程个数}{m是发送进程个数,通过s进行“写互斥”}OperatingSystemConcepts
ProcedureSender_i(i:integer);{i为发送进程的标号}Var s0,j:integer;BeginRepeat
P(mutex);s0:=s;s:=(s+1)modk;
V(mutex);P(buff[s0].empty);
在buff[s0].msg中写信息;
P(buff[s0].mutex);buff[s0].count:=n;V(buff[s0].mutex);For(j:=1tondo)V(buff[s0].full[j]);Untilfalse;EndOperatingSystemConceptsProcedureRecvr(i:integer);{i为接收进程的标号}Var j:integer;Beginj:=0;RepeatP(buff[j].full[i]);
从buff[j].msg中读信息;
P(buff[j].mutex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户回访工作计划
- 小学数学教师教学方法优化计划
- 高校扎染兴趣小组计划
- 餐饮服务合同诈骗罪报案材料范文
- 电商平台社群标准化体系管理流程
- 2025年基础教育统计分析计划
- 中学寝室规章制度完善计划
- 毕业论文致谢范文写作要点他
- 新人教版小学一年级上册数学复习巩固计划
- 钢结构维护管理中的质量问题及防治措施
- 2025年浙江省建设工程检测技术人员(地基基础)认证考试题(附答案)
- 科学实验室的环保节能设计与实施
- 治具管理改善
- 实验室安全应急预案及应急措施
- 《海运出口操作》课件
- DB33 1121-2016 民用建筑电动汽车充电设施配置与设计规范
- DB12T 1102-2021 邮政投递服务规范
- 静脉输液管理与患者满意度提升方案
- 北师大版八年级下册数学期末考试试题带答案
- 【MOOC】组织行为学-对外经济贸易大学 中国大学慕课MOOC答案
- 【MOOC】食品微生物学-北京林业大学 中国大学慕课MOOC答案
评论
0/150
提交评论