操作系统习题最经典.docx
《操作系统习题最经典.docx》由会员分享,可在线阅读,更多相关《操作系统习题最经典.docx(10页珍藏版)》请在冰豆网上搜索。
操作系统习题最经典
1、设有两个优先级相同的进程P1,P2如下所示。
令信号量S1,S2的初值为0,试问P1,P2并发运行结束后,x=,y=,z=
进程P1进程P2
y:
=1;x:
=1;
y:
=y+2;x:
=x+1;
V(S1);P(S1);
z:
=y+1;x:
=x+y;
P(S2);V(S2);
y:
=x+yz:
=x+z
X=5,y=8,Z=9.
2、在生产者-消费者问题中,假定在生产者和消费者之间的公用缓冲池中有n个缓冲区,可利用互斥信号量mutexP使生产者进程实现对缓冲池的互斥使用,利用互斥信号量mutexC使消费者进程实现对缓冲池的互斥使用;利用资源信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。
又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将产品送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个产品。
试用记录型信号量正确实现生产者和消费者的同步。
SemaphoremutexP=1,mutexC=1,empty=n,full=0;
Itembuffer[n];
intin=out=0;
voidproducer()
{
While
(1)
{
…
Produceaniteminnetxp;
…
wait(empty);
wait(mutexP);
buffer[in]=nextp;
in=(in+1)modn;
signal(mutexP);
signal(full);
}
}
Voidconsumer()
{
While
(1)
{
….
wait(full);
wait(mutexC);
nextc=buffer[out];
out=(out+1)modn;
signal(mutexC);
signal(empty);
……..
Consumetheiteminnextc;
…….
}
}
3、在读者—写者问题中,假定为实现Reader与Writer进程间在读或写时的互斥而设置了一个互斥信号量Wmutex。
另外,再设置一个整型变量Readcount表示正在读的进程数目。
由于只要有一个Reader进程在读,便不允许Writer进程去写。
因此,仅当Readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行Wait(Wmutex)操作。
若Wait(Wmutex)操作成功,Reader进程便可去读,相应地,做Readcount+1操作。
同理,仅当Reader进程在执行了Readcount减1操作后其值为0时,才须执行signal(Wmutex)操作,以便让Writer进程写。
又因为Readcount是一个可被多个Reader进程访问的临界资源,因此,也应该为它设置一个互斥信号量rmutex。
试用记录型信号量正确实现读者—写者问题的同步。
semaphorermutex=wmutex=1;
intreadcount=0;
voidreader(inti)
{
while
(1)
{
wait(rmutex);
if(readcount==0)wait(wmutex);
readcount++;
signal(rmutex);
…
Performreadoperation;
…
wait(rmutex);
readcount--;
if(readcount==0)signal(wmutex);
signal(rmutex);
}
}
voidwrite(intj)
{
while
(1)
{
wait(wmutex);
performwriteoperation;
signal(wmutex);
}
}
4、有两个作业A和B,分别在7:
00和8:
30到达系统,它们估计的计算时间分别为小时和小时,系统在9:
00开始以响应比高者优先算法进行调度,请问在单道执行时这两道作业被选中的次序以及被选中时的响应比。
按照响应比的定义是:
响应比=优先权=(等待时间+要求服务时间)/要求服务时间
∴在9:
00开始调度时两作业的啊应比如下:
A作业的响应比=(120分钟+48分钟)/48分钟=3.5
B作业的响应比=(30分钟+6分钟)/6分钟=6
因而应先选中作业B执行;作业B被选中时的响应比为6,待作业B执行结束后再选作业A执行。
此时A的响应比=(120分钟+6分钟+48分钟)/48分钟=
5、已知分段地址的结构如下:
段内地址
段号
15
8
0
7
1在这样的地址结构中,允许一个作业最多可以分为多少个段
2每个段的最大长度是多少
3已知有一逻辑地址是0296H,段表如下,物理地址是多少
段号
段长
基址
1
50
8K
2
200
6K
3
100
10K
4
150
20K
1)28=256
2)28=256
3)0296H=0000001010010110
2150
+0001100000000000=1896H
6K+150=6294
6、某采用分页存储管理的操作系统中,物理地址占32位,逻辑地址中页号占4位,页大小为4KB,
1该系统的内存空间的大小为多少
2每个物理块的大小为多少
3逻辑地址共几位
4每个作业的最大长度为多少
5若0页放在第3块中,1页放在第1块中,2页放在第9块中,逻辑地址1020H对应的物理地址是多少
1)内存大小为232=4GB
2)每个物理块的大小和页的大小相等4KB
3)逻辑地址共16位(页号占4位,由于页大小为4K,页内地址占12位)
4)每个作业的最大长度24*4KB=64KB
5)1020H
1020H=0001000000100000H
1000000100000(偏移量)
第一页对应第1块所以4K=1000000000000
+000000100000
0001000000100000
1020H
7、某操作系统采用动态分区分配存储管理技术,用户区存储空间为512KB,空闲区由空闲分区表管理。
分配时采用从低地址部分开始的方案,并假设初始时存储空间处于全部空闲状态。
对下述申请次序:
req(300KB),req(100KB),release(300),req(150KB),req(30KB),req(40KB),req(60KB)
1若采用首次适应算法,在完成上述申请次序后,空闲区表应该是什么状态(空闲区始址和分区大小)
2若采用最佳适应算法,在完成上述申请次序后,空闲区表应该是什么状态(空闲区始址和分区大小)
3若申请序列后再加上req(90KB),那么采用上述两种不同算法,将会使空闲区表呈现什么状态
1)空闲区表中有两个表目,第一个的起始地址是280KB,大小为20KB;第二个的起始地址是400KB,大小为112KB。
2)空闲区表中有两个表目,第一个的起始地址是210KB,大小为90KB;第二个的起始地址是470KB,大小为42KB。
3)第一种方式中,第二个空块可以满足申请要求,分配后第二个空块的起始地址变为490KB,大小为22KB。
第一个空块不变。
第二种方式中,第一个空块正好满足申请要求,全部分配出去。
只剩下第二个空块。
8、在分页虚拟存储管理系统中,假定系统为某进程分配了4个内存块(将开始4页装入内存),页的引用顺序为:
7,1,2,0,3,0,4,2,3,0,3,2,7,0,若采用FIFO调度算法、LRU调度算法时,分别产生多少次缺页中断依次淘汰的页是什么
FIFO:
共发生了3次缺页中断,依次淘汰的页为7、1、2
LRU:
共发生了3次缺页中断,依次淘汰的页为7、1、4
9、系统中磁头停留在磁道号为100的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:
55、120、39、110。
移动臂的运动方向:
沿磁道号递减的方向移动。
若分别采用FCFS磁盘调度算法、SSTF算法、SCAN算法时,所需寻道长度分别为多少
FCFS算法:
100-55+120-55+120-39+110-39=262
SSTF算法:
110-100+120-110+120-55+55-39=
SCAN算法:
100-55+55-39+110-39+120-110=
10、在FAT16文件系统中,且每个盘块的大小是512字节,
1如果每个簇可以有4个盘块,可以管理的最大分区空间是多少
2如果每个簇可以有64个盘块,可以管理的最大分区空间又是多少
1)216*4*512=128M
2)216*64*512=2G
11、某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘块空间,试问:
1位示图需要多少个字
2如果b(盘块号),i,j从1开始计数,第i字第j位对应的块号是多少
3如果b(盘块号),i,j从0开始计数,第i字第j位对应的块号是多少
1)[500/32]=16
2)b=32*(i-1)+j
3)b=32*i+j
12、存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。
如果每个盘块的大小为4KB,若盘块号需要用4个字节来描述,请问系统中允许文件的最大长度是多少
直接地址:
10*4KB+
一次间接地址:
(4KB/4B)*4KB+
二次间接地址:
(4KB/4B)*(4KB/4B)*4KB+
三次间接地址:
(4KB/4B)*(4KB/4B)*(4KB/4B)*4KB=
40KB+4MB+4GB+4TB
13、设有一分页存储管理系统,向用户提供的逻辑地址空间最大为16页,每页4096字节,
1试问逻辑地址至少应为多少位
每页4096B,所以页内位移部分地址需要占12个二进制位,
逻辑地址空间最大为16页,所以页号部分地址需要占4个二进制位。
故逻辑地址至少应为16位。
14、在两级索引分配方式下,如果每个盘块的大小为4KB,每个盘块号占4个字节,
1所允许的文件最大长度是多少
(4KB/4B)*(4KB/4B)*4KB=4GB
15、有3200个磁盘块可用来存储信息,如果用字长为16位的字来构造位示图,若位示图部分内容如图所示。
1位示图共需多少个字
2若某文件长度为3200B,每个盘块为512个字节,采用链接结构且盘块从1开始计数,系统将为其分配哪些磁盘块
3试具体说明分配过程。
4若要释放磁盘的第300块,应如何处理
1)3200/16=200
2)3200/512=7;20、24、25、26、27、37和38
3)顺序检索位示图,从中找到第一个值为0的二进制位,得到行号i=2,列号j=4;计算出找到的第一个盘块是B1=(2-1)*16+4=20
第二个值为0的二进制位,得到行号i=2,列号j=8.;计算出找到的第一个盘块是
B2=(2-1)*16+8=24
………….
修改位示图,令Map[2,4]=Map[2,8]=…..=1,并将对应块20、24…….分配出去。
4)计算出磁盘第300块所对应的二进制位的行号i和列号j:
i=(300-1)/16+1=19j=(300-1)MOD16+1=12修改位示图,令Map[19,12]=0,表示对应块为空闲块。