习题解答第4章.docVIP

  • 30
  • 0
  • 约 13页
  • 2017-01-06 发布于贵州
  • 举报
习题解答第4章习题解答第4章

习题解答 第四章 并发进程的同步与互斥 1、进程间同步和互斥的含义是什么? 答: 同步:并发进程之间存在的相互制约和相互依赖的关系。   互斥:若干进程共享一资源时,任何时刻只允许一个进程使用。 2、用文字描述银行家算法的基本思想? 答: 银行家算法的基本思想是:将系统中的所有资源比做银行家的资金,每进行 一次资源的分配,银行家都要从当前的资源分配情况出发,计算这种分配方案的 安全性,如果是安全的,则进行分配,否则选择其它可能的分配方案。这样,每 次分配都计算安全性,从而可以避免死锁的发生。 3、简述死锁的防止与死锁的避免的区别。 答: 死锁的防止是系统预先确定一些资源分配策略,进程按规定申请资源,系统按预先规定的策略进行分配,从而防止死锁的发生。 而死锁的避免是当进程提出资源申请时系统测试资源分配,仅当能确保系统安全时才把资源分配给进程,使系统一直处于安全状态之中,从而避免死锁。 4、试说明资源的静态分配策略能防止死锁的原因。 答: 资源静态分配策略要求每个进程在开始执行前申请所需的全部资源,仅在系统为之分配了所需的全部资源后,该进程才开始执行。这样,进程在执行过程中不再申请资源,从而破坏了死锁的四个必要条件之一“占有并等待条件”,从而防止死锁的发生。 5、有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。回答:   (1)若对资源分配不加限制,会发生什么情况?为什么?   (2)为保证进程正确工作,应采用怎样的资源分配策略?为什么? 答: .(1)可能会发生死锁   例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。   (或进程在等待新源时均不释放已占资源)   (2)可有几种答案:   A.采用静态分配 由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。   或B.采用按序分配   不会出现循环等待资源现象。   或C.采用银行家算法  因为在分配时,保证了系统处于安全状态。 6、某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:   (1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。   (2)根据所定义的信号量,把应执行的PV操作填入适当,以保证进程能够正确地并发执行。  COBEGIN PROCESS PI(I=1,2,……)       begin        ;          进入售票厅;          购票;          退出;       end;  COEND (3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。 答: .(1)定义一信号量S,初始值为20。   意义:   S0 S的值表示可继续进入售      票厅的人数   S=0 表示售票厅中已有20名顾      客(购票者)   S0 |S|的值为等待进入售票      厅的人数  (2)P(S)  进入售票厅;          购票;          退出; V(S)    (3)S的最大值为20     S的最小值为20-n    注:信号量的符号可不同(如写成t),但使用时应一致(即上述的s全应改成t)。 7、假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。 请用PV操作,写出它们的并发程序。 答: begin SR,SM1,SM2,SP:semaphore; B1,B2:record; SR:=1;SM1:=0;SM2:=1;SP:=0 cobegin process read X:record; begin R: (接收来自输入设备上一个记录) X:=接收的一个记录; P(SR); B1:=X; V(SM1); goto R; end; Process move Y:record; begin M:P(SM1); Y:=B1; V(SR) 加工 Y P(SM2); B2:=Y; V(SP); goto M; end; Process print Z:record; begin P:P(SP); Z:=B2; V(SM2) 打印Z goto

文档评论(0)

1亿VIP精品文档

相关文档