操作系统测试题.docx
《操作系统测试题.docx》由会员分享,可在线阅读,更多相关《操作系统测试题.docx(12页珍藏版)》请在冰点文库上搜索。
操作系统测试题
第一次测试
1、设有三个进程Pa,Pb和Pc。
进程Pa负责把数据块输入缓冲区S,进程Pb负责从S中提取数据并复制到缓冲区T中,进程Pc负责从T中取出数据并打印,如图4.1所示。
试利用PV操作描述进程Pa,Pb和Pc协同工作的过程。
提示:
设Pa的私用信号量为Sa=1,Pb的私用信号量为Sb1=0,Sb2=1,Pc的私用信号量为Sc=0。
0
段号段长主存地址
01k6k
15008k
22k9200
2k
2、有一个盘子只能放一个水果。
父亲会把一个苹果或桔子在盘子里。
儿子只能吃苹果,但他不能吃盘子里德橙子。
女儿只能吃橘子,但她不能吃盘子里的苹果。
请用P和V操作描述父亲、儿子、女儿的动作。
假设这个盘子最初是空的。
自定义信号量及信号量的初值,完成上述的同步操作。
3、有三个用户进程A、B和C在运行过程中都要使用系统中的一台打印机输出计算结果。
(1)试说明A、B、C进程之间存在什么样的制约关系?
(2)为保证这三个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。
要求给出信号量的含义和初值。
4、某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。
若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号
量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的P-V操作填入下面
的下划线中,以保证进程能够正确地并发执行。
COBEGIN PROCESS Pi(i=1,2,……)
begin;
进入售票厅;
购票;
退出;
;
end;
COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化
范围(最大值和最小值)。
1.答:
SemaphoreSa=1,Sb1=0,Sb2=1,Sc=0
Pa:
Begin
P(Sa)
把数据写入缓冲区S中
V(Sb1)
End
Pb:
Begin
P(Sb1)
P(Sb2)
把数据从缓冲区S中提取到缓冲区T中
V(Sa)
V(Sc)
End
Pc:
Begin
P(Sc)
从T中取走数据打印
V(Sb2)
End
4.解:
(1)定义信号量为S,其初始值为20。
信号量的初值以及信号量各种取值的含义:
S>0,S的值表示可继续进入售票厅的人数
S=0,表示售票厅中已有20名顾客(购票者)
S<0,|S|的值为等待进入售票厅的人数
(2)上框为P(S)
下框为V(S)
(3)S的最大值为20 (1分)
S的最小值为20-n (1分)
。
第二次测试
1.设系统有R1、R2和R3资源各一个,有三个进程P1,P2和P3并发工作。
进程P1需用资源R1和R3;进程P2需用资源R1和R2;进程P3需用资源R2和R3。
请回答:
(1)若对资源分配不加限制,会发生什么情况?
(2)为保证进程正确工作,应采用怎样的资源分配策略?
2.系统有四个进程P1,P2,P3,P4,有4类可分配的资源A,B,C,D,假设某时刻的资源分配情况如下表所示。
进程
Allocation
ABCD
Max
ABCD
Need
ABCD
Available
ABCD
P1
3011
4111
1100
1020
P2
0100
0212
0112
P3
1110
4210
3100
P4
1101
1111
0010
(1)说明当前系统是否处于安全状态
(2)如果是安全状态,按照银行家算法给出资源的分配与回收过程。
3、某进程P有5页,假设访问页的顺序为:
3,2,1,4,2,3,5,3,4,2,5;如果在内存中分配给该进程3个页面(设开始时3个页面都是空的),使用LRU页面置换算法,请回答如下问题:
(1)计算缺页中断次数
(2)给出页面的淘汰顺序
4、在单机系统环境下,设有4道作业,它们的提交时间及执行时间如下表所示(时间单位:
小时)。
当采用最短作业优先调度算法(SJF)时,
给出作业的调度顺序,并计算每个作业周转时间和平均周转时间(给出计算过程)。
作业名
提交时间(h)
执行时间(h)
Job1
10.0
2.0
Job2
10.2
1.0
Job3
10.4
0.5
Job4
10.5
0.3
5.在请求页式管理中,下表某个进程的页表。
假设页的大小是1K,存储器按页编址。
页号
标志位
访问位
修改位
块号
0
1
1
0
5
1
1
1
1
8
2
0
0
0
3
1
0
0
3
4
0
0
0
5
1
0
1
9
(1)解释下面页表中的标志位、访问位、修改位的含义,并说明当淘汰一个内存页面时的处理过程。
(2)下列虚地址转换为物理地址的值是多少?
A.1052 B.5499
解:
(1)采用短作业优先调度算法,则其调度顺序为:
Job1、Job4、Job3、Job2。
(2)计算每个作业的周转时间和平均周转时间
作业提交时间执行时间开始时间完成时间周转时间
Job110.02.010.012.02.0
Job410.50.312.012.31.8
Job310.40.512.312.82.4
Job210.21.012.813.83.6
平均周转时间=(2.0+1.8+2.4+3.6)=2.5(h)或2.45(h)
解:
页面
3
2
1
4
2
3
5
3
4
2
5
页面1
3
2
1
4
2
3
5
3
4
2
5
页面2
3
2
1
4
2
3
5
3
4
2
页面3
3
2
1
4
2
2
5
3
4
×
×
×
×
√
×
×
√
×
×
×
(1)计算缺页中断次数:
9次(3分)
(2)页面淘汰顺序:
3,1,4,2,5,3(3分)
解:
(1)标志位:
是否在内存,1表示已经调入内存,0表示不在内存。
访问位:
最近一段时间该页是否被访问过,被访问置1,否则置0。
修改位:
有没有被修改过。
若为1,表明修改过,淘汰时必须写回辅存,否则不需要写回。
(2)
A.P=INT(1052/1024)=1,L=1052MOD(1024)=28,查页表,可知1页对应的内存块号为7,所以物理地址为8*1024+28=8220。
B.P=INT(5499/1024)=5,L=5499MOD(1024)=379,查页表,可知其对应块号为9,所以物理地址为9*1024+379=9595。
第三次测试
1.某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。
假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号
物理块号
0
3
1
7
2
11
3
8
则逻辑地址0A5C(H)所对应的物理地址是什么?
要求:
写出主要计算过程。
2.某段式存储管理中采用如表3-6所示的段表。
表3-6段式存储管理的段表
段 号
段的长度/B
内存起始地址
0
660
219
1
14
3330
2
100
90
3
580
1237
4
96
1952
(1)给定段号和段内地址,说明段式管理中的变换过程。
(2)计算[0,430],[1,10],[2,500],[3,400],[4,20],[5,100]的内存地址,其中方括号内的第一元素是段号,第二元素是段内地址(判断地址是否合法)。
(3)说明存取主存中的一条指令或数据至少要访问几次主存。
3、现有一个仅460个字节的程序的下述内存访问序列(该序列的下标均从0开始):
10、11、104、170、73、309、185、245、246、434、458、364。
且页面大小为100字节。
(1)写出页面的访问序列。
(2)假设内存中仅有200字节可供程序使用且采用FIFO算法,那么共发生多少次缺页中断?
(3)如果采用最近最久未使用的算法LRU,则又会发生多少次缺页中断?
1.解;(共8分,每个2分)
本题中,为了描述方便,设页号为P,页内位移为D,则:
对于逻辑地址1011
P=INT(1011/1024)=0
D=1011mod1024=1011
查页表第0页在第2块,所以物理地址为3059。
对于逻辑地址2148
P=INT(2148/1024)=2
D=2148mod1024=100
查页表第2页在第1块,所以物理地址为11240
对于逻辑地址5012
P=INT(5012/1024)=4
D=5012mod1024=916
因页号超过页表长度,该逻辑地址非法。
2【解答】
2.某段式存储管理中采用如表3-6所示的段表。
表3-6段式存储管理的段表
段 号
段的长度/B
内存起始地址
0
660
219
1
14
3330
2
100
90
3
580
1237
4
96
1952
(1)给定段号和段内地址,说明段式管理中的变换过程。
(2)计算[0,430],[1,10],[2,500],[3,400],[4,20],[5,100]的内存地址,其中方括号内的第一元素是段号,第二元素是段内地址(判断地址是否合法)。
(3)说明存取主存中的一条指令或数据至少要访问几次主存。
(1)为了实现从逻辑地址到物理地址的变换,在系统中需要设置段表寄存器,存放段表起始地址和段表长度TL。
在进行地址变换时,系统将逻辑地址中的段号与段表长度TL进行比较。
若S>=TL,则表示段号太大,是访问越界(段号越界),产生越界中断,若未越界,则根据段表的起始地址和段号,计算出该段对应段表项的位置,从中读出该段在内存中的起始位置和段长SL,再检查段内地址D是否超过该面的段长SL。
若超过,即D>=SL,则同样发出越界中断信号(段内地址越界);若未越界,则将该段的起始地址与段内地址D相加,即得到要访问的内存物理地址。
(2)[0,430]的物理地址是:
219+430=649
[1,10]的物理地址是:
3330+10=3340,
[2,500]因为,500>100,所以[2,500]越界(段内地址越界)
[3,400]的物理地址是:
1237+400=1637
[4,20]物理地址是:
1952+20=1972
[5,100]因为,5>4,所以[5,100]越界(段号越界)
(3)存取主存中的一条指令或数据至少要访问2次主存,一次是访问段表,另一次是访问需要的指令和数据。
【解答】
(1)访问顺序,如表3-10所示。
表3-10页面的访问顺序
10
11
104
170
73
309
185
245
246
434
458
364
0
0
1
1
0
3
1
2
2
4
4
3
(2)采用FIFO算法的情况如表3-11所示。
表3-11采用FIFO算法的情况
0
0
1
1
0
3
1
2
2
4
4
3
块号0
0
0
1
1
1
3
3
2
2
4
4
3
块号1
0
0
0
1
1
3
3
2
2
4
淘汰页号
0
1
3
2
缺页中断
√
√
√
√
√
√
采用FIFO算法产生的缺页中断为6次。
(3)采用LRU算法的情况如表3-12所示。
表3-12采用LRU算法的情况
0
0
1
1
0
3
1
2
2
4
4
3
块号0
0
0
1
1
0
3
1
2
2
4
4
3
块号1
0
0
1
0
3
1
1
2
2
4
淘汰页号
1
0
3
1
2
缺页中断
√
√
√
√
√
√
√
采用LRU算法产生的缺页中断为7次。