(操作系统习题最经典.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(操作系统习题最经典

1、设有两个优先级相同的进程P1,P2如下所示。令信号量S1,S2的初值为0,试问P1,P2并发运行结束后,x=? ,y=? ,z=? 进程P1 进程P2 y:=1; x:=1; y:=y+2; x:=x+1; V(S1); P(S1); z:=y+1; x:=x+y; P(S2); V(S2); y:=x+y z:=x+z X=5, y=8, Z= 9. 2、在生产者-消费者问题中,假定在生产者和消费者之间的公用缓冲池中有n 个缓冲区,可利用互斥信号量mutexP使生产者进程实现对缓冲池的互斥使用,利用互斥信号量mutexC使消费者进程实现对缓冲池的互斥使用;利用资源信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将产品送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个产品。试用记录型信号量正确实现生产者和消费者的同步。 Semaphore mutexP=1, mutexC=1, empty=n, full=0; Item buffer[n]; int in=out=0; void producer() { While(1) { … Produce an item in netxp; … wait(empty); wait(mutexP); buffer[in]=nextp; in= (in+1) mod n; signal(mutexP); signal(full); } } Void consumer() { While(1) { …. wait(full); wait(mutexC); nextc=buffer[out]; out=(out+1) mod n; signal(mutexC); signal(empty); …….. Consume the item in nextc; ……. } } 3、在读者—写者问题中,假定为实现Reader与Writer进程间在读或写时的互斥而设置了一个互斥信号量Wmutex。另外,再设置一个整型变量Readcount表示正在读的进程数目。由于只要有一个Reader进程在读,便不允许Writer进程去写。因此,仅当Readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作。若Wait(Wmutex)操作成功,Reader进程便可去读,相应地,做Readcount+1操作。同理,仅当Reader进程在执行了Readcount减1操作后其值为0时,才须执行signal(Wmutex)操作,以便让Writer进程写。又因为Readcount是一个可被多个Reader进程访问的临界资源,因此,也应该为它设置一个互斥信号量rmutex。试用记录型信号量正确实现读者—写者问题的同步。 semaphore rmutex=wmutex=1; int readcount=0; void reader(int i) { while(1) { wait(rmutex); if(readcount==0) wait(wmutex); readcount++; signal(rmutex); … Perform read operation; … wait(rmutex); readcount--; if(readcount==0) signal(wmutex); signal(rmutex); } } void write(int j) { while(1) { wait(wmutex); perform write operation; signal(wmutex); } } 4、有两个作业A和B,分别在7:00和8:30到达系统,它们估计的计算时间分别为0.8小时和0.1小时,系统在9:00开始以响应比高者优先算法进行调度,请问在单道执行时这两道作业被选中的次序以及被选中时的响应比。 按照响应比的定义是: 响应比 = 优先权= (等待时间+ 要求服务时间) /要求服务时间 ∴在 9:00开始调度时两作业的啊应比如下: A作业的响应比=(120分钟+ 48分钟)/48分钟=3.5 B作业的响应比= (30分钟+ 6分钟)/6分钟=6 因而应先选中作业B执行;作业B被选中时的响应比为6,待作业B 执

文档评论(0)

xinghua3aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档