第3章课后学习第1页操作系统第二次作业参考答案(第三章)一选择题1.进程从运行态转换成阻塞态的条件是C。A.进程的时间片用完B.被进程调度程序选中C.等待某一事件D.等待的事件已发生2.进程从运行状态变成就绪状态的原因是:A。A.该进程的时间片用完B.该进程等待输入输出操作C.该进程输入输出操作完成D.该进程已完成3.用P、V操作管理临界区时,信号量的初值应定义为C。A.-1B.0C.1D.n(n1)4.在引入线程的操作系统中,资源分配的基本单位是D。A.作业B.程序C.线程D.进程5.进程与线程的根本区别是A。A.进程是资源分配单位,而线程是调度和执行单位。B.线程是资源分配单位,而进程是调度和执行单位。C.进程是并发执行的,而线程是串行执行的。D.线程是并发执行的,而进程是串行执行的。6.用信箱实现通信时,使用B两条基本原语。A.打开与关闭B.发送与接收C.P操作与V操作D.同步与互斥7.在应对死锁问题中,银行家算法是用于B的。A.预防死锁B.避免死锁C.检测死锁D.解除死锁8.某系统中仅有4个并发进程竞争某类资源,并都需要该类资源3个,那么该类资源至少有A个,这个系统不会发生死锁。A.9B.10C.11D.12二判断题(你认为正确的写T,错误的写F)1.(F)在多道程序环境下,程序和机器执行程序的活动是严格一一对应的。2.(F)当一进程在运行中需等待某一事件发生时,便调用阻塞原语,将自己从运行态改变为就绪态。3.(F)一组同步的并发进程均可对自己的私用信号量进行P操作和V操作。4.(T)消息缓冲通信和信箱通信是进程通信的高级形式。5.(F)银行家算法可以预防死锁。6.(T)WindowsNT采用多线程机制。第3章课后学习第2页三简答题1.画图表示进程的三个基本状态及其转换条件。进程调度时间片等待某事件用完等待事件已发生2.什么是原语?属于进程控制方面的原语有哪些?解答:原语是指由若干条机器指令构成的并用以完成特定功能的一段程序,这段程序执行期间不可分割,不可中断。操作系统内核的各项功能是通过执行原语来实现的。属于进程控制方面的原语有进程创建原语、进程撤消原语、进程挂起原语、进程激活原语、进程阻塞原语和进程唤醒原语。3.引起进程调度的时机有哪几种情况?解答:引起进程调度的时机有以下几种情况:(1)现运行进程正常结束或异常结束;(2)现运行进程因某种原因(如I/O请求),从运行态进入阻塞态;(3)现运行进程执行某原语操作(如P操作、阻塞原语等),进入阻塞态;(4)在优先级调度且抢占方式情况下,一具有更高优先级的进程进入就绪队列要求运行;(5)在分时系统中,分给进程运行的时间片用完。当出现以上情况之一时,现运行进程使用的处理机被收回,并引起新一轮进程调度。4.简述公用信号量和私用信号量的用法及其初值。解答:在操作系统中,信号量表示资源的实体,其值仅能由P、V操作改变。公用信号量通常用于实现进程之间的互斥,是被一组互斥的进程所公用的,初值为1,它所联系的一组并发进程均可对其实施P、V操作(在进入各自临界区前实施P操作,离开临界区时实施V操作);私用信号量一般用于实现进程之间的同步,初值为0或某个正整数n,仅允许拥有该信号量的进程对其实施P操作,与它同步的进程对其实施V操作。5.什么是死锁?产生死锁的必要条件是什么?解答:一组进程中的每个进程,都无限期等待被该组进程中的另一进程所占有的资源,因而无法得到满足,永远不能继续前进,这种现象称为死锁,这组进程就称为死锁的进程。产生死锁有四个必要条件:(1)互斥控制条件,一个资源仅能被一个进程独占;(2)非剥夺控制条件,进程所获得的资源在未释放之前,不能被其它进程剥夺;(3)逐次请求条件,进程不是集中性的一次请求资源,而是逐次取得资源;(4)环路条件,进程之间对资源的请求和占用构成了环路。运行就绪阻塞第3章课后学习第3页四应用题1.某剧院售票厅,任何时刻最多可容纳100名购票者进入,当售票厅中少于100名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:(1)这是同步还是互斥问题?如用P、V操作管理这些并发进程,写出信号量的初值。答:这是互斥问题,设一公用信号量S,初值为100。(2)在下面程序的适当位置上添加信号量的P、V操作,以保证能正确地并发执行。Cobeginprocesspi(i=1,2,…)beginP(S);进入剧院售票厅;排队购票;退出剧院售票厅;V(S);end;coend;(3)若购票者最多为n(n>100)个人,请写出信号量的变化范围(最大值和最小值)。答:从-(n-100)变化到100。2.某系统中有四类资源,五个进程。当前资源分配情况如下:AllocationNeedAvailableABCDABCDABCDP0:003200121623P1:10001750P2:13542356P3:03320652P4:00140656试问:(1)当前状态是否安全?若是安全状态,请给出进程安全序列。(2)如果进程P2提出请求Request2=(1,2,2,2),系统能否将资源分配给它?说明原因.解答:(1)当前状态是安全的。找出进程安全序列的分析过程如下:第3章课后学习第4页PiP0P3P1P4P2ABCDABCDABCDABCDABCDNeedi00120652175006562356Available162316551987298729911从分析过程,可得出进程安全序列是:{P0,P3,P1,P4,P2}。(2)按照银行家算法,因Request2(1,2,2,2)≤Need2(2,3,5,6),且Request2(1,2,2,2)≤Available(1,6,3,2),试探性地将请求的资源分给进程P2,并修改有关数据结构的数值:Available=Available(1,6,3,2)-Request2(1,2,2,2)=Available(0,4,1,0)Need2=Need2(2,3,5,6)-Request2(1,2,2,2)=Need2(1,1,3,4)Allocation2=Allocation2(1,3,5,4)+Request2(1,2,2,2)=Allocation2(2,5,7,6)此时系统可用资源Available(0,4,1,0)均不能满足这五个进程还需要的资源数量,分别是(0,0,1,2)、(1,7,5,0)、(1,1,3,4)、(0,6,5,2)和(0,6,5,6)。系统将进入不安全状态,恢复Need2、Allocation2及Available原来的值。结论是:对进程P2的请求不予分配,进程P2阻塞等待。(完)