国家开放大学《操作系统》形考任务(应用题)参考答案1.用如图所示的进程状态转换图能够说明有关处理机管理的大量内容。图进程状态转换图试回答:① 什么事件引起每次显著的状态变迁?② 下述状态变迁因果关系能否发生?为什么?参考答案:①就绪→运行:CPU 空闲,就绪态进程被调度程序选中。运行→就绪:正在运行的进程用完了本次分配给它的 CPU 时间片。运行→阻塞:运行态进程因某种条件未满足而放弃对 CPU 的占用,如等待读文件。阻塞→就绪:阻塞态进程所等待的事件发生了,例如读数据的操作完成。② 下述状态变迁:(A)2→1:可以。运行进程用完了本次分配给它的时间片,让出 CPU,从就绪队列中选一个进程投入运行。(B)3→2:不可以。任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再由运行态变为就绪态。(C)4→1:可以。某一阻塞态进程等待的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。2.系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用 P、V 操作写出这些进程使用打印机的算法。参考答案:因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。设三个进程分别为 A、B 和 C。设一个互斥信号量 mutex,其初值为 1。进程 A进程 8进程 CV(mutex}V(mute×)V(mulex)3.判断下列同步问题的算法是否正确?若有错,请指出错误原因并予以改正。① 设 A,B 两个进程共用一个缓冲区 Q,A 向 Q 写入信息,B 从 Q 读出信息,算法框图如图左侧所示。② 设 A,B 为两个并发进程,它们共享一个临界资源。其运行临界区的算法框图如图右侧所示。参考答案:① 这个算法不对。因为 A、B 两个进程共用一个缓冲区 Q,如果 A 先运行,且信息数量足够多,那么缓冲区 Q 中的信息就会发生后面的冲掉前面的,造成信息丢失,B 就不能从 Q 中读出完整的信息。改正:A、B 两进程要同步使用缓冲区 Q。为此,设立两个信号量:empty 表示缓冲区 Q 为空,初值为 1;full 表示缓冲区 Q 为满,初值为 0。算法框图如图 1 所示。② 这个算法不对。因为 A、B 两个进程是并发的,它们共享一个临界资源,所以二者应互斥地使用该临界资源,在进入临界区时不存在先 A 后 B 的时...