1第6章并发进程1.并发进程中与共享变量有关的程序段称为(B)A.共享子程序B.临界区C.管理区D.公共数据区2.临界区是指(A)A.与共享变量有关的程序段B.公共数据区C.系统管理区D.临时的工作区3.用PV操作管理互斥使用的资源时,信号量的初值应定义为(B)A.任意整数B.1C.OD.-14.对具有相关临界区的n个并发进程采用PV操作实现进程互斥时,信号量初值应定义为(B)A.0B.1C.nD.n-15.用PV操作来管理可供n个进程共享的资源时,若信号量S的初值定义为m,则信号量S可能出现的最小值为(B)A.n-mB.m-nC.0D.–m6.进程从等待状态进入就绪状态可能是由于(C)A.现运行进程运行结束B.现运行进程执行了P操作C.现运行进程执行了V操作D.现运行进程时间片用完7.用V操作唤醒一个等待进程时,被唤醒进程的状态应变成(B)A.执行态B.就绪态C.运行态D.收容态8.正在执行的进程由于其时间片用完而被暂停运行,此时其进程应从运行态变为(A)A.就绪态B.等待态C.运行态D.后备态9.资源的静态分配算法在解决死锁问题中是用于(A)A.防止死锁B.避免死锁C.检测死锁D.解除死锁10.为了避免系统可能出现死锁,分配资源可以采用的算法是(B)A.静态分配B.银行家C.按序分配D.抢夺式11.系统出现死锁时一定同时保持了四个必要条件,对资源采用按序分配算法后可破坏的条件是(D)A.互斥B.占有且等待C.可抢占资源D.循环等待212.任何两个并发进程之间(D)A.一定存在互斥关系B.一定存在同步关系C.一定彼此独立无关D.可能存在同步或互斥关系13.多个进程间可通过P、V操作交换信息实现同步和互斥,因此信号量机制是进程间的一种(B)A.高级通信方式B.低级通信方式C.消息缓冲通信方式D.管道通信方式14.并发进程指的是一组(A)A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程15.设某类资源有5个,由3个进程共享,要使系统不会死锁则每个进程最多可申请的资源数是(B)A.1B.2C.3D.416.进程间采用信箱通信方式时,send原语把发送者的信件存放到(A)A.信箱B.消息缓冲区C.接收者的PCBD.指定的工作区17.产生系统死锁的原因可能是由于(C)A.进程释放资源B.一个进程进入死循环C.多个进程竞争资源出现了循环等待D.多个进程竞争共享型设备18.进程之间的同步是指进程间在逻辑上的相互(A)A.制约关系B.排斥关系C.调用关系D.转移关系19.用PV操作管理临界区时把信号量的初值定义为1,现已有一个进程在临界区,但有n个进程在等待进入临界区,这时信号量的值为(C)A.-1B.1C.-nD.n20.临界区是指并发进程中访问共享变量的(D)A.管理信息段B.信息存储段C.数据段D.程序段21.在多进程的并发系统中,不会因竞争下列资源而产生死锁的是(C)A.打印机B.磁带机C.磁盘D.CPU22.并发进程指的是一组(C)A.各自独立执行的进程B.必须依次执行的进程C.可同时执行的进程D.不能中断的进程31.对独占设备往往采用分配方式。静态2.把并发进程中涉及到对共享变量进行访问的程序段称为。临界区3.用于解决进程同步和进程互斥的机制称为。同步机制4.进程的互斥是进程间竞争的使用权,这种竞争没有固定的必须关系。共享资源5.进程的互斥是进程间竞争的使用权,这种竞争没有固定的必须关系。临界资源6.银行家算法是在能确保系统处于状态时才把资源分配给申请者。安全7.把一组可同时执行的进程称为进程。并发8.在计算机中,并发进程之间经常要交换一些信息,我们把并发进程之间交换信息的工作称为。进程通信9.有交往的并发进程在竞争共享资源时会出现错误。与时间有关的10.采用适当的资源分配策略来破坏出现死锁的必要条件,从而达到不使死锁发生的目的,这种方法称为死锁的。防止11.采用适当的资源分配策略来破坏出现死锁的必要条件,从而达到不使死锁发生的目的,这种方法称为死锁的。预防1.进程的同步:进程的同步是指并发进程之间存在的一种制约关系,一个进程的执行依赖另一个进程的消息。2.PV操作:PV操作是一种进程同步机制,能够实现对临界区的管理要求,它由两个操作——P操作和V操作组成。3.并发进程:在多道程序设计的单处理器系统中,系统中同时存在许多进程,这些进程轮流占用处理器,即一个进程的工作没有全部完成之前,另一个进程就可开始工作,这些可同时执行的进程称为并发进程。4.临界区:并发进程中与共享变量有关的程序段称为“临界区”。5.进程的互斥:进程的互斥是指当有若干个并发进程都要使用某一共享资源时,任何一个时刻只能允许一个进程使用,其他进程必须等待。6.静态资源分配:静态资源分配是指在进程必须在开始执行之前就申请它所要的全部资源,仅当系统能满足进程的资源申请要求且把资源分配给进程后,该进程才执行。7.进程通信:通过专门的通信机制实现进程间交换大量信息的通信方式称为“进程通信”。41.什么叫死锁?什么原因会引起死锁?答:若系统中存在一组进程(二个或多个进程),他们中的每一个进程都占用某种资源而又都在等待其中另一个进程所占用的资源,这种等待永远不能结束,就说系统出现“死锁”。进程死锁的起因是系统提供的资源数比要求的资源数少,或者是若干个进程要求资源的总数大于系统能提供的资源数。这时,进程间就会出现竞争资源的现象,如果对进程竞争的资源管理和分配不当就会引起死锁。死锁的出现是与资源分配策略和并发进程的执行速度有关。2.通信机制中设置哪些基本通信原语?它们的功能是什么?答:系统提供两个与信箱通信有关的通信原语:send原语(发送)和receive原语(接收)。send(B,M)原语把信件M送到信箱B中,receive(B,X)原语从信箱B中取出一封信存放到指定的地址X中。3.系统出现死锁的必要条件是什么?答:系统出现死锁一定同时保持了四个必要条件:(1)互斥条件。每一个资源每次只能由一个进程使用,即进程互斥使用资源。(2)占有且等待条件。一个进程申请资源得不到满足时处于等待资源的状态,且不释放已占的资源。(3)非抢占条件。任何一个进程不能抢夺其它进程所占用的资源,即已被占用的资源只能由占用资源的进程自己来归还。(4)循环等待条件。系统中存在一组进程,其中每一个进程分别等待另一个进程所占用的资源,形成了循环等待资源的状态。51.设公共汽车上,司机和售票员的活动分别为:司机的活动:启动车辆;正常行车;到站停车;售票员活动:关车门;售票;开车门;在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和PV操作实现他们的同步。答:设置2个信号量(2分):s1、s2,s1表示是否允许司机启动汽车,其初值为0;s2表示是否允许售票员开门,其初值为0。(2分)用P、V原语描述如下:ints1=0;//是否允许司机启动汽车ints2=0;//是否允许售票员开门main()(2分){cobegindriver();busman();coend}driver()(2分){while(1){p(s1);//刚开始肯定阻塞,等BUSMAN进程释放!启动汽车;正常行车;到站停车;v(s2);//通知售票员开门}}busman()(2分){while(1){关车门;v(s1);//通知司机可以开车了售票;p(s2);//判断是否可以开门开车门;上下乘客;}}62.桌上有一个空的水果盘,服务员、男顾客和女顾客共用一个盘子,且盘中一次只能放一个水果。服务员可向盘中放香蕉,也可向盘中放苹果,男顾客专等吃盘中的苹果,女顾客专等吃盘中的香蕉。规定每次当盘子空时只能放一个水果供吃者取用。请用P、V操作实现服务员、男顾客和女顾客三个进程的同步。答:设置3个信号量S、SO、SA,信号量S表示盘子是否为空,其初值为1;信号量SO表示盘中是否有香蕉,其初值为0;信号量SA表示盘中是否有苹果,其初值为0。(3分)同步描述:intS=1;intSA=0;intSO=0;main(){cobegin服务员();男顾客();女顾客();coend}服务员(){while(1){p(S);//盘子是否空(1分)将水果放入盘中;if(放入的是香蕉)v(SO);(1分)elsev(Sa)}(1分)}女顾客(){(2分)while(1){p(SO);//盘子中有无香蕉从盘中取出香蕉;v(S);吃香蕉;}}男顾客(){(2分)while(1){p(SA);//盘子中有无苹果从盘中取出苹果;v(S);吃苹果;}}73.请根据引起死锁发生的四个必要条件,设计三种死锁防止策略。答:死锁的必要条件对应的策略互斥使用资源(1分)占有且等待资源(1分)静态分配资源(2分)非抢夺式分配(1分)剥夺式分配资源(2分)循环等待资源(1分)按序分配资源(2分)4.某系统有6个资源R1,R2,R3,R4,R5,R6,由四个进程P1,P2,P3,P4共享,该系统采用死锁检测,某时刻资源占用表和进程等待资源情况如下:试分析此时系统是否出现了死锁?为什么?答:死锁检测定期进程占用资源表和进程等待资源表,如果发现有循环等待的情况出现就说明系统发生了死锁(2分)此时P1等待R3;R3被P2占用(2分)P2等待R2;R2被P3占用(2分)P3等待R1;R1被P1占用(2分)这样就形成了P1等待P2;P2等待P3;P3等待P1的情况,故此时系统发生了死锁(2分)5.若有10个同类资源供三个进程共享,如图列出了这三个进程目前已占资源数和最大需求数的情况,现在这三个进程P1,P2,P3又分别申请1个,2个,1个资源。进程已占资源数最大需求数P137P238P323请问:(徐云龙:此处应该采用其他教材上的分析方法比较合适!当然能记住也是一种办法,更是一种捷径!)(1)能否先满足进程P2的要求?为什么?(2)如何为这三个进程分配资源比较合适?答:共有10个同类资源,目前剩余2个同类资源(2分),按照银行家算法的规则(2分),不能首先满足P2的申请要求(2分),因为假若先满足了P2的要求,系统将导致不安全状态。(2分)可以找到安全序列P3、P1、P2,所以正确的资源分配顺序应该是P3、P1、P2。(2分)资源占用进程R1P1R2P3R3P2R4P1R5P3R6P4进程等待资源P1R3P2R2P3R1P4R586.A,B两组学生进行投球比赛,规定A组(或B组)的一个学生投了一个球后应让B组(或A组)的一个学生投一个球。假定让A组的学生先开始投球,用PV操作控制时,回答如下问题:(1)应定义的信号量的个数和初值是什么?(2)请使用适当的P、V操作完成两组工作流程,使其能按规定进行。答:(1)定义二个信号量,其中:S1:=1,S2:=0(2分)(2)A组:P(S1);(2分)投一个球;V(S2);(2分)B组:P(S2)(2分)投一个球;V(S1)(2分)7.假定一个生产者和一个消费者共用一个存储区。存储区每次只能存取一个物品。请用PV操作实现生产者、消费者之间的同步。答:设信号量full,初值为0;信号量empty,初值为1(2分)ProcessproducerBeginRepeatProduceaproduct;P(empty);(2分)Putaproducttobuffer;V(full);(2分)UntilfalseEnd;ProcessconsumerBeginRepeatP(full);(2分)takeaproductfrombuffer;V(empty);(2分)Consume;UntilfalseEnd;