操作系统章节练习第2章进程管理.docx
《操作系统章节练习第2章进程管理.docx》由会员分享,可在线阅读,更多相关《操作系统章节练习第2章进程管理.docx(21页珍藏版)》请在冰豆网上搜索。
操作系统章节练习第2章进程管理
操作系统章节练习第2章进程管理
一、单项选择题
题目1
1.在操作系统中引入“进程”概念的主要目的是()。
A.使程序与计算过程一一对应
B.描述程序动态执行过程的性质
C.提高程序的运行速度
D.改善用户编程环境
题目2
2.进程与程序之间有密切联系,但又是不同的概念。
二者的一个本质区别是()。
A.程序是动态概念,进程是静态概念
B.程序保存在文件中,进程存放在内存中
C.程序是静态概念,进程是动态概念
D.程序顺序执行,进程并发执行
题目3
3.在操作系统中,进程的最基本的特征是()。
A.与程序的对应性
B.动态性和并发性
C.顺序性和可再现性
D.执行过程的封闭性
题目4
4.为了描述进程的动态变化过程,采用了一个与进程相联系的(),根据它而感知进程的存在。
A.进程起始地址
B.进程状态字
C.进程控制块
D.进程优先数
题目5
5.进程控制块是描述进程状态和特性的数据结构,一个进程()。
A.只能有唯一的进程控制块
B.可以有多个进程控制块
C.可以没有进程控制块
D.可以和其他进程共用一个进程控制块
题目6
6.在单处理机系统中,处于运行状态的进程()。
A.必须在执行完后才能被撤下
B.只有一个
C.不能被挂起
D.可以有多个
题目7
7.已经获得除()以外的所有运行所需资源的进程处于就绪状态。
a.磁盘空间
b.CPU
c.打印机
d.存储器
题目8
8.进程从运行状态变为阻塞状态的原因是()。
A.某个进程被唤醒
B.输入或输出事件发生
C.时间片到
D.输入或输出事件完成
题目9
9.某进程由于需要从磁盘上读入数据而处于阻塞状态。
当系统完成了所需的读盘操作后,此时该进程的状态将()。
A.从运行变为就
B.从阻塞变为就绪
C.从就绪变为运行
D.从运行变为阻塞
题目10
10.下列进程状态的转换中,不正确的是()。
A.从运行到就绪
B.从就绪到运行
C.从就绪到阻塞
D.从阻塞到就绪
题目11
11.一个进程被唤醒意味着()。
A.其PCB移至就绪队列的队首
B.该进程重新占有了CPU
C.进程状态变为就绪
D.它的优先权变为最大
题目12
12.现代操作系统中引入线程以后,进程()。
A.只是资源分配的单位
B.只是调度运行的单位
C.失去作用
D.既是资源分配的单位,又是调度运行的单位
题目13
13.下列关于进程和线程的叙述中,正确的是()。
A.一个线程可在若干个进程地址空间活动
B.一个进程只可拥有一个线程
C.资源分配给线程,处理机分配给进程
D.一个进程可拥有若干个线程
题目14
14.下列关于引入线程的好处的描述中,不正确的是()。
A.并发性高,提高效率
B.充分发挥多处理器的功能
C.利于分配资源
D.易于调度,代价低
题目15
15.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。
A.竞争
B.同步
C.互斥
D.合作
题目16
16.以下不属于进程高级通信方式的是()。
A.消息传递方式
B.管道文件方式
C.共享内存方式
D.进程互斥和同步方式
题目17
17.在进程通信中,使用信箱方式交换信息的是()。
A.管道文件方式
B.低级进程通信
C.共享内存方式
D.消息传递方式
题目18
18.在一段时间内,只允许一个进程访问的资源称为()。
A.临界资源
B.共享区
C.共享资源
D.临界区
题目19
19.如果信号量S的值是0,此时进程A执行P(S)操作,那么,进程A会()。
A.进入阻塞态,让出CPU
B.进入就绪态,让出CPU
C.继续运行,并唤醒S队列头上的等待进程
D.继续运行
题目20
20.若P、V操作的信号量S初值为2,当前值为-1,则表示有()个等待进程。
A.1
B.0
C.3
D.2
题目21
21.在执行V操作时,当信号量的值(),应释放一个等待该信号量的进程。
A.大于等于0
B.大于0
C.小于等于0
D.小于0
题目22
22.信号量S的初值为8,在S上执行了10次P操作,6次V操作后,S的值为()。
A.8
B.6
C.4
D.10
题目23
23.有9个生产者,6个消费者,共享容量为8的缓冲区。
在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。
A.8
B.6
C.9
D.1
题目24
24.两个进程争夺同一个资源()。
A.一定死锁
B.不一定死锁
C.以上说法都不对
D.不会死锁
题目25
25.系统出现死锁的原因是()。
A.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数
B.有多个封锁的进程同时存在
C.计算机系统发生了重大故障
D.若干进程因竞争资源而无休止地循环等待着,而且都不释放已占有的资源
题目26
26.死锁的四个必要条件中,无法破坏的是()。
A.占有且申请条件
B.循环等待条件
C.不可抢占条件
D.互斥条件
二、判断题
题目27
1.简单地说,进程是程序的执行过程。
因而,进程和程序是一一对应的。
()
错
题目28
2.程序在运行时需要很多系统资源,如内存、文件、设备等,因此操作系统以程序为单位分配系统资源。
()
错
题目29
3.进程执行的相对速度不能由进程自己来控制。
()
对
题目30
4.进程控制块(PCB)是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。
()
错
题目31
5.进程控制块(PCB)是进程存在的唯一标志。
()
对
题目32
6.在进程状态的转换中,从就绪态转换到阻塞态是不可能实现的。
()
对
题目33
7.进程从运行状态变为阻塞状态的原因是输入或输出事件发生。
()
对
题目34
8.进程从运行状态变为阻塞状态的原因是时间片到时。
()
错
题目35
9.一个进程被唤醒意味着该进程重新占有了CPU。
()
错
题目36
10.如同人类的族系一样,操作系统中众多的进程也存在族系关系,并构成一棵树形的进程族系图。
()
对
题目37
11.进程之间的互斥,主要源于进程之间的资源竞争,从而实现多个相关进程在执行次序上的协调。
()
错
题目38
12.进程A和进程B都要使用系统中同一台打印机,为了保证打印结果的正确性,两个进程要先后分别使用打印机,这属于进程的同步关系。
()
错
题目39
13.进程的互斥和同步机构交换的信息量大,被归结为高级通信。
()
错
题目40
14.管道文件方式属于进程的高级通信。
()
对
题目41
15.信号量机制是一种有效地实现进程同步与互斥的工具。
信号量只能由P、V操作来改变。
()
对
题目42
16.V操作是对信号量执行加1操作,意味着释放一个单位资源,如果加1后信号量的值小于等于零,则从等待队列中唤醒一个进程,现进程变为阻塞状态,否则现进程继续进行。
()
错
题目43
17.系统产生死锁的根本原因是资源有限且操作不当。
因此,当系统提供的资源少于并发进程的需求时,系统就产生死锁。
()
错
题目44
18.解决死锁的方法有死锁的预防、死锁的避免、死锁的检测与恢复。
()
对
题目45
19.在Linux系统中,用户进程既可以在用户模式下运行,也可以在内核模式下运行。
()
对
三、简答题
题目46
1.在操作系统中为什么要引入进程概念?
它与程序的区别和联系是什么?
在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
这些都是在程序的动态过程中发生的。
用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程与程序的主要区别是:
①进程是动态的;程序是静态的。
②进程有独立性,能并发执行;程序不能并发执行。
③二者无一一对应关系。
④进程异步运行,会相互制约;程序不具备此特征。
但进程与程序又有密切的联系:
进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。
题目47
2.进程的基本状态有哪几种?
通常在操作系统中,进程至少要有三种基本状态。
这三种基本状态是:
运行态、就绪态和阻塞态(或等待态)。
题目48
3.PCB的作用是什么?
它是怎样描述进程的动态性质的?
进程控制块PCB是进程组成中最关键的部分。
每个进程有唯一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发等特征是利用PCB表现出来的;PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息:
该进程的状态是运行态、就绪态还是阻塞态,利用状态信息来描述进程的动态性质。
题目49
4.PCB表的组织方式主要有哪几种?
分别简要说明。
PCB表的组织方式主要有:
线性方式、链接方式和索引方式。
线性方式是把所有进程的PCB都放在一个表中。
链接方式按照进程的不同状态把它们分别放在不同的队列中。
索引方式是利用索引表记载相应状态进程的PCB地址。
题目50
5.进程进入临界区的调度原则是什么?
一个进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。
如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
题目51
6.简述信号量的定义和作用。
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操作的进程继续运行。
题目52
7.计算机系统中产生死锁的根本原因是什么?
计算机系统中产生死锁的根本原因是:
资源有限且操作不当。
此外,进程推进顺序不合适也可以引发的死锁。
题目53
8.发生死锁的四个必要条件是什么?
发生死锁的四个必要条件是:
互斥条件,不可抢占条件,占有且申请条件,循环等待条件。
题目54
9.一般解决死锁的方法有哪三种?
一般解决死锁的方法有:
死锁的预防、死锁的避免、死锁的检测与恢复。
题目55
10.是否所有的共享资源都是临界资源?
为什么?
不是所有的共享资源都是临界资源。
因为临界资源是一次仅允许一个进程使用的资源,而系统中有很多资源可以让多个进程同时使用,例如硬盘、正文段等。
四、应用题
题目56
1.用如图所示的进程状态转换图能够说明有关处理机管理的大量内容。
图进程状态转换图
试回答:
①什么事件引起每次显著的状态变迁?
②下述状态变迁因果关系能否发生?
为什么?
①
就绪→运行:
CPU空闲,就绪态进程被调度程序选中。
运行→就绪:
正在运行的进程用完了本次分配给它的CPU时间片。
运行→阻塞:
运行态进程因某种条件未满足而放弃对CPU的占用,如等待读文件。
阻塞→就绪:
阻塞态进程所等待的事件发生了,例如读数据的操作完成。
②下述状态变迁:
(A)2→1:
可以。
运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2:
不可以。
任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再由运行态变为就绪态。
(C)4→1:
可以。
某一阻塞态进程等待的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
题目57
2.系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。
设每个用户程序对应一个进程。
问:
这三个进程间有什么样的制约关系?
试用P、V操作写出这些进程使用打印机的算法。
答:
因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。
设三个进程分别为A、B和C。
设一个互斥信号量mutex,其初值为1。
进程A
↓
P(mutex)
使用打印机
V(mutex)
↓
进程B
↓
P(mutex)
使用打印机
V(mutex)
↓
进程C
↓
P(mutex)
使用打印机
V(mutex)
↓
题目58
3.判断下列同步问题的算法是否正确?
若有错,请指出错误原因并予以改正。
①设A,B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框图如图左侧所示。
②设A,B为两个并发进程,它们共享一个临界资源。
其运行临界区的算法框图如图右侧所示。
①这个算法不对。
因为A、B两个进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。
改正:
A、B两进程要同步使用缓冲区Q。
为此,设立两个信号量:
empty表示缓冲区Q为空,初值为1;
full表示缓冲区Q为满,初值为0。
算法框图如图1所示。
②这个算法不对。
因为A、B两个进程是并发的,它们共享一个临界资源,所以二者应互斥地使用该临界资源,在进入临界区时不存在先A后B的时序关系,而是哪个进程先到一步就先进入自己的临界区。
改正:
A、B两个进程应互斥地进入临界区。
为此,设立一个信号量:
互斥信号量mutex,其初值为1。
算法框图如图2所示。
题目59
4.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。
设缓冲区是环形的,编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,初值都是0。
n为使两类进程实行同步操作,设置了3个信号量:
两个计数信号量full和empty,一个互斥信号量mutex。
full:
表示放有信息的缓冲区数,其初值为(0)。
empty:
表示可供使用的缓冲区数,其初值为(n)。
mutex:
表示互斥信号量,初值为
(1)。
n填写相应的P、V操作。
输入进程Input:
while(TRUE){
P(empty);
P(mutex);
信息送往buffer(in);
in=(in+1)modN;/*以N为模*/
V(mutex);
V(full);
}
输出进程Output:
while(TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=(out+1)modN;/*以N为模*/
V(mutex);
V(empty);
}
题目60
5.设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。
卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果。
问:
①系统要设几个进程来完成这个任务?
各自的工作是什么?
②这些进程间有什么样的相互制约关系?
③用P、V操作写出这些进程的同步算法。
答:
①系统可设三个进程来完成这个任务:
R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中:
C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:
B1中信息放满后C进程才可从中取出它们,且B2被取空后,C进程才可将加工结果送入其中;P进程受C进程的约束:
B2中信息放满后P进程才可从中取出它们,进行打印。
③信号量含义及初值:
B1full——缓冲区B1满,初值为0;
B1empty——缓冲区B1空,初值为0;
B2full——缓冲区B2满,初值为0;
B2empty——缓冲区B2空,初值为0;
题目61
6.设有无穷多个信息,输入进程把信息逐个写入缓冲区,输出进程逐个从缓冲区中取出信息。
针对下述两种情况:
①缓冲区是环形的,最多可容纳n个信息;
②缓冲区是无穷大的。
试分别回答下列问题:
①输入、输出两组进程读/写缓冲区需要什么条件?
②用P、V操作写出输入、输出两组进程的同步算法,并给出信号量含义及初值。
答:
①针对容量为n的环形缓冲区,输入、输出两组进程读/写缓冲区需要的条件为:
输入进程的输出进程需同步执行,即输入进程写缓冲区后,输出进程才可以读;
由于缓冲区容量有限,因此任一时刻所有输入进程存放信息的单元数不能超过缓冲区的总容量(n);
同理,所有输出进程取出信息的总量不能超过所有输入进程当前写入信息的总数。
设缓冲区的编号为0~n-1,in和out分别是输入进程和输出进程使用的指针,指向下面可用的缓冲区,初值都是0。
为使两类进程实行同步操作,应设置三个信号量:
两个计数信号量full和empty,一个互斥信号量mutex。
full:
表示放有信息的缓冲区数,其初值为0,
empty:
表示可供使用的缓冲区数,其初值为n。
mutex:
互斥信号量,初值为1,表示各进程互斥进入临界区,保证任何时候只有一个进程使用缓冲区。
下面是解决这个问题的算法描述。
输入进程Input:
while(TRUE){
P(empty);
P(mutex);
信息送往buffer(in);
in=(in+1)modN;/*以N为模*/
V(mutex);
V(full);
}
输入进程Output:
while(TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=(out+1)modN;/*以N为模*/
V(mutex);
V(empty);
}
②当缓冲区是无穷大时,输入进程存放信息的单元数不再受缓冲区总容量的限制,因此,可以不设信号量empty。
另外,算法中的in=(in+1)modN;和out=(out+1)modN;修改为in=in+1;和out=out+1;即可,其余的算法不变。
输入进程Input:
while(TRUE){
P(mutex);
信息送往buffer(in);
in=in+1;
V(mutex);
V(full);
}
输入进程Output:
while(TRUE){
P(full);
P(mutex);
从buffer(out)中取出信息;
out=out+1
V(mutex);
}