版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统习题讲解一、进程概念
二、进程同步和互斥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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019版广西师范版 高中体育与健康 必修 10~12年级下篇 《第一章 健康行为的养成》大单元整体教学设计2020课标
- 《课电机正反转》课件
- 《级ACCESS数据库》课件
- 主题活动吃火锅真暖和
- 三年级数学五千以内加减混合两步运算题竞赛考核练习题
- 妇女节主题班队活动
- 危重患者突发事件应急处理
- 知觉的整体性微电影分库周欣然
- 住院病案首页数据质量评分表
- 医疗废物培训
- 入河(湖、库)排放口分类与管理导则
- 培训机构应急预案管理制度
- 2024年日历表含农历 周数(A4纸打印版)
- Unit7SectionA(3a-3c)教学设计人教版英语九年级全册
- 生物多样性保护与生态旅游
- 公益体育彩票宣传知识讲座
- 新质生产力解读课件
- 《初中语文阅读理解教学课件》
- 实现基于单片机的智能家居控制系统
- 助产专业职业生涯规划
- 2021年伟星新材分析报告
评论
0/150
提交评论