操作系统-进程管理
一.选择题
1.在进程管理中,当 时进程从阻塞状态变为就绪状态.
A. 进程被进程调度程序选中 B.等待某一事件
C.等待的事件发生 D.时间片用完 答:C
2.分配到必要的资源并获得处理机时的进程状态是 。
A.就绪状态 B.执行状态
C.阻塞状态 D.撤消状态 答:B
3.对进程的管理和控制使用 。
A.指令 B.原语
C.信号量 D.信箱通信 答:B
4.进程的并发执行是指若干个进程 。
A.同时执行 B.在执行的时间上是重叠的
C.在执行的时间上是不可重叠的 D.共享系统资源 答:B
5.若P、V操作的信号量S初值为2,当前值为-1,则表示有 等待进程。
A.0个 B.1个 C .2个 D.3个 答:B
6.下列的进程状态变化中, 变化是不可能发生的。
A.运行一就绪 B.运行一等待
C.等待一运行 D.等待一就绪 答:C
7.一个运行的进程用完了分配给它的时间片后,它的状态变为 。
A.就绪 B.等待
C.运行 D.由用户自己确定 答:A
8.进程间的同步是指进程间在逻辑上的相互 关系。
A.联接 B.制约 C. 继续 D.调用 答:B
9. 是一种只能进行P操作和V操作的特殊变量。
A.调度 B.进程 C.同步 D.信号量 答:D
10.下面的叙述中正确的是 。
A.操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同。
B.为了避免发生进程死锁,各进程只能逐个申请资源。
C.操作系统用PCB管理进程,用户进程可以从此PCB中读出与本身运行状况有关的信息
D.进程同步是指某些进程之间在逻辑上的相互制约关系
答:D
11.操作系统通过 对进程进行管理。
A.JCB B.PCB C.DCT D.CHCT 答:B
12.一个进程被唤醒意味着 。
A.该进程重新占有了CPU B.它的优先权变为最大
C.其PCB移至等待队列队首 D.进程变为就绪状态 答:D
13.多道程序环境下,操作系统分配资源以 为基本单位。
A.程序 B.指令 C. 进程 D.作业 答:C
14.对于两个并发进程,设互斥信号量为mutex,若mutex=0,则 。
A.表示没有进程进入临界区
B.表示有一个进程进入临界区
C.表示有一个进程进入临界区,另一个进程等待进入
D.表示有两个进程进入临界区
答:B
15.为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为 。
A.进程互斥 B.进程同步 C.进程制约 D.进程通信 答:D
16.设有5个进程共享一个互斥段,如果最多允许有3个进程同时进入互斥段,则所采用
的互斥信号量的初值应是 。
A.5 B.3 C.1 D.0 答:B
17.关于进程,下列叙述不正确的是 。
A.进程包含了数据和运行其上的程序
B.同一程序运行在不同的数据集合上时,构成不同的进程
C.一个被创建了的进程,在它消亡之前,总是处于三种基本状态之一
D.若干个进程在单CPU系统中必须依次执行,即一个进程完成后,另一个进程才能
开始工作 答:D
18.对于一个单CPU系统,允许若干进程同时执行,轮流占用CPU称它们为 的。
A.顺序执行 B.同时执行
C.并行执行 D.并发执行 答:D
19.一个程序与和它有关的进程的对应关系是 。
A.一对一 B.多对一
C.一对多 D.多对多 答:C
三.简答题
1.在操作系统中为什么要引入进程概念?它与程序的关系是怎样的?
答:在操作系统中,由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序执行的动态过程中发生的。用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入“进程”这一概念来描述程序动态执行过程的性质。
进程和程序是既有联系又有区别的两个概念,进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。它们的主要区别如下:
(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念;进程是程序在处理机上的一次执行过程,它是一个动态概念。
(2)程序的存在是永久的,而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。
(3)程序仅是指令的有序集合。而进程则由程序、数据和进程控制块组成。
(4)在传统的操作系统中,进程是资源分配和调度运行的基本单位,而程序不是。
(5)进程与程序之间不是一一对应的,即同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;而一个进程至少对应执行一个程序。
2.为了实现并发进程间的合作和协调工作,以及保证系统的安全,操作系统在进程管理方面应做哪些工作?
答:(1)进程控制:系统必须设置一套控制机构来实现进程创建、进程撤消以及进程在运行过程中的状态转换。
(2)进程同步:系统必须设置同步机制来实现对所有进程的运行进行协调,协调的方式包括进程的互斥和进程的同步。
(3)进程通信:多道程序环境下可能需要诸进程合作完成一个任务,这些进程相互间需要通过交换信息来协调各自工作的进度。因此系统必须具有进程之间通信(交换信息)的能力。
(4)进程调度:系统必须能够在处理机空闲时,按一定算法从就绪进程队列中选择一个就绪进程,把处理机分配给它,并为之设置运行的现场使其投入运行。
3.在操作系统中引入线程概念的主要目的是什么?
答:减少程序并发执行时所需付出的时空开销,提高程序执行的并发度。特别有利于共享存储器的多处理机系统,和更加适合c/s模型。
4.设有n个进程共享一个互斥段,对于如下两种情况:
(1)如果每次只允许一个进程进入互斥段;
(2)如果每次最多允许m个进程(m<n)同时进入互斥段。
试问:所采用的互斥信号量初值是否相同?信号量的变化范围如何?
答:(1)信号量的初值为1。信号量的变化范围是1,0,-1,…,-(n-1)。
(2)信号量的初值为m。信号量的变化范围是:m,m-1,…,1,0,…,-(n-m)。
四.应用题
1.下图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系并用P、V操作描述它。
解:上图说明任务启动后Sl先执行。当S1结束后,S2、S3可以开始执行。S2、S3完成后,S4才能开始执行。为了确保这一执行顺序,设三个同步信号量b2、b3、b4分别表示进程S2、S3、S4是否可以开始执行,其初值均为0。这四个进程的同步描述如下:
int b2=0;
int b3=0;
int b4=0;
main ( )
{
cobegin
s1 ( );
s2 ( );
s3 ( );
s4 ( );
coend
}
s1 ( )
{
…
v(b2);
v(b3);
}
s2 ( )
{
p(b2);
…
v(b4);
}
s3 ( )
{
p(b3);
…
v(b4);
}
s4 ( )
{
p(b4);
p(b4); /*因在s2和s3完成后均对b4作了v操作,因此这里要用两个p操作*/
…
}
2.用PV操作解决读者写者问题的正确程序如下:
begin S, Sr: Semaphore; rc: integer;
S:=1; Sr:=1; rc:=0;
cobegin PROCESS Reader i ( i=1,2...)
begin P(Sr)
rc:=rc+1;
if rc=1 then P(S);
V(Sr);
read file;
P(Sr);
rc:=rc-1
if rc=0 thenV(S);
V(Sr);
end ;
PROCESS Writer j (j=1,2...)
begin P(S);
Write file;
V(S)
end;
coend ;
end;
请回答:(1)信号量 Sr的作用;
(1) 程序中什么语句用于读写互斥,写写互斥;
(2) (3)若规定仅允许5个进程同时读怎样修改程序?
答:(1)Sr用于读者计数rc的互斥信号量;
(2)if rc=1 then P(S)中的P(S)用于读写互斥,写者进程中的P(S)用于写写互斥,读写互斥。
(3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后。