第2章进程控制与同步.docx
- 文档编号:5711447
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:35
- 大小:159.75KB
第2章进程控制与同步.docx
《第2章进程控制与同步.docx》由会员分享,可在线阅读,更多相关《第2章进程控制与同步.docx(35页珍藏版)》请在冰豆网上搜索。
第2章进程控制与同步
第二章
*****************基本题2***************************
一,单项选择题
1,在进程管理中,当__________时,进程从阻塞状态变为就绪状态。
A进程被进程调度程序选中B等待某一事件
C等待的时间发生D时间片用完
2,分配到必要的资源并获得处理机是机的进程状态是__________。
A就绪状态B执行状态
C阻塞状态D撤消状态
3,p,v原语是__________。
A两条低级进程通信原语B两条不同的机器指令
C两条系统调用命令D两条高级进程通信原语
4,对进程的管理和控制使用__________。
A指令B原语
C信号量D信箱通信
5,进程的并发执行是若干个进程__________。
A同时执行B在执行的时间上是重叠的
C在执行的时间上是不可重叠的D共享系统资源
6,若p,v操作的信号量s是初值为2,当前的值为-1,则表示有_________等待进程。
A0个B1个
C2个D3个
------7,程序的顺序执行通常在1的工作环境中,具有2特征;程序的并发执行通常在3的工作环境中,具有4特征。
A单道程序B多道程序C程序的可在现性D资源共享
------8,进程的三个基本状态在一定的条件下可以互相转化,进程由就绪状态转变为运行状态的条件是1,由运行状态转变为阻塞状态的条件是2。
A时间片用完B等待某事件发生
C等待的某事件已发生D资源共享
9,下列的进程状态变化中,__________的变化是不可能发生的。
A运行----就绪B运行----等待
C等待---运行D等待----就绪
10,一个运行的程序用完了分配给它的时间片后,它的状态变为__________。
A就绪B等待
C运行D由用户自己确定
11,用p,v操作管理临界区时,信号量的初值应定义为__________。
A-1B0C1D任意值
12,用v操作唤醒一个等待机场时,被唤醒机场的状态变为__________。
A等待B就绪
C运行D完成
13,进程间的同步是只指进程在逻辑上的相互__________关系。
A联接B制约C继续D调用
14,__________是一种只能进行p操作和v操作的特殊变量。
A调度B进程C同步D信号量
15,__________是解决进程间同步和互斥的一对低级通信原语。
Alock和unlockBp和v
Cw和sDsend和receive
16,下面进程的描述中,错误的是__________。
A进程是动态的概念B进程执行需要处理机
C进程是有生命期的D进程是指令的集合
17,下面的叙述中正确的是__________。
A操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同
B为了避免发生进程死锁,各进程只能逐个申请资源
C操作系统用pcb管理进程,用户可以从pcb中读出与本身运行状况有关的信息
D进程同步是指某些进程之间在逻辑上的相互制约关系
18,进程控制就是对系统中的进程实施有效的管理,通过使用__________,进程撤消,进程阻塞,进程唤醒等进程控制原语实现。
A进程运行B进程管理C进程创建D进程同步
19,信箱通信是一种__________通信方式。
A直接通信B间接通信C低级通信D信号量
20,操作系统通过__________对进程进行管理。
A进程B进程控制块C进程启动程序D进程控制区
21,操作系统通过_________对进程进行管理。
AJCBBPCBCDCTDCHCT
22,杂操作系统中,解决进程间的__1___和__2___问题的一种方法是使用__3___。
A调度B互斥C通讯D同步E分派F信号量
23,某系统的进程状态如图2。
5所示,a是
(1)状态,b是
(2)状态,c是(3)状态
1表示---(4)-----,2表示--(5)------,3表示发生了等待事件,4表示等待事件结束。
下列情况中,当发生前者的状态转换时,----(6)-----会导致发生后者的状态转换。
(1)
(2)(3):
A挂起B运行C等待D就绪E睡眠
(4)(5)A落选B选中C等待
(6)A2----1B4----2
24,用p,v操作可以解决__________互斥问题。
A一切B某些C正确D错误
25,通常,用户进程被建立后,__________。
A便一直存在与系统中,直到被操作人员撤消
B随着作业运行正常或不正常结束而撤消
C随着时间片轮转而撤消与建立
D随着进程的阻塞或唤醒撤消与建立
26,在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次__________。
A等待活动B运行活动
C单独操作D关联操作
27.一个进程被唤醒意味着__________.
A该进程重新占有了CPUB它的优先权变为最大
C其PCB移至等待队列队首D进程变为就绪状态
28下面所述步骤中,______不是创建进程所必需的.
A由调度程序为进程分配CPUB建立一个进程控制快
C为进程分配内存D将进程控制块链入就绪状态
29.多道程序环境下,操作系统分配资源以__________为基本单位.
A程序B指令C进程D作业
30.对于两个并发进程,设互斥信号量为MUTEX,若MUTEX=0,则________
A表示没有进程进入临界区B表示有一个进程进入临界区
C表示有一个进程进入临界区,另一个进程等待进入D表示有两个进程进入临界区
31.两个进程合作完成一个任务.在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的__________
A同步B互斥C调度D执行
32.为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为_____________
A进程互斥B进程同步C进程制约D进程通信
******************************选择题答案*************************************
1.C2.B3.A4.B5B6B7ACBD8DB9C10A11C12B
13B14D15B16D17D18C19B20B21B22DBF
23BDCBAA24A25B26B27D28A29C30B
31A32D
******************************填空题2**********************************
1.进程的基本特征有________._________.独立.异步.及结构特征.
2.信号量的物理意义是当信号量值大于0时表示_________;当信号量值小于0时,其绝对值为___________.
3.临界资源的概念是___________,而临界区是指___________________.
4.进程在运行过程中有三种基本状态,它们是_______.________._______.
5进程主要由__________.__________.__________三部分内容组成,其中_______-是进程存在的唯一标志.而______部分也可以为其他进程共享.
6.系统中各进程之间逻辑上的相互制约关系称为__________
7.若一个进程以进入临界区,其他欲进入临界区的进程必需_________
8将进程的______链接在一起就形成了进程队列.
9用P.V操作管理临界区时,任何一个进程在进入临界区之前应调用______操作,退出临界区时应调用_____操作.
10用信箱实现通信时,应有_____和______两条基本原语.
11在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:
________与_________.
________指进程间具有的一定逻辑关系;__________是指进程间在使用共享资源方面的约束关系.
12对于信号量可以做________操作和_________操作,______操作用于阻塞进程,________操作用于释放进程.程序中的_______和______操作应谨慎使用,以保证其使用的正确性,否则执行时可能发生死锁.
13程序顺序执行时有顺序性.________和可再现性的特点.
14有M个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是________.
15设系统中有N(N>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况:
(1)没有运行进程,有2个就绪进程,N个进程处于等待状态.
(2)有1个运行进程,没有就绪进程,N-1个进程处于等待状态.
(3)有1个运行进程,有1个就绪进程,N-2个进程处于等待状态.
(4)有1个运行进程,N-1个就绪进程,没有进程处于等待状态.
上述情况中,不可能发生的情况是________.
16进程是一个_____态概念,而程序是一个_______态概念.
17在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有_________个,最少有______个.
18操作系统中,对信号量S和P原语操作定义中,使进程进入相应等待队列等待的条件是______.
19下面关于进程的叙述不正确的是______.
(1)进程申请CPU得不到满足时,其状态为等待状态.
(2)在单CPU系统中,任一时刻有一个进程处于运行状态.
(3)优先级是进行进程调度的重要依据,一旦确定不能改变.
(4)进程获得处理机而运行是通过调度实现的.
20信箱逻辑上分为_____和_____两部分.____中存在有关信箱的描述.______由若干格子组成,每格存放一信件,格子的数目和大小在创建信箱时确定.
************填空题答案***********************
1
(1)动态
(2)并发
2
(1)可用资源的数目
(2)因请求该资源而被阻塞的进程数目
3
(1)一次仅允许一个进程访问的资源
4
(1)运行
(2)就绪(3)等待
5
(1)程序段
(2)数据段(3)PCB(4)PCB(5)程序段
6进程同步
7等待
8PCB
9
(1)P
(2)V
10
(1)发送
(2)接收
11
(1)同步
(2)互斥(3)同步(4)互斥
12135P246V
13封闭性
141至-(m-1)
151
16
(1)动
(2)静
17
(1)4
(2)0
18s<0
193
20
(1)信箱头
(2)信箱体
******************解析题2即答案************************************
1,叙述进程和程序的主要区别。
解:
进程和程序是两个既有联系又有区别的两个概念,它们的主要区别如下:
(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。
而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
(2)程序的存在是永久的。
而进程是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消亡。
(3)程序仅是指令的有序集合。
而进程则由程序,数据和进程数据块组成。
(4)进程与程序之间不是一一对应的,即同一个程序同时运行与若干不同的数据集合上,它将属于若干个不同的进程;而一个进程可以执行多个程序。
2,在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。
试写出利用信号量机制实现两者共享单缓冲区的同步算法。
解:
在本题中,应设置两个信号量SFSE,信号量SF表示缓存区中是否有可供打印的技术结果,其初值为0;信号量SE用于表示缓冲区有无空位置存放新的信息,其初值为1。
本题的同步描述如下:
intse=1;
intsf=0;
main()
{
cobegin
get();
compute();
coend
}
get()
{
while(采集工作未完成)
{
采集一个数据;
p(se);
将数据送入缓冲区中;
v(sf)
}
}
compute()
{
while(计算工作未完成)
{
p(sf)
从缓冲区中取出数据;
v(se);
进行数据计算;
}
}
3已知一个求值公式(A^2+3B)/(B+5A),若A,B已赋值,试画出该公试求值过程的前趋图.
解:
4,图2。
7给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用p,v操作作描述它。
解:
图2。
7说明任务启动后
解析题2
解:
图2。
7说明任务启动后S1先执行。
当S1结束后,S2,S3可以开始执行。
S2,S3完成后,S4才能开始执行。
为了确保这一执行顺利,设3个同步信号量b2,b3,b4分别表示进程S2,S3,S4是否可以开始执行,其初值均为0。
这四个进程的同步描述如下:
Intb2=0
Intb3=0
Intb4=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);
5.某系统的进程状态转换图如图2.8所示,请说明:
图2.8某系统的进程状态转换图
(1)引起各种状态转换的典型事件有哪些?
(2)当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一进程作一次状态转换,在什么情况下,当一个进程发生转换3时能立即引起另一个进程发生转换1?
(3)试说明是否会发生下述因果转换:
2---->1
3---->2
4---->1
解:
(1)在本题所给的进程状态图中,存在四种状态转换.当进程调度程序从就绪队列中选取一个进程投入运行引起转换,当进程调度程序从就绪队列中选取一个进程投入运行时引起转换1;正在执行的进程如因时间片用完而被暂停执行就会引起转换2;正在执行的进程因等待的事件尚未发生而无法执行(如进程请求完成I/O)则会引起转换3;当进程等待的事件发生时(如I/O完成)则会引起转换4.
(2)如果就绪队列非空,则一个进程的转换3会立即引起另一个进程的转换1.这是因为一个进程发生转换3意味着正在执行的进程由执行状态变为阻塞状态1.这时处理机空闲,进程调度程序必然会从就绪队列选取一个进程并将他投入运行,因此只要就绪队列非空,一个进程的转换3能立即引起另一个进程的转换1.
(3)所谓因果转换指的是有两个转换,一个转换的发生会引起另一个转换的发生,前一个转换称为因,后一个称为果,这两个转换称为因果转换,当然这种因果关系并不是什么时候都能发生,而是在一定条件下才会发生.
2---->1当进程发生转换2时,就必然引起另一进程的转换1.因为当发生转换2时,正在执行的进程从执行状态转变为就绪状态,进程调度程序必然会从就绪队列选取一个进程投入运行,即发生转换1.
3---->2某个进程的转换3决不可能引起另一进程发生转换2,这是因为当前执行进程从执行状态变为阻塞状态,不可能又从执行状态转变为就绪状态,
4---->1当处理机空闲且就绪队列为空是,某一进程的转换4就会引起该进程的转换1,因为此时从阻塞状态变为就绪状态,因而调度程序就会将就绪队列中的此进程投入运行
.6在单处理机的分时系统中,分配给进程P的时间片用完后,系统进行切换,结果调度到的仍然是进程P,有可能出现上述情形吗?
如果可能请说明理由?
解,有可能出现上述情况。
例如,若在进程P时间片用完后,被追回到就绪队列时,就绪队列为空,这样进程P就是就绪队列中唯一的一个进程,于是调度程序
选种的进程必然是进程P,又如在按优先级调度的系统中,就绪队列按进程优先级排列,在进程P时间片用完后回到就绪队列时,若其优先级高于当前就绪队列中的其它进程,则它排在就绪队列之首,从而再次被调度程序选种并投入运行。
7桌上有一个空盘,允许存放一只水果。
爸爸可向盘中放苹果,也可以向盘中放橘子,儿子专等吃盘中的橘子,女而专等吃盘中的苹果。
规定当盘空时只能放一只水果供吃着取用,请用p,v原语实现爸爸,儿子,女儿三个并发进程的同步。
解,在本题中,应设置三个信号量S,SO,Sa,信号量S表示盘子是否为空,信号量So表示盘子是否有橘子,信号量Sa表示盘子是否有苹果,其初值为0。
同步
描述如下:
ints=1;
intsa=0;
intso=0;
main()
{
cobegin
father();
son();
daughter();
coend
}
father()
{
while
(1)
{
p(S)
将水果放入盘中:
if(放入的是橘子)v(So);
else
v(Sa);
}
}
son()
{
while
(1)
{
p(So)
从盘子中取出橘子;
v(s);
吃橘子;
}
}
daughter()
{
while
(1)
{
p(Sa)
从盘子中取出橘子;
v(s);
吃苹果;
}
}
8(上海交通大学1996年试题)哲学家甲请哲学家乙,丙,丁到某处讨论问题,约定全体到齐后开始讨论;在讨论的间隙四位哲学家进餐,每位进餐是都需要使用刀,叉各一把,餐桌上的布置如图2.9所示。
请用信号量及p,v原语操作说明
四位哲学家的同步,互斥过程。
解,在本题中,应设置四个信号量fork1,fork2,knife1,knife2,其初值均
为1,分别表示叉1,叉2,刀1,刀2是否可用。
同步描述如下:
intfork1=1;
intfork2=1;
intknife1=1;
intknife2=1;
main()
{
cobegin
Pa();
Pb();
Pc();
Pd();
coend
}
Pa()
{
while
(1)
{
p(knife1);
P(fork1);
进餐V(knife1);
V(fork1);
讨论问题
}
}
Pb()
{
while
(1)
{
p(knife2);
P(fork1);
进餐V(knife2);
V(fork1);
讨论问题
}
}
Pc()
{
while
(1)
{
p(knife2);
P(fork2);
进餐V(knife2);
V(fork2);
讨论问题
}
}
Pd()
{
while
(1)
{
p(knife1);
P(fork2);
进餐V(knife1);
V(fork2);
讨论问题
}
}
while
(1)
{
p(knife1=1);
}
}
9.某数据库有一个写进程,多个读进程,他们之间读,写操作的互斥要求是:
写进程正在写该数据库时不能有其他进程读该数据库,读进程之间不互斥,可以同时读该数据库.请用信号量P.V操作描述这一组进程的工作进程.
解:
在本题中,允许读进程同时读数据库,但写进程正在写数据库时不允许其他进程读数据库,也不允许其他进程写该数据库.为了解决读,写进程之间的同步,应设置两个信号量和一个共享变量:
读互斥信号量rmutex,用于使读进程互斥地访问共享变量count,其初值为1;写互斥信号量wmutex,用于实现写进程与读进程的互斥及写进程与写进程的互斥,其初值为1;共享变量count,用于纪录当前正在读数据库的读进程数目,初值为
0.其工作、过程如下:
intrmutex=1;
intwmutex=1;
intcount=0;
main()
{cobegin
reader();
writer();
coend}
reader()
{while
(1)
{p(rmutex);
if(count==0)p(wmutex);
count++;
v(rmutex);
读数据库;
p(rmutex);
count--;
if(count==0)v(wmutex);
v(rmutex);
}
}
writer()
{while
(1)
{p(wmutex);
写数据库;
v(wmutex);
}}
在本题中,要注意对信号量rmutex意义的理解.rmutex是一个互斥信号量,用于使读进程互斥地访问共享变量count,该信号量并不表示读进程的数目,表示读进程的数目的是共享变量count.当一个读进程要读数据库时,应将读进程计数count加1;如果此前数据库无读进程,还应对写进程互斥信号量wmutex做p操作,这样,若数据库中无写进程,则通过p操作阻止写进程写,若数据库有无写进程,则通过p操作让读进程等待.
10(华中理工大学1999年试题)设公共汽车上,司机和售票员的活动分别表示是
:
司机的活动:
启动车辆;
正常行车;
到站停车;
售票员的活动:
关车门;
售票;
开车门;
在汽车不断的到站,停车,行使过程中,这两个活动有什么同步关系?
用信号
量及p,v操作实现它们的同步。
解,在汽车行使过程中,司机活动和售票员活动之间的同步关系为:
售票员关车
门后,向司机发开车信号,司机接到开始信号后开始启动车辆,在汽车正常行使
工程中售票员售票,到站时司机停车,售票员在车听后开车门让乘客上下车。
因
此司机启动车辆的动作必须与售票员关车取得同步,售票员开车门的门的动作也
必须与司机听车的动作取得同步,
在本题中,应设置两个信号量,S1,S2,S1表示是否允许司机启动车辆,其初值
为0,S2表示是否允许售票员开门,其初值为0。
用p,v原语描述如下:
intS1=0;
intS2=0;
main()
{
cobegin
driver();
busman();
coend
}
driver()
{
while
(1)
{
p(S1);
启动车辆;
正常行车;
到站停车;
V(s2);
}
}
busman()
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 控制 同步