《杨老师习题课.docVIP

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

1、若在后备作业队列中等待运行的同时有三个作业1、2、3,已知它们各自的运行时间为a、b、c,且满足a<b<c,试证明采用短作业优先调度算法能获得最小平均周转时间。 答:由于短作业优先调度算法总是在后备作业队列中选择运行时间最短的作业作为调度对象,因此对短作业优先调度算法而言,这三个作业的总周转时间为 T1=a+(a+b)+(a+b+c)=3a+ab+c ① 若不按短作业优先调度算法来调度这三个作业,不失一般性,假定调度顺序为2、1、3,其总周转时间为: T2=b+(b+a)+(b+a+c)=3b+2a+c ② ②-①式得: T2-T1=b-a 由此可见,短作业优先调度算法能获得最小平均周转时间。 2、如图,系统进程分4类排入队列,各类之间采用优先级调度,各类内部采用时间片轮转调度。简述进程P1---P8的调度过程。 答:系统首先调度优先级4队列中的进程,P1、P2和P3按时间片轮转依次占用CPU。若某进程在时间片内执行未结束,将被排到队列末尾,等待下个时间片到来。若P1、P2和P3均运行结束,或均进入了等待态,系统会调度优先级3队列中的P4、P5执行,执行过程同上。若有处等待态的P1或P2或P3有—个变成就绪态,则当前时间片耗尽后又回到优先级4执行。只有当优先级4或优先级3队列中进程空或全进入等待态时,才调度优先级2队列中的进程P6、P7和P8执行,过程如上不赘。 3、用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小为32K,10K,5K,228K,100K。现有五个作业J1,J2,J3,J4和J5。它们各需主存11K,10K,108K,28K,115K。若采用首次适应分配算法能把这五个作业按J1~J5的次序全部装入主存吗?你认为按怎样的次序装入这五个作业可时主存空间的利用率最高? 答:最先适应分配算法能把这五个作业按J1~J5的次序全部装入主存时,J1、J2分割第一个空闲区,剩11K;J3、J4分割第四个空闲区,剩92K;J5无法装入,所以用最先适应分配算法不能把这五个作业按J1~J5的次序全部装入主存。 如果先装入J3,装入第四个空闲区,剩余空间120K;再装入J5,装入第四个空闲区,剩余空间5K;再装入J4,装入第一个空闲区,剩余4K;再装入J1,J1装入第五个空闲区,剩余空间104K;再装入J2,装入第二个空闲区,这样效率最好。 4、有一个仓库可存放A、B两种零件,最大库容量各为m个。生产车间不断地取A和B进行装配,每次各取一个。为避免零件锈蚀,按先入库者先出库的原则。有两组供应商分别不断地供应A和B,每次一个。为保证配套和合理库存,当某种零件比另一种零件超过n(nm)个时,暂停对数量大的零件的进货,集中补充数量少的零件。试用信号量与P、V操作正确地实现它们之间的同步关系。 答:按照题意,应满足以下控制关系:A零件数量- B零件数量≤n;B零件数量- A零件数量≤n;A零件数量≤m;B零件数量≤m。四个控制关系分别用信号量sa、sb、empty1和empty2实施。为遵循先入库者先出库的原则,A、B零件可以组织成两个循形队列,并增加入库指针in1、in2和出库指针out1、out2来控制顺序。 并发程序编制如下: var empty1,empty2,full1,full2:semaphore; mutex,sa,sb:semaphore; in1,in2,out1,out2:integer; buffer1,buffer2 :array [0..m-1] of item; empty1:=empty2:=m; sa:=sb:=n; in1:=in2:=out1:=out2:=0; cobegin { process producerA { repeat P(empty1); P(sa); P(mutex); buffer1[in1] :=A零件; in1:=(in1+1) mod m; V(mutex); V(sb); V(full1); untile false; } process producerB { repeat P(empty2); P(sb); P(mutex); Buffer2[in2] :=B零件; in2:=(in2+1) mod m; V(mutex); V(sa); V(full2); untile false; } process take { repeat P(full1); P(full2); P(mutex); Take from buffer1[out1] and buffer

文档评论(0)

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

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

1亿VIP精品文档

相关文档