交通923、927操作系统电子习题与答案daanch_第1页
交通923、927操作系统电子习题与答案daanch_第2页
交通923、927操作系统电子习题与答案daanch_第3页
交通923、927操作系统电子习题与答案daanch_第4页
交通923、927操作系统电子习题与答案daanch_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

临界资源是指一段时间内只允许一个进程的资源。许多物理设备(如打个进程中临界资源的那段代码称为临界区。同步机构应遵循下述四条基本准则:(1)空闲让进。当无进程处于临界区时,的临界区时,意味着相应的临界资源正被,因而所有其它企图进入临界区的进程必须等待,以保证诸进程互斥地临界资源(3)有限等待。对要求记录型信号量拥有两个分量:(1)整型变量value。其初始值表示系统中对应value0,则其表示当前运行状value0,则其绝对值表示对应信号量及资源的阻塞进程队列长度即受阻进程数量。(2)L用于等待对应信号量及资源的所有阻塞进程。因此,记录型信号量的wait操整型信号量机制并未遵循同步机构的让权等待的准则,记录型信号量机制则witsignal(full)signal(empty),则会造成full信号量初始值为0而使得消费者进程在一开始执行wait(full)操作时便被阻塞且始终未被唤醒,所以其始终无法从缓冲区中取得消息,也无法执行到signal(empty)empty信号量值也不再大于0,于是生产者进程执行wait(empty)操作时将被阻塞,从而两个进将无法继续执行下去,进而陷入死锁。(2)signal(empty),则一开始由于empty初始值大于0signal(full)操作的执行,消费者进程将会被唤醒,生产者进程执行wait(empty)操作时将被阻塞、停止向环形缓冲中填入消息和full0wait(full)操作时也将被阻塞。从而两个进将无法继续执行下去,进而陷入死锁。在生产者—消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)执行的,所以一开始可能消费者进程首先执行wait(mutex)操作之后生产者进执行wait(mutex)操作,而后者执行wait(mutex)操作时必然受阻,于是消与signal(full)互换位置,则由于二者的执行不存在相互依赖关系,所以不会造 whileW=1dono_op;Varmutex:semphore:=1;buffer:array[0..n-1]ofitem;in,out:integer:=0,0;produceaniteminnextp;

in:=(in+1)modn;out:=(out+1)modn;consumetheiteminnextc;untilfalse;哲学家进餐问题解决方案3:Varchopstick0:semphore:=1;chopstick1:semphore:=1;chopstick2:semphore:=1;chopstick3:semphore:=1;chopstick4:semphore:=1;untilfalse;signal(chopstick2,

untilfalse;untilfalse;untilfalse;Varempty,full:semphore:=1,0;buffer,nextp,nextc:item;collectaniteminnextp;

computebytheiteminnextc;until

及对局部于管程的数据设置初始值的语句等三部分组成(参80页图3-2TYPEproducer-consumer=monitor;Varin,out,count:integer;buffer:array[0..n-1]ofitem;notfull,notempty:PROCEDUREentryput(nextp:item);ifcount>=nthennotfull.wait;buffer[in]:=nextp;in:=(in+1)modn;count:=count+1;ifnotempty.queuethennotempty.signal;PROCEDUREentryget(nextc:item);nextc:=buffer[out];out:=(out+1)modn;count:=count-1;ifnotfull.queuethen

in:=out:=count:=0;produceaniteminnextp;consumetheiteminnextc;AND信号量机制的基本思想是,将进程在整个运行过程中所需要的所有临Varmutex:semphore:=1;buffer:array[0..n-1]ofitem;in,out:integer:=0,0;

produceaniteminnextp;Swait(empty,mutex);buffer[in]:=nextp;in:=(in+1)modn;Ssignal(mutex,

Swait(full,mutex);nextc:=buffer[out];out:=(out+1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论