第2章进程管理。
练习与思考”解答。
1. 基本概念和术语。
进程、进程互斥、进程同步、临界资源、临界区、死锁。
进程是程序在并发环境中的执行过程。
进程互斥:各个进程彼此不知道对方的存在,逻辑上没有关系,由于竞争同一资源(如打印。
机、文件等)而发生相互制约。
进程同步:各个进程不知对方的名字,但通过对某些对象(如i/o缓冲区)的共同存取来协。
同完成一项任务。
临界资源:一次仅允许一个进程使用的资源。
临界区:在每个进程中访问临界资源的那段程序。
死锁是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而。
无限期地僵持下去的局面。
2. 基本原理和技术。
1)在操作系统中为什么要引入进程概念?它与程序的区别和联系是什么?
在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统。
中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程。
中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:
进程是动态的;程序是静态的。
进程有独立性,能并发执行;程序不能并发执行。
二者无一一对应关系。
进程异步运行,会相互制约;程序不具备此特征。
但进程与程序又有密切的联系:进程不能脱离具体程序而虚设,程序规定了相应进程所要完成。
的动作。2)进程的基本状态有哪几种?
通常在操作系统中,进程至少要有三种基本状态。这三种基本状态是:运行态、就绪态和阻塞。
态(或等待态)。
3)用如图3-23所示的进程状态转换图能够说明有关处理机管理的大量内容。试回答:
什么事件引起每次显著的状态变迁?
下述状态变迁因果关系能否发生?为什么?
a)2→1 (b)3→2 (c)4→1
就绪→运行:cpu空闲,就绪态进程被调度程序选中。
运行→就绪:正在运行的进程用完了本次分配给它的cpu时间片。
运行→阻塞:运行态进程因某种条件未满足而放弃对cpu的占用,如等待读文件。
阻塞→就绪:阻塞态进程所等待的事件发生了,例如读数据的操作完成。
下述状态变迁:
a)2→1:可以。运行进程用完了本次分配给它的时间片,让出cpu,从就绪队列中选一个。
进程投入运行。
b)3→2:不可以。任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就。
不能再变。为就绪态。
c)4→1:可以。某一阻塞态进程等待的事件出现了,而且此时就绪队列为空,该进程进入。
就绪队列后马上又被调度运行。
4)pcb的作用是什么?它是怎样描述进程的动态性质的?
进程控制块pcb是进程组成中最关键的部分。每个进程有唯一的进程控制块;操作系统根据。
pcb对进程实施控制和管理,进程的动态、并发等特征是利用pcb表现出来的;pcb是进程。
存在的唯一标志。
pcb中有表明进程状态的信息:该进程的状态是运行态、就绪态还是阻塞态,利用状态信息来。
描述进程的动态性质。
5)pcb表的组织方式主要有哪几种?分别简要说明。
pcb表的组织方式主要有:线性方式、链接方式和索引方式。
线性方式是把所有进程的pcb都放在一个表中。
链接方式按照进程的不同状态把它们分别放在不同的队列中。
索引方式是利用索引表记载相应状态进程的pcb地址。
6)进程进入临界区的调度原则是什么?
一个进程进入临界区的调度原则是:
如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所。
有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出cpu,避免进程出现“忙等”现象。
7)简述信号量的定义和作用。p、v操作原语是如何定义的?
信号量一般是由两个成员组成的数据结构,其中一个成员是整型变量,表示该信号量的值,它。
是与相应资源的使用情况有关的;另一个是指向pcb的指针。当多个进程都等待同一信号量。
时,它们就排成一个队列,由信号量的指针项指出该队列的头。
信号量通常可以简单反映出相应资源的使用情况,它与p、v操作原语一起使用可实现进程的。
同步和互斥。
p、v操作原语的定义:
p(s):顺序执行下述两个动作:
①信号量的值减1,即s=s-1;
②如果s≥0,则该进程继续执行;
如果s<0,则把该进程的状态置为阻塞态,把相应的pcb连入该信号量队列的末尾,并。
放弃处理机,进行等待(直至其它进程在s上执行v操作,把它释放出来为止)。
v(s):顺序执行下述两个动作:
①s值加1,即s=s+1;
②如果s>0,则该进程继续运行;
如果s≤0,则释放信号量队列上的第一个pcb(即信号量指针项所指向的pcb)所对应。
的进程(把阻塞态改为就绪态),执行v操作的进程继续运行。
8)计算机系统中产生死锁的根本。
原因是什么?
计算机系统中产生死锁的根本原因是:资源有限且操作不当。此外,进程推进顺序不合适也可。
以引发的死锁。
9)发生死锁的四个必要条件是什么?
发生死锁的四个必要条件是:互斥条件,不可抢占条件,占有且申请条件,循环等待条件。
10)一般解决死锁的方法有哪三种?
一般解决死锁的方法有:死锁的预防、死锁的避免、死锁的检测与恢复。
3. 思考题。
1)是否所有的共享资源都是临界资源?为什么?
不是所有的共享资源都是临界资源。因为临界资源是一次仅允许一个进程使用的资源,而系统。
中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。
2)系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结。
果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用p、v操作。
写出这些进程使用打印机的算法。
因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结。
果打印完之后,另一个用户再打印。
设三个进程分别为a、b和c。
设一个互斥信号量mutex,其初值为1。
进程a 进程b 进程c
p(mutex) p(mutex) p(mutex)
使用打印机使用打印机使用打印机。
v(mutex) v(mutex) v(mutex)
3)判断下列同步问题的算法是否正确?若有错,请指出错误原因并予以改正。
设a,b两个进程共用一个缓冲区q,a向q写入信息,b从q读出信息,算法框图如图。
3-24所示。
设a,b为两个并发进程,它们共享一个临界资源。其运行临界区的算法框图如图3-25
所示。图3-24 进程a,b的算法框图图3-25 两个并发进程临界区的算法。
框图。 这个算法不对。因为a、b两个进程共用一个缓冲区q,如果a先运行,且信息数量。
足够多,那么缓冲区q中的信息就会发生后面的冲掉前面的,造成信息丢失,b就不能从q
中读出完整的信息。
改正:a、b两进程要同步使用缓冲区q。为此,设立两个信号量:
empty表示缓冲区q为空,初值为1;
full表示缓冲区q为满,初值为0。
教材第二章习题解答
第二章原子结构和元素周期律习题解答。1 指出下列各原子轨道相应的主量子数n及角量子数l的数值是多少?轨道数分别是多少?2p 3d 4s 4f 5s 解答 2p 主量子数2,角量子数1,轨道数3 3d 主量子数3,角量子数2,轨道数5 4s 主量子数4,角量子数0,轨道数1 4f 主量子数4,角量子数...
第二章教材习题解答
第2章进程管理。练习与思考 解答。1 基本概念和术语。进程 进程互斥 进程同步 临界资源 临界区 死锁。进程是程序在并发环境中的执行过程。进程互斥 各个进程彼此不知道对方的存在,逻辑上没有关系,由于竞争同一资源 如打印机 文件等 而发生相互制约。进程同步 各个进程不知对方的名字,但通过对某些对象 如...
第二章教材习题解答
就绪 运行 cpu空闲,就绪态进程被调度程序选中。运行 就绪 正在运行的进程用完了本次分配给它的cpu时间片。运行 阻塞 运行态进程因某种条件未满足而放弃对cpu的占用,如等待读文件。阻塞 就绪 阻塞态进程所等待的事件发生了,例如读数据的操作完成。下述状态变迁 a 2 1 可以。运行进程用完了本次分...