A.互斥 B.可剥夺 C.循环等待 D.同步
16.某个信号量S初值为3,当前值为-2,则等待在该信号量上的进程数为(B )个。
A.1 B.2 C.3 D.4
17.预先静态分配算法是通过破坏( C)条件,来达到预防死锁的目的。 A.互斥使用资源/循环使用资源 B.非抢占式分配/互斥使用资源 C.占有且等待资源/循环等待资源 D.循环等待资源/互斥使用资源 18. 设系统中有N(N>2)个进程,则系统中最不可能的是有(B)个进程处于死锁状态。
A.0 B.1 C.2 D.M(2 A.一定存在互斥关系 B.一定存在同步关系 C.一定彼此独立无关 D.可能存在同步或互斥关系 20.P、V操作是( A )。 A.两条低级进程通信原语 B.两条高级进程通信原语 C.两条系统调用命令 D.两条特权指令 22.进程的并发是指若干个进程( A )。 A.共享系统资源 B.在执行的时间上是重叠的 C.顺序执行 D.相互制约 23.下列解决死锁的方法中,属于死锁预防策略的是( B )。 A.银行家算法 B.资源有序分配 C.资源分配图化简法 D.撤消进程法 24.使用mail命令的进程通信属于( D )通信。 A.共享存储器 B.实时通信 C.消息缓冲通信 D.非实时通信 25.从下面对临界区的叙述中选出一条正确的( D )。 A.临界区是指进程中用于实现进程互斥的那段代码。 B.临界区是指进程中用于实现进程同步的那段代码。 C.临界区是指进程中用于实现进程通信的那段代码。 D.临界区是指进程中访问临界资源的那段代码。 27.若两个并发进程相关临界区的互斥信号量mutex现在的取值为0,则正 33 确的描述就该是( B )。 A.没有进程进入临界区 B.有一个进程进入临界区 C.有一个进程进入临界区,另一个在等待 D.不定 28.信箱通信是进程间的一种( B )通信方式。 A.直接 B.间接 C.低级 D.信号量 二、填空题 1.每个进程中访问(临界资源 )的程序段称为临界区,两个进程同时进入相关的临界区会造成错误。 2.在操作系统中进程间的通信可以分为( 直接 )通信与(间接 )通信两种。 3.产生死锁的四个必要条件是(互斥 )、(请求和保持 )、(不剥夺 )和循环等待条件。 4.在银行家法中,当一个进程提出资源请求将会导致系统从( 安全 )状态进入( 不安全 )状态时,就暂时拒绝这一请求。 5.信号量的物理意义是当信号量大于零时表示(可用的临界资源的个数 )。当信号量小于零时,其绝对值为(因为得不到该临界资源而阻塞的进程个数 )。 6.进程是一个(动 )态概念,而程序是一个(静 )态概念。 7.对待死锁,一般应考虑死锁的预防、避免、检测和解除四个问题。典型的银行家算法是属于(死锁避免 ),破坏环路等待条件是属于( 预防死锁 ),而剥夺资源是( 死锁解除 )的基本方法。 三、名词解释 1. 临界区:每个进程中访问临界资源的那段代码。 2. 临界资源:在一段时间内只允许一个进程访问的资源。 3. 进程同步:相互合作的进程中,某一进程要等待另一进程提供信息才能 够继续执行,把这样的进程间的制约关系称为进程同步。 4. 进程互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源 而导致它们必须以一个不允许交叉执行的单位执行,也就是说,不允许两个以上的共享该资源的并发进程同时进入临界区。 5. 进程通信:指进程之间的信息交换。 34 6. 管道:是指用于连接一个读进程和一个写进程以实现他们之间通信的一 个共享文件,又名pipe文件。 7. 死锁:是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这 些进程都将永远不能再向前推进。 8. 死锁定理:当且仅当某状态的资源分配图是不可完全简化的。 四、简答题 1. 同步机构应遵循哪些基本准则?为什么? 答:(1)空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入,以有效地利用临界资源。(2)忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。(3)有限等待:对要求访问临界资源的进程,应保证在有限时间内使其进入自己的临界区,以免陷入“死等”状态。(4)让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。 2. 产生死锁的原因和必要条件是什么? 答:产生死锁的原因包括竞争资源和进程间推进顺序非法。产生死锁的必要条件是互斥条件、请求和保持条件、不剥夺条件、环路等待条件。 3. 不安全状态是否必然导致系统进入死锁状态? 答:不安全状态不一定导致系统进入死锁状态。因为,安全性检查中使用的向量Max是进程执行前提供的,而在实际运行过程中,一进程需要的最大资源量可能小于Max,如一进程对应的程序中有一段进行错误处理的代码,其中需要n个A种资源,若该进程在运行过程中没有碰到相应错误而不需调用该段错误处理代码,则它实际上将完全不会请求这n个A种资源。 4. 有相同类型的5个资源被4个进程所共享,且每个进程最多需要2个这样的资源就可以运行完毕。试问该系统是否会由于对这种资源的竞争而产生死锁。 答:该系统不会由于对这种资源的竞争而产生死锁。因为在最坏情况下,每个进程都需要2个这样的资源,且每个进程都已申请到了1个资源,那么系统中还剩下1个可用资源。无论系统为了满足哪个进程的资源申请而将资源分配给该进程,都会因为该进程已获得了它所需要的全部资源而确保它运行完毕,从而可将它占有的2个资源归还给系统,这就保证了其余三个进程能 35 顺利运行。由于可知,该系统不会由于对这种资源的竞争而产生死锁。 五、综合题 1. 试从物理概念上说明记录型信号量P和V。 答:P意味着进程请求一个单位的资源,即对S.value进行减1操作(S.value的初值表示系统中某类资源的数目),当S.value<0时,表示资源已分配完毕,此时该进程进行自我阻塞,放弃CPU,插入到信号量链表S.L中;否则表示请求成功,进程可继续执行。V表示执行的进程释放一个单位的资源,即对S.value进行加1操作,当S.value≤0时,表示在该信号量表中仍有等待该资源的进行被阻塞,此时应调用唤醒原语,将S.L链表中的第一个等待进程唤醒;否则不进行其他操作。 2. 在生产者——消费者问题中,如果缺少了V(full)或V(empty),对执行结果有何影响? 答:如果缺少了V(full),则full信号量的值总是0,消费者执行P(full)时就会阻塞,而且永不会被唤醒,而生产者生产消息装满缓冲池后也会阻塞,此后缓冲池一直是满状态。如果缺少了V(empty),生产者生产了n个消息后就会阻塞,此后empty信号量的值一直为0,而消费者消费完后也会一直阻塞,缓冲池以后一直是空的。 3. 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。 答:var empty,full:semaphore:=1,0 var buffer:b begin parbegin gather: begin repeat ??.. gather an item in x; P(empty); b:=x; 36