操作系统第二三章进程管理习题.docx
《操作系统第二三章进程管理习题.docx》由会员分享,可在线阅读,更多相关《操作系统第二三章进程管理习题.docx(12页珍藏版)》请在冰豆网上搜索。
操作系统第二三章进程管理习题
第二、三章进程管理习题
一、选择题
1. 从静态角度上看,进程是有 A 、 B 、 C 三部分组成,其中 C 是进程存在的唯一标志。
当几个进程共享 A 时, A 应当是可重入代码。
A,B,C:
(1)JCB;
(2)PCB; (3)DCB; (4)FCB;(5)程序段; (6)数据段; (7)I/O缓冲区。
2. 进程的三个基本状态是 A 、 B 、 C 。
由 A 到 B 是由进程调度所引起;由 B 到 C 是正在执行的进程发生了某事件,使之无法执行而暂停。
A,B,C:
(1)挂起;
(2)阻塞; (3)就绪; (4)执行。
3. 产生死锁的四个必要条件是互斥条件、 A 、不剥夺条件和 B 。
A:
(1)请求和阻塞条件;
(2)请求和释放条件; (3)请求和保持(占有且等待)条件;(4)释放和阻塞条件; (5)释放和请求条件。
B:
(1)线性增长条件;
(2)环路条件; (3)无序释放条件;(4)有序释放条件; (5)无序请求条件。
4. A 是一种只能由P和V操作所改变的整型变量, A 可用于实现进程的 B 和 C , B 是排它性地访问临界资源。
A:
(1)控制变量;
(2)锁; (3)整型信号量; (4)记录型号量。
B,C:
(1)同步;
(2)通信; (3)调度; (4)互斥。
5. 对于记录型信号量,在执行一次P操作时,信号量的值应当 A ;当其值为 B 时,进程应阻塞。
在执行V操作时,信号量的值应当 C ;当其值为 D 时,应唤醒阻塞队列中的进程。
A,C:
(1)不变;
(2)加1; (3)减1; (4)加指定数值; (5)减指定数值。
B,D:
(1)大于0;
(2)小于0; (3)大于等于0; (4)小于等于0。
6. 我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用 A ,为照顾紧急作业的用户,应采用 B ,而能使短作业、长作业及交互作业用户都比较满意时,应采用C 。
A,B,C:
(1)FCFS调度算法;
(2)短作业优先调度算法;(3)时间片轮转法;(4)多级反馈队列调度算法;(5)基于优先权的剥夺调度算法。
二、填空题
1.在单用户单任务环境下,用户独占全机,此时机内资源的状态,只能由运行程序的操作加以改变,此时的程序执行具有 性和 性。
2. 在多用户环境下,由多个程序共享一台计算机,机内资源的状态将由多个程序来改变,因此使程序失去了在顺序执行时具有的 和 特性。
3.在操作系统中,进程是一个 的基本单位。
4.当前进程若因时间片用完而被暂停执行时,该进程应转变为 状态;若因发生某事件而不被继续运行时,该进程应转变为 状态。
处于就绪状态的进程被调度应转变为 状态。
5.每执行一次V操作,表示 ;若S.value<=0,则表示 ,此时应 。
6. 在利用信号量实现进程互斥时,应将 置于 和 之间。
7. 在每个进程中访问 的那段代码称为临界区。
为实现对它的共享,应保证进程 进入自己的临界区。
8. 解决死锁问题的基本方法有 、
、 。
三、问答题
1、什么是进程?
2、说明进程的结构和基本状态。
3、进程之间有哪些基本的通信方式?
它们分别有什么特点?
4、什么是临界资源?
5、什么是临界区?
6、试说明进程互斥、同步和通信三者之间的关系。
7、在一个系统中,若进程之间除了信号量之外不能共享任何变量,进程之间能互相通信吗?
四、综合应用题
1、阅读下面关于读者与写者问题的同步算法,并填空。
semaphorermutex=1,wmutex=1,;
intreadercount=0;
begin
parbegin
Reader:
begin
repeat
wait(rmutex);
if_________1__________then_______2____________;
__________________3________________;
________4___________;
执行读操作;
________5___________;
__________6________________________;
if__________7_________then______8_____________;
signal(rmutex);
untilfalse;
end
Writer:
begin
repeat
_________9__________;
执行写操作;
_________10__________;
untilfalse;
end
parend
end
1、读者与写者同步算法填空
①readercount=0②wait(wmutex)
③readercount:
=readercount+1
④signal(rmutex)⑤wait(rmutex)
⑥readercount:
=readercount-1
⑦readercount=0⑧signal(wmutex)
⑨wait(wmutex)⑩signal(wmutex)
2、设有n个进程共享一临界区,对于下述情况,说明信号量的初值、含义,并用PV操作写出有关进程的互斥算法:
(1)一次只允许一个进程进入临界区。
(2)一次允许m(m<=n)个进程进入临界区。
3、某小型超级市场,可容纳50个人同时购物。
入口处备有篮子,每个购物者可拿一只篮子入内购物。
出口处结账,并归还篮子(出入口禁止多人同时通过)。
试用PV操作写出购物者的同步算法。
4、请用PV操作写出下面前趋图的并发程序:
5、假定系统中有五个进程{P0,P1,P2,P3,P4}和三种类型的资源{A,B,C},每一种资源的数量分别为10,5,7,在T0时刻的资源分配情况如下图所示。
(i)试分析系统在T0时刻是否安全,为什么?
(ii)P3在T1时刻发出请求向量Request3(0,1,0),请问可否进行分配,为什么?
(iii)假设(ii)步资源分配完成后,P4在T2时刻发出请求向量Request4(2,2,0),请问可否进行分配,为什么?
6、假定在单CPU条件下有下列要执行的作业:
作业
运行时间
优先级
1
10
3
2
1
1
3
2
3
4
1
4
5
5
2
作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。
(1)用一个执行时间图描述在下列算法时各自执行这些作业的情况:
FCFS、RR(时间片=1)和非抢占式优先级。
(2)对于上述每种算法,各个作业的周转时间是多少?
平均周转时间是多少?
(3)对于上述每种算法,各个作业的带权周转时间是多少?
平均带权周转时间是多少?
答案
选择题
1 A 5
B 6
C 2
2 A 3
B 4
C 2
3 A 3
B 2
4 A 3
B 4
C 1
5 A 3
B 2
C 2
D 4
6 A 2
B 5
C 4
填空题
1 (1) 封闭性
(2) 可再现性
2 (1) 封闭性
(2) 可再现性
3 (1) 资源分配
4 (1) 就绪
(2) 阻塞(OR等待)
(3) 执行
5 (1) 释放一个单位资源
(2) 仍有请求该资源的进程被阻塞
(3)唤醒等待该资源的队首进程,并将之插入就绪队列
6 (1) 临界区
(2) 进入区
(3) 退出区
7 (1) 临界资源
(2) 互斥地
8 (1) 预防死锁
(2) 避免死锁
(3) 检测死锁和解除死锁
三、问答题
1、答:
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
(在WindowsNT等采用微内核结构的现代操作系统中,进程的功能发生了变化:
它只是资源分配的单位,而不再是调度运行的单位,其调度运行的基本单位是线程。
)
2、答:
结构:
PCB(进程控制块)+程序+数据集合。
基本状态:
就绪态、执行态、阻塞态。
3、答:
进程通信根据交换信息量的多少分为高级通信和低级通信。
低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。
4、答:
一次仅允许一个进程使用的资源称为临界资源。
5、答:
每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。
每次只准许一个进程进入临界区,进入后不允许其他进程进入
6、答:
进程的同步与互斥是指进程在推进时的相互制约关系。
在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。
为了保证进程的正确运行以及相互合作的进程之间交换信息,需要进程之间的通信。
进程之间的制约关系体现为:
进程的同步和互斥。
进程同步:
它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。
为进程之间的直接制约关系。
在多道环境下,这种进程间在执行次序上的协调是必不可少的。
进程互斥:
它主要源于资源共享,是进程之间的间接制约关系。
在多道系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。
进程通信:
是指进程间的信息交换。
PV操作作为进程的同步与互斥工具因信息交换量少,效率太低,称为低级通信。
而高级通信则以较高的效率传送大批数据。
7、答:
能,同步与互斥是进程通信的基本内容,P、V操作与信号量结合可以实现同步与互斥。
四、综合应用题
2、
(1)设置信号量S1,初值为1;表示临界资源有一个可供n个进程竞争使用。
每个进程的互斥算法描述如下:
S1取值的范围是1,0,-1,-2,…-(n-1),即某一时刻最多有一个进程正在临界区,而等待进入临界区的进程可有1个,2个,最多时可达n-1个。
(2)设置信号量S2,初值为m;表示临界资源有m个可供n个进程竞争使用。
每个进程的互斥算法描述如下:
S2取值的范围是m,m-1,…1,0,-1,-2,…-(n-m),即某一时刻最多有m个进程正在临界区,而等待进入临界区的进程可有1个,2个,最多可达n-m个。
3、设置信号量S,其初值为50,表示开始时允许50个购物者进入超级市场。
互斥信号量mutex,初值为1,对入口处的篮子进行互斥,表示购物者互斥拿或放下一只篮子。
每个顾客Pi的同步算法如下:
4、 根据前趋图解法,为每条有向边设置一个信号量,初值均为0。
把每个结点作为一个进程处理,为此设计7个进程。
每个进程的结构均一样:
先为该结点的每条输入边分别安排相应的P操作;然后执行该结点对应进程的程序段;最后是为该结点的每条输出边分别安排相应的V操作。
并发程序描述如下:
structsemaphorea,b,c,d,e,f,g,h,i=0,0,0,0,0,0,0,0,0;
cobegin
{S1;V(a);V(b);}
{P(a);S2;V(c);V(d);}
{P(b);S3;V(e);}
{P(d);P(e);S4;V(f);V(g);}
{P(c);P(f);S5;V(h);}
{P(g);S6;V(i);}
{P(h);P(i);S7;}
coend
5、基于银行家算法的资源分配
(i)在T0时刻存在安全序列,所以系统是安全的。
(ii)P3在T1时刻发出请求向量Request3(0,1,0)
①系统按银行家算法进行检查:
(A)Request3(0,1,0)<=Need3(0,1,1),资源申请合理;
(B)Request3(0,1,0)<=Available(2,2,0),可利用资源总量可以满足资源申请;
②系统试探性地满足P0请求,并对系统状态进行修改:
(1分)
Available(2,1,0),Allocation3(2,2,1),Need3(0,0,1);
③系统调用安全性算法进行资源分配检查:
由此可知,存在安全序列,所以系统安全,可以执行分配。
(iii)假设(ii)步资源分配完成后,P4在T2时刻发出请求向量Request4(2,2,0)
系统按银行家算法进行检查:
(A)Request4(2,2,0)<=Need4(4,3,1),资源申请合理;
(B)Request4(2,2,0)>Available(2,1,0),可利用资源总量无法满足资源申请,
所以,需让P4等待,不能进行分配。
6、
作业
运行时间
优先级
1
10
3
2
1
1
3
2
3
4
1
4
5
5
2
(2)和(3)FCFS:
作业
到达时间
运行时间
完成时间
周转时间
带权周转时间
1
0
10
10
10
1.0
2
1
1
11
10
10.0
3
2
2
13
11
5.5
4
3
1
14
11
11.0
5
4
5
19
15
3.0
平均周转时间
11.4
平均带权周转时间
6.1
RR:
作业
到达时间
运行时间
完成时间
周转时间
带权周转时间
1
0
10
19
19
1.9
2
1
1
2
1
1.0
3
2
2
8
6
3.0
4
3
1
5
2
2.0
5
4
5
16
12
2.4
平均周转时间
8.0
平均带权周转时间
2.06
非抢占式优先级:
作业
到达时间
运行时间
完成时间
周转时间
带权周转时间
1
0
10
10
10
1.0
2
1
1
19
18
18.0
3
2
2
13
11
5.5
4
3
1
11
8
8.0
5
4
5
18
14
2.8
平均周转时间
12.2
平均带权周转时间
7.06