第二章 进程管理
单项选择题
1、顺序程序和并发程序的执行相比,( C )。
A.基本相同 B.有点不同
C.并发程序执行总体上执行时间快
D.顺序程序执行总体上执行时间快
2、在单一处理机上,将执行时间有重叠的几个程序称为( C )。
A.顺序程序 B.多道程序 C.并发程序 D.并行程序
3、进程和程序的本质区别是( D )。
A.存储在内存和外存 B.顺序和非顺序执行机器指令
C.分时使用和独占使用计算机资源 D.动态和静态特征
4、在下列特性中,不是进程的特性的是( C )。
A. 异步性 B.并发性 C.静态性 D.动态性
5、各进程向前推进的速度是不可预知,体现出“走走停停”的特征,称为进程的( D )。
A.动态性 B.并发性 C.调度性 D.异步性
6、在单处理机系统中,处于运行状态的进程( A )。
A.只有一个 B.可以有多个
C.不能被挂起 D.必须在执行完后才能被撤下
7、下列进程状态的转换中,不正确的是( C )。
A. 就绪->运行 B.运行->就绪
C. 就绪->阻塞 D.阻塞->就绪
8、已经获得除( C )以外的所有运行所需资源的进程处于就绪状态。
A.存储器 B.打印机 C. CPU D.磁盘空间
9、一个进程被唤醒意味着( B )。
A.该进程重新占有了CPU B.进程状态变为就绪
C.它的优先权变为最大 D.其PCB移至就绪队列的队首
10、进程从运行状态变为阻塞状态的原因是( A )。
A.输入或输出事件发生 B.时间片到
C.输入或输出事件完成 D.某个进程被唤醒
11、为了描述进程的动态变化过程,采用了一个与进程相联系的( C ),根据它而感知进程的存在。
A.进程状态字 B.进程优先数
C.进程控制块 D.进程起始地址
12、操作系统中有一组常称为特殊系统调用的程序,它不能被系统中断,在操作系统中称为( B )。
A.初始化程序 B.原语 C.子程序 D.控制模块
13、进程间的基本关系为( B )。
A.相互独立与相互制约 B.同步与互斥
C.并行执行与资源共享 D.信息传递与信息缓冲
14、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的( A )关系。
A.同步 B.互斥 C.竞争 D.合作
15、在一段时间内,只允许一个进程访问的资源称为( C )。
A. 共享资源 B.临界区 C.临界资源 D.共享区
16、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是( C )。
A. S>0 B. S=0 C. S<0 D. S!=0
17、信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为( D )。
A.10 B.8 C.6 D.4
18、在进程通信中,使用信箱方式交换信息的是( B )。
A.低级通信 B.高级通信 C.共享存储器通信 D.管道通信
二、判断题(正确写T,错误的写F并改正)
1、进程之间的同步,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调。( F )
改正为:进程之间的互斥,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调。
2、信号量机制是一种有效的实现进程同步与互斥的工具。信号量只能由PV操作来改变。( T )
3、V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,现进程变为等待状态,否则现进程继续进行。( F )
改正为:V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于零,则从等待队列中唤醒一个进程,并将它变为就绪状态,而现进程继续进行。
4、进程执行的相对速度不能由进程自己来控制。( T )
5、利用信号量的PV操作可以交换大量信息。( F )
改正为:利用信号量的PV操作只能交换少量的信息
6、并发进程在访问共享资源时,不可能出现与时间有关的错误。( F )
改正为:可能出现与时间有关的错误
三、填空题
1、每执行一次P操作,信号量的数值S减1。若S>0,则该进程___继续执行___;若S<0,则该进程__等待__。
2、进程存在的标志是__进程控制块__。
3、进程被创建后,最初处于__就绪__状态,然后经__进程高度程序__选中后进入 执行 状态。
4、进程的同步和互斥反映了进程间__直接制约__和__间接制约__的关系。
5、 操作系统中信号量的值与__相应资源__的使用情况有关,它的值仅能由P、V操作来改变。
6、进程至少有三种基本状态:就绪、阻塞 和 执行。
7、每执行一次V操作,信号量的数值S加1。若__S>0__,则该进程继续执行;否则,从对应的_等待_队列中移出一个进程并将_就绪_状态赋予该进程。
四、简答题
1、在操作系统中为什么要引入进程的概念?它与程序的区别和联系是怎样的?
答:在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:
1)进程是动态的;程序是静态的。
2)进程有独立性,能并发执行;程序不能并发执行。
3)二者无一一对应关系。
4)进程异步运行,会相互制约;程序不具备此特征。
但进程与程序又有密切的联系:进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。
2、什么是进程的互斥与同步?
进程的互斥:是指在逻辑上本来完全独立的若干进程,由于竞争同一个资源而产生的相互制约关系。
进程的同步:是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。
3、一个进程进入临界区的调度原则是什么?
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
4、在操作系统中,P操作和V操作各自的动作是如何定义的?
P操作顺序执行下述两个动作:
①信号量的值减1,即S=S-1;
②如果S≥0,则该进程继续执行;如果S<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止)。
V操作顺序执行下述两个动作:
①S值加1,即S=S+1;
②如果S>0,则该进程继续运行;如果S≤0,则释放信号量队列上的第一个PCB(即信号量指针项所指向的PCB)所对应的进程(把阻塞态改为就绪态),执行V操作的进程继续运行。
5、作业调度和进程调度各自的主要功能是什么?
作业调度的主要功能是:
1) 记录系统中各个作业的情况;
2) 按照某种调度算法从后备作业队列中挑选作业;
3) 为选中的作业分配内存和外设等资源;
4) 为选中的作业建立相应的进程;
5) 作业结束后进行善后处理工作。
进程调度的主要功能是:
1) 保存当前运行进程的现场;
2) 从就绪队列中挑选一个合适进程;
3) 为选中的进程恢复现场。
五、应用题
1、四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F。但限制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:
(1)如何定义信号量及初值;
解:定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1
(2)在下列的程序中填上适当的P、V操作,以保证它们能正确并发工作:
进程A 进程B 进程C 进程D
… … … …
[1]; [3]; [5]; [7];
read F; read F; read F; read F;
[2]; [4]; [6]; [8];
… … … …
解:从[1]到[8]分别为:P(S1), V(S1), P(S2), V(S2), P(S1) ,V(S1) ,P(S2) ,V(S2)
2、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印,问:
①系统要设几个进程来完成这个任务?各自的工作是什么?
解:系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
②这些进程间有什么样的相互制约关系?
解:R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。
③用P、V操作写出这些进程的同步算法。
解:信号量含义及初值:
B1full—— 缓冲区B1满,初值为0;
B1empty——缓冲区B1空,初值为0;
B2full—— 缓冲区B2满,初值为0;
B2empty——缓冲区B2空,初值为0;
3、某分时系统的进程出现如下图所示的状态变化。
试问:(1)你认为该系统采用的是哪一种进程调度算法?
解:该分时系统采用的进程调度算法是时间片轮转法。
(2)写出图中所示的每一个状态变化的原因(从①到⑥)。
解:状态变化的原因如下:
①进程被选中,变成运行态;
②时间片到,运行的进程排入就绪队列尾部;
③运行的进程启动打印机,等待打印;
④打印工作结束,阻塞的进程排入就绪队列尾部;
⑤等待磁盘读文件工作;
⑥磁盘传输信息结束,阻塞的进程排入就绪队列尾部。
4、生产者-消费者问题表述如下:一组生产者进程和一组消费者进程通过缓冲区发生联系。生产者进程将生产的产品送入缓冲区,消费者进程则从中取出产品。假定环形缓冲池*有N个缓冲区,编号为0~N-1。
为了描述生产者进程和消费者进程,设指针in和out分别指向生产者进程和消费者进程当前所用的缓冲区(buffer),初值均为0。
(1)应设置三个信号量实现两类进程的同步,分别是full、empty和mutex。请说出它们的含义及初值。
解:full表示放有产品的缓冲区数,初值为0;
empty表示可供使用的缓冲区数,初值为N;
mutex为互斥信号量,初值为1,表示互斥进入临界区。
(2)下面是生产者进程的算法描述,请填写相应的P、V操作语句。
while(TRUE){
P(empty) ;
P(mutex);
产品送往buffer(in);
in=(in+1)mod N; /*mod为取模运算*/
V(mutex) ;
V(full);
(3)指出生产者进程算法中的临界区是哪一段程序?
生产者进程算法中的临界区是如下程序段:
产品送往buffer(in);
in=(in+1) modN; /*mod为取模运算*