您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统第三次作业参考答案
1操作系统作业(2011-3-14):课本:P8327(不会出现死锁的哲学家进餐问题)、2828、varempty,full:semaphore:=1,0;beginparbeginproducer:consumer:beginrepeatbeginrepeatproduceanitemp;wait(full);wait(empty);c:=buffer;buffer:=p;signal(empty);signal(full);consumec;untilfalse;untilfalse;endendparend.操作系统作业(2011-3-16):1、有一个报箱为A、B两人共同使用,每次只能装一份报纸。A订阅《科技报》,B订阅《新民晚报》,投递员C、D分属科技报社和新民晚报社,试用P、V操作写出他们的同步执行程序。2、设有n个进程共享一个程序段,对于如下两种情况,请问所采用的信号量初值是否相同?各是多少?信号量的值的变化范围如何?(1)如果每次只允许一个进程进入该程序段;(2)如果每次最多允许m个进程(mn)同时进入该程序段。3、设有两个优先级相同的进程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=z+y;z=x+z;4、进程之间存在哪几种制约关系?各是什么原因引起的?以下活动各属于哪种制约关系?(1)若干学生去图书馆借书;(2)两队进行篮球比赛;(3)流水线生产的各道工序;(4)商品生产和社会消费。5、什么是多线程?多线程和多任务有什么区别?参考答案:1、vars,science,night:semaphore:=1,0,0;beginparbeginA:beginwhile(true)C:beginwhile(true)2{wait(science);{wait(s);取科技报;投递科技报;signal(s);signal(science);}}end;end;B:beginwhile(true)D:beginwhile(true){wait(night);{wait(s);取新民晚报;投递新民晚报;signal(s);signal(night);}}end;end;parend;end.2、(1)由于每次只允许一个进程进入该程序段,因此可以将该程序段看成是临界资源,应设初值为1的信号量。当没有进程进入该程序段时,信号量的值为1;当有一个进程进入该程序段且没有进程等待进入该程序段时,信号量的值为0;当有一个进程进入该程序段且有一个进程等待进入该程序段时,信号量的值为-1;最多可能有n-1个进程等待进入该程序段,所以信号量的取值范围是:-(n-1)≤信号量≤1(2)由于每次最多允许m个进程进入该程序段,因此可以将这个程序段看成是m个程序段,每个进程使用一个程序段,应设初值为m的信号量。当没有进程进入该程序段时,信号量的值为m;当有一个进程进入该程序段且没有进程等待进入该程序段时,信号量的值为m-1;当有m个进程进入该程序段且有一个进程等待进入该程序段时,信号量的值为-1;最多可能有n-m个进程等待进入该程序段,所以信号量的取值范围为:-(n-m)≤信号量≤m。3、并发进程P1、P2中各语句执行的前趋图为:无论调度顺序如何,进程执行到语句7时x的值为5,y的值为3。由于语句3的执行结果不受语句7的影响,语句3执行后,z的值为4。此后语句4和语句8可以并发执行:(1)若语句4先执行,则两进程执行结束后,x的值为5,y的值为7,z的值为9。(2)若语句8先执行,则两进程执行结束后,x的值为5,y的值为12,z的值为9。1:y=12:y=y+23:z=y+14:y=z+y5:x=16:x=x+17:x=x+y8:z=x+z34、(1)是互斥关系,同一本书只能被一个学生借阅,或者任何时刻只能有一个学生借阅一本书。(2)是互斥关系,篮球是互斥资源。(3)是同步关系,一个工序完成后开始下一个工序。(4)是同步关系,生产商品后才能消费。5、多线程指的是在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。多线程与多任务的区别:多任务是针对操作系统而言的,代表着操作系统可以同时执行的程序个数;多线程是针对一个程序而言的,代表着一个程序内部可以同时执行的线程的个数,而每个线程可以完成不同的任务。操作系统作业(20110324)题目及答案:有5个进程Pa、Pb、Pc、Pd、Pe,它们同时依次进入就绪队列,它们的优先数和需要的处理器时间如表1所示。表1进程的情况进程处理器时间优先数Pa103Pb14Pc23Pd14Pe52忽略进程调度等所花费的时间,请回答下列问题:a.分别写出采用“先来先服务”和“非抢占式的优先数”调度算法选中进程执行的次序。b.分别计算出上述两种算法使各进程在就绪队列中的等待时间以及两种算法下的平均等待时间。c.某单处理器系统中采用多道程序设计,现有10个进程存在,则处于“运行”、“阻塞”、“就绪”状态的进程数量最小和最大值分别可能是多少?答案:a.采用“先来先服务”调度算法时进程调度次序:Pa→Pb→Pc→Pd→Pe采用“非抢占式的优先数”调度算法时进程调度次序:Pa→Pe→Pc→Pb→Pdb.采用“先来先服务”调度算法时各进程的等待时间如表2所示。表2“先来先服务”各进程的等待时间进程等待时间运行时间Pa010Pb101Pc112Pd131Pe145平均等待时间(0+10+11+13+14)/5=9.6采用“非抢占式的优先数”调度算法时进程调度次序如表3所示。表3“非抢占式的优先数”调度算法时进程调度次序进程等待时间运行时间4Pa010Pe105Pc152Pb171Pd181平均等待时间(0+10+15+17+18)/5=12c.运行态:最少0个,最多1个:阻塞态:最少0个,最多10个;就绪态,最少0个,最多9个。
本文标题:操作系统第三次作业参考答案
链接地址:https://www.777doc.com/doc-2454586 .html