操作系统第二章练习.docx
- 文档编号:4312280
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:24
- 大小:35.21KB
操作系统第二章练习.docx
《操作系统第二章练习.docx》由会员分享,可在线阅读,更多相关《操作系统第二章练习.docx(24页珍藏版)》请在冰豆网上搜索。
操作系统第二章练习
1.P、V操作是A。
A.两条低级进程通信原语B.两组不同的机器指令
C.两条系统调用命令D.两条高级进程通信原语
2.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,
不可能发生的情况是A。
A.没有运行进程,有2个就绪进程,n个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
3.若P、V操作的信号量S初值为2,当前值为-1,则表示有B等待进程。
A.0个B.1个C.2个D.3个
4.用V操作唤醒一个等待进程时,被唤醒进程的状态变为B。
A.等待B.就绪C.运行D.完成
5.用P、V操作可以解决A互斥问题。
A.一切B.某些C.正确D.错误
6.多道程序环境下,操作系统分配资源以C为基本单位。
A.程序B.指令C.进程D.作业
7.从下面对临界区的论述中,选出一条正确的论述。
(1)临界区是指进程中用于实现进程互斥的那段代码。
(2)临界区是指进程中用于实现进程同步的那段代码。
(3)临界区是指进程中用于实现进程通信的那段代码。
(4)临界区是指进程中用于访问共享资源的那段代码。
(5)临界区是指进程中访问临界资源的那段代码。
8.(A)是一种只能由wait和signal操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。
A:
(1)控制变量;
(2)锁;(3)整型信号量;(4)记录型信号量。
B:
(1)同步;
(2)通信;(3)调度;(4)互斥。
C:
(1)同步;
(2)通信;(3)调度;(4)互斥。
9.对于记录型信号量,在执行一次wait操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。
在执行signal操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。
A:
(1)不变;
(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。
B:
(1)大于0;
(2)小于0;(3)大于等于0;(4)小于等于0.
C:
(1)不变;
(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。
D:
(1)大于0;
(2)小于0;(3)大于等于0;(4)小于等于0.
10.用信号量S实现对系统中4台打印机的互斥使用,S.value的初值应设置为(A),若S.value的初值为-1,则表示S.L队列中有(B)个等待进程。
A:
(1)1;
(2)0;(3)-1;(4)4;(5)-4
B:
(1)1;
(2)2;(3)3;(4)4;(5)5;(6)6;(7)0。
11.试选择(A)~(D),以便能正确地描述图2.12所示的前趋关系。
Vara,b,c:
semaphore:
=0,0,0;
Begin
Parbegin
BeginS1;(A);end;
BeginS2;(B);end;
Begin
Wait(a);wait(b);S3;(C);
End
Begin(D);S4end
Parend
End
A:
(1)signal(a);
(2)signal(b);(3)wait(c);(4)signal(c)。
B:
(1)signal(a);
(2)signal(b);(3)wait(c);(4)signal(c)。
C:
(1)signal(a);
(2)signal(b);(3)wait(c);(4)signal(c)。
D:
(1)signal(a);
(2)signal(b);(3)wait(c);(4)signal(c)。
12.设有10个进程共享一个互斥段,如果最多允许有1个进程进入互斥段,则所采用的互斥信号量初值应设置为(A),而该信号量的取值范围为(B);如果最多允许有3个进程同时进入互斥段,则所采用的互斥信号量初值应设置为(C)。
A:
(1)10;
(2);3;(3)1;(4)0。
B:
(1)0~1;
(2)-1~0;(3)1~-9;(4)0~-9。
C:
(1)10;
(2);3;(3)1;(4)0。
1.信号量的物理意义是当信号量值大于零时表示可用资源的数目;当信号量值小于零时,其绝对值为因请求该资源而被阻塞的进程数目。
2.临界资源的概念是一次仅允许一个进程访问的资源,而临界区是指进程中访问临界资源的那段程序代码。
3.进程在运行过程中有三种基本状态,它们是运行、就绪、等待。
4.进程主要由程序段、数据段、PCB三部分内容组成,其中PCB是进程存在的唯一标志。
而程序段部分也可以为其他进程共享。
5.系统中各进程之间逻辑上的相互制约关系称为进程同步。
6.若一个进程已进入临界区,其他欲进入临界区的进程必须等待。
7.将进程的PCB链接在一起就形成了进程队列。
8.用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用P操作,退出临界区时应调用V操作。
9.在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:
同步与互斥。
同步指进程间具有的一定逻辑关系;互斥是指进程间在使用共享资源方面的约束关系。
10.程序顺序执行时有顺序性、封闭性和可再现性的特点。
11.有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是1~-(m-1)。
24、同步机制应遵循的准则:
、、和。
空闲让进、忙则等待、有限等待、让权等待
25、在记录型信号量机制中,S.value>0时的值表示;每次wait操作意味着,因此应将S.value,当S.value时,进程应阻塞。
可用的临界资源数量;申请一个临界资源;减1;小于0
26、在记录型信号量机制中,每次signal操作意味着,因此应将S.value,当S.value<=0时,表示,此时应。
释放一个临界资源,加1,仍有请求该资源的进程被阻塞;唤醒相应阻塞队列中的首进程
27、在利用信号量实现进程互斥时,应将置于和之间。
临界区,wait操作,signal操作
28、在每个进程中访问的那段代码称为临界区。
为实现对它的共享,应保证进程进入自己的临界区,为此,在每个进程的临界区前应设置,临界区后应设置。
临界资源,互斥,进入区,退出区
42、P\V操作必须成对出现,有一个P操作就一定有一个V操作。
43、临界资源是指系统中一次只允许一个进程使用的资源,而临界区是指涉及到临界资源的代码段。
36、如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前。
而两个V操作的次序无关紧要。
37、P(S):
表示申请一个资源;V(S)表示释放一个资源。
信号量的初值应该大于等于0。
38、P、V操作当为互斥操作时,它们同处于同一进程;当为同步操作时,则不在同一进程中出现。
29.在生产者-消费者问题中,应设置互斥信号量mutex、资源信号量full和empty。
它们的初值应分别为(A)、(B)、(C)。
A:
(1)0;
(2)1;(3)-1;(4)-n;(5)+n。
B:
(1)0;
(2)1;(3)-1;(4)-n;(5)+n。
C:
(1)0;
(2)1;(3)-1;(4)-n;(5)+n。
30.对生产者-消费者问题的算法描述如下,请选择正确的答案编号填入方框中。
Producer:
begin
Repeat
(A);
(B);
Buffer(in):
=m;
In:
=(in+1)modn;
(C);
(D);
Untilfalse
End
Consumer:
begin
Repeat
(E);
(B);
M:
=buffer(out);
Out:
=(out+1)modn;
(C);
(F);
Untilfalse
end
A:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
B:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
C:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
D:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
E:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
F:
(1)wait(mutex);
(2)signal(mutex);(3)wait(empty);(4)signal(full);(5)wait(full);(6)signal(empty)。
3
32.有两个程序:
A程序按顺序使用CPU10秒、设备甲5秒、CPU5秒、设备乙10秒、CPU10秒;B程序按顺序使用设备甲10秒、CPU10秒、设备乙5秒、CPU5秒、设备乙10秒。
在顺序环境下,执行上述程序,CPU的利用率约为(A)。
若允许它们采用非抢占方式并发执行,并且不考虑切换等开销,则CPU的利用率约为(B)。
A
(1)30%;
(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%。
B
(1)30%;
(2)40%;(3)50%;(4)60%;(5)70%;(6)80%;(7)90%。
33.从下面的叙述中选出一条正确的叙述:
(1)操作系统的一个重要概念是进程,不同的进程所执行的代码也不同。
(2)操作系统通过PCB来控制和管理进程,用户进程可从PCB中读出与本身运行状态相关的信息。
(3)当进程由执行状态变为就绪状态时,CPU现场信息必须被保存在PCB中。
(4)当进程申请CPU得不到满足时,它将处于阻塞状态。
(5)进程是可与其他程序并发执行的程序在一个数据集合上的运行过程,所以程序段是进程存在的唯一标志。
34.从下面的叙述中选出4条正确的叙述:
(1)一个进程的状态发生变化总会引起其它一些进程的状态发生变化。
(2)进程被挂起(suspend)后,状态变为阻塞状态。
(3)信号量的初值不能为负数。
(4)线程是CPU调度的基本单位,但不是资源分配的基本单位。
(5)在进程对应的代码中使用wait、signal操作后,可以防止系统发生死锁。
(6)管程每次只允许一个进程进入。
(7)wait、signal操作可以解决一切互斥问题。
(8)程序的顺序执行具有不可再现性。
35.在引入线程的操作系统中,资源分配和调度的基本单位是(A),CPU调度和分配的基本单位是(B)。
A:
(1)程序;
(2)进程;(3)线程;(4)作业。
B:
(1)程序;
(2)进程;(3)线程;(4)作业。
36.在三种基本类型的操作系统中,都设置了(A),在批处理系统中还应设置(B);在分时系统中除了(A)以外,通常还设置了(C),在多处理机系统中则还需设置(D)。
A:
(1)剥夺调度;
(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。
B:
(1)剥夺调度;
(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。
C:
(1)剥夺调度;
(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。
D:
(1)剥夺调度;
(2)作业调度;(3)进程调度;(4)中级调度;(5)多处理机调度。
37.在面向用户的调度准则中,(A)是选择实时调度算法的重要准则,(B)是选择分时系统中进程调度算法的重要准则,(C)是批处理系统中选择作业调度算法的重要准则,而(D)准则则是为了照顾紧急作业用户的要求而设置的。
A:
(1)响应时间快;
(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。
B:
(1)响应时间快;
(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。
C:
(1)响应时间快;
(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。
D:
(1)响应时间快;
(2)平均周转时间短;(3)截止时间的保证;(4)优先权高的作业能获得优先服务;(5)服务费低。
38.支持多道程序设计的操作系统,在运行过程中不断地选择新进程运行来实现CPU的共享,但其中(A)不是引起操作系统选择新进程的直接原因。
A:
(1)执行进程的时间片用完;
(2)执行进程出错;(3)执行进程要等待某一事件发生;(4)有新进程进入就绪队列。
39、一般情况下,互斥信号量的初值为B。
A.0B.1C.2D.4
第三部分是非题
1.进程是动态的概念(对)
2.进程执行需要处理机(对)
3.进程是有生命期的(对)
4.进程是指令的集合(错)
5.操作系统的一重要概念是进程,因此不同进程所执行的代码也一定不同(错)
7.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息(错)
8.进程同步是指某些进程之间在逻辑上的相互制约关系(对)
9.在一个只有单个CPU的计算机中,进程不能并行操作。
错。
一个进程在利用CPU运行,另一个进程可以同时进行I/O操作,它们是并行的。
10.线程可以分为内核级(KernelThread)和用户级(UserThread)两种,操作系统不可以直接调度用户级的线程。
对。
第四部分填空题
12.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程最多有4个,最少有0个。
23、系统中共有5个用户进程,且当前CPU在用户态下执行,则最多可有个用户进程处于就绪状态,最多可有个用户进程处于阻塞状态;若当前在核心态下执行,则最多可有个用户进程处于就绪状态,最多可有个用户进程处于阻塞状态。
4,4,5,5
29、进程通信的类型有、、三类,其中利用共享文件进行通信。
共享存储器、消息系统、管道通信、管道通信
30、为实现消息缓冲队列通信,应在PCB中增加、、三个数据项。
消息队列首指针mq;消息队列互斥信号量mutex;消息队列资源信号量sm
31.在直接通信方式中,系统通常提供的两条通信原语如下,请选择适当的参数填入。
Send((A),(B));
Receive((C),(B));
A:
(1)sender;
(2)receiver;(3)text;(4)message;(5)mailbox。
B:
(1)sender;
(2)receiver;(3)text;(4)message;(5)mailbox。
C:
(1)sender;
(2)receiver;(3)text;(4)message;(5)mailbox。
32.使用mail命令的信箱通信属于(A),因为信息是被发送到接收方的(B)中;使用write命令,实现的是(C)通信,因为信息是被发送到接收方的(D)中;使用共享文件进行通信的方式属于(E)通信。
A:
(1)共享存储器;
(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信。
B:
(1)消息缓冲队列;
(2)内存;(3)信箱;(4)消息缓冲区;(5)屏幕;(6)共享存储器。
C:
(1)共享存储器;
(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信。
D:
(1)消息缓冲队列;
(2)内存;(3)信箱;(4)消息缓冲区;(5)屏幕;(6)共享存储器。
E:
(1)共享存储器;
(2)实时通信;(3)消息缓冲通信;(4)非实时通信;(5)管道通信。
33、在采用用户级线程的系统中,OS进行CPU调度的对象是;在采用内核支持线程的系统中,CPU调度的对象是。
进程,线程
34、线程之所以能减少并发执行的开销是因为。
线程基本不拥有资源
35、进程通信的常用方式有直接通信和间接通信等。
40、I/O型进程是指花费I/O时间多于计算的进程,而CPU型进程是指花费计算多于I/O时间的进程。
41、当时间片轮转算法的时间片足够大时,这个算法就等同于FIFO算法。
第五部分解析题
1.进程的定义是什么?
它最少有哪几种状态?
2.进程与线程的主要区别是什么?
3、什么是进程的互斥与同步?
同步和互斥这两个概念有什么联系和区别?
解:
(1)同步:
两个事件的发生有着某种时序上的关系,进程间的同步关系是指系统中往往有几个进程共同完成一个任务;
(2)互斥是进程间的另外一种关系。
由于各进程要共享资源。
而有些资源往往要求排他性地使用;
(3)互斥是一种特殊的同步关系。
4.图给出了4个进程合作完成某一任务的前驱图,试说明这4个进程间的同步关系,并用P、V操作描述它。
解:
图说明任务启动后S1先执行。
当S1结束后,S2、S3可以开始执行。
S2、S3完成后,S4才能开始执行。
为了确保这一执行顺序,设3个同步信号量b2、b3、b4分别表示进程S2、S3、S4是否可以开始执行,其初值均为0。
进程同步描述如下:
//可用两种方法来解决
//S1不必判断能否开始
//b2、b3、b4起初全部为0,表示都不可开始
intb2=0;//表示进程S2是否可以开始执行
intb3=0;//表示进程S3是否可以开始执行
intb4=0;//表示进程S4是否可以开始执行
//也可分为b42、b43
main()
{
cobegin
S1();
S2();
S3();
S4();
Coend
}
S1()
{
…
v(b2);
v(b3);
}
S2()
{
p(b2);
…
v(b4);//v(b42)
}
S3()
{
p(b3);
…
v(b4);//v(b43)
}
S4()
{//因为在S2及S3完成时均对b4做了v操作,因此这里要用两个p操作
p(b4);//p(b42)
p(b4);//p(b43)
…
}
5.桌上有一空盘,允许存放一只水果。
爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
解:
设置3个信号量S、SO、SA,信号量S表示盘子是否为空,其初值为1;信号量SO表示盘中是否有桔子,其初值为0;信号量SA表示盘中是否有苹果,其初值为0。
同步描述:
intS=1;
intSA=0;
intSO=0;
main()
{
cobegin
father();
son();
daughter();
coend
}
father()
{
while
(1)
{
p(S);//盘子是否空
将水果放入盘中;
if(放入的是桔子)v(SO);//变形
elsev(Sa)//很少有学生如此做!
而这却是本题的关键
}
}
son()
{
while
(1)
{
p(SO);//盘子中有无桔子
从盘中取出桔子;
v(S);
吃桔子;
}
}
daughter()
{
while
(1)
{
p(SA);//盘子中有无苹果
从盘中取出苹果;
v(S);
吃苹果;
}
}
6.在单处理机的分时系统中,分配给进程P的时间片用完后,系统进行切换,结果调度到的仍然是进程P。
有可能出现上述情形吗?
如果可能请说明理由。
解:
有可能出现上述情况。
例如,若在进程P时间片用完后,被迫回到就绪队列时,就绪队列为空,这样进程P就是就绪队列中唯一的一个进程,于是调度程序选中的进程必然是进程P;又如在按优先级调度的系统中,就绪队列按进程优先级排列,在进程P时间片用完之后回到就绪队列时,若其优先级高于当前队列中的其他进程,则它将排在就绪队列之首,从而再次被调度程序选中并投入运行。
7.哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论问题;在讨论的间隙4位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图。
请用信号量及P、V操作说明这4位哲学家的同步、互斥过程。
解:
在本题中,应设置4个信号量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);
讨论问题;
}
}
8.请用信号量实现对某数据库的读者-写者互斥。
要求:
(1)读者与写者之间互斥,写者与写者之间互斥。
(2)读者之间不互斥。
解:
本题是读者-写者问题。
在本题中,允许读进程同时读数据库,但写进程正在写数据库时不允许其他进程读该数据库,也不允许其他进程写该数据库。
为了解决读、写进程之间的同步,应该设置2个信号量和一个共享变量:
读互斥信号量rmutex,用于使读进程互斥地访问共享变量count,其初值为1;写互斥信号量wmutex,用于实现写进程与读进程的互斥及写进程与写进程的互斥,其初值为1;共享变量count,用于记录当前正在读数据库的读进程数目,初值为0。
其工作过程描述如下:
Semaphorermutex=1;
Semaphorewmutex=1;
Intcount=0;
Main()
{
Cobegin
Reader();
Writer();
Coend
}
Reader()
{
While(true)
{
P(rmutex);
If(count==0)p(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第二 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)