




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,操作系统习题讲解,一、进程概念二、进程同步和互斥,.,进程概念(一),问题:如果系统中有N个进程,运行进程最多几个,最少几个?就绪进程最多几个,最少几个?等待进程最多几个,最少几个?,.,解答:运行进程最多1个,最少0个;就绪进程最多N-1个,最少0个;等待进程最多N个,最少0个;,.,进程同步和互斥(一),问题一:用P.V操作解决下图之同步问题,.,一个数据上的操作顺序:get-copy-put,Get不能向“满”的S中放;Copy不能从“空”的S中取;不能向“满”的T中放;Put不能“空”的T中取,.,(同步)信号量:实际上也起到互斥作用S_Empty,T_Empty,初值为1S_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;End,Put:BeginRepeatP(T_Full);T_put_G();V(T_Empty);Untilfalse;End,.,进程同步和互斥(二),问题:用P.V操作解决下面问题,.,信号量:S_Door,初值为0S_Stop;初值为0,司机进程:BeginRepeatP(S_Door);启动;驾驶;停车;V(S_Stop);Untilfalse;End,乘务员进程:BeginRepeat关门;V(S_Door);售票;P(S_Stop);开门;Untilfalse;End,同步要求:先关门,后开车;先停车,后开门,.,第二类读者写者问题(写者优先)1)共享读2)互斥写、读写互斥3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者),进程同步和互斥(三),.,Varmutex:semaphore;互斥信号量,初值为1R:semaphore;对应读者等待队列,初值为0W:semaphore;对应写者等待队列,初值为0一般变量:Writing:Boolean;初值false,有写者正在写rc:integer;初值0,共享读的读者数rq:integer;初值0,等待队列中读者数wq:integer;初值0,等待队列中写者数,.,读者进程,BeginRepeatP(mutex);If(WritingORwq0)ThenBeginrq:=rq+1;V(mutex);P(R);P(mutex);resumeEnd;rc:=rc+1;V(mutex);Read();,.,P(mutex);rc:=rc-1;If(rc=0ANDwq0)ThenBeginwq:=wq-1;Writing:=true;V(mutex);V(W);End;ElseV(mutex);UntilfalseEnd,.,写者进程,BeginRepeatP(mutex);If(WritingORrc0)ThenBeginwq:=wq+1;V(mutex);P(W);End;ElseBeginWriting:=true;V(mutex);Write();,.,P(mutex);If(wq0)ThenBeginwq:=wq-1;V(mutex);V(W);EndElse,.,If(rq0)ThenBeginWriting:=false;While(rq0)Beginrq:=rq-1;V(R);EndEndElseBeginWriting:=false;V(mutex);EndEndUntilfalse,.,理发师问题:理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子.如果没有顾客,则理发师便在理发椅上睡觉.当一个顾客到来时,他必须先唤醒理发师.如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开。,进程同步和互斥(四),.,VarSn:semaphore;位子数目,初值为nS:semaphore;理发师睡觉,初值为0mutex:semaphore;初值为1顾客进程i:P(Sn);门外观望P(mutex);进门;V(mutex);V(S);等候;理发;V(Sn)P(mutex);出门;V(mutex);,.,理发师进程:RepeatP(S);P(mutex);叫人理发;V(mutex);理发;Untilfalse;,.,问题:推广读写者问题中的消息缓冲处理。消息缓冲区为k个,有m个发送进程,n个接收进程,每个接收进程对发送来的消息都必须取一次,进程同步和互斥(五),.,解题思路:发送者发送消息后唤醒所有的接收者;所有的接收者都接收后空出缓冲区;接收者接收时要修改接收次数;接收计数和缓冲区的指针为临界资源,访问时要互斥。,.,TypeBufferType=Recordmsg:MessageType;count:integer;mutex:semaphore;初值为1empty:semaphore;初值为1full:array1.nofsemaphore;初值全为0EndVarmutex:semaphore;初值为1s:integer;初值为0buff:array0.k-1ofBufferType;k是缓冲区大小;n是接收进程个数m是发送进程个数,通过s进行“写互斥”,.,ProcedureSender_i(i:integer);i为发送进程的标号Vars0,j:integer;BeginRepeatP(mutex);s0:=s;s:=(s+1)modk;V(mutex);P(buffs0.empty);在buffs0.msg中写信息;P(buffs0.mutex);buffs0.count:=n;V(buffs0.mutex);For(j:=1tondo)V(buffs0.fullj);Untilfalse;End,.,ProcedureRecvr(i:integer);i为接收进程的标号Varj:integer;Beginj:=0;RepeatP(buffj.fulli);从buffj.msg中读信息;P(bu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌与价格关联性-洞察及研究
- 部队交通安全培训内容课件
- 河南省南阳市镇平县2024-2025学年八年级下学期3月月考生物学试题(含答案)
- 20xx建设承诺书4篇
- 【2025年秋七上语文阶段测试】第3单元学业质量评价01(解析版)
- 山东省2025年普通高校招生网上报名信息表
- 车险销售原理课件
- 基于区块链的分离式墨盒供应链溯源系统构建瓶颈
- 城市更新浪潮中商务综合体功能迭代与社区服务融合的设施适配性
- 国际奢侈品赛道中东方纹样溢价权争夺的定价权困局
- 社区街道网格员安全培训
- 反诈知识竞赛题库及答案(共286题)
- 村卫生室医疗废物管理制度
- GB/T 44698-2024电动踝关节
- 生理学基础题库(46道)
- 月度财务分析报告(3篇)
- 华文版六年级上册书法教案
- 物流消防应急预案
- (人教版2024)八年级语文上册全册各课导学案(含答案)
- 2024-2030年中国汽车焊装设备行业竞争格局及未来前景预测报告
- 城镇污泥标准检验方法CJT221-2023 知识培训
评论
0/150
提交评论