操作系统复习重点内容复习docx.docx
- 文档编号:24193644
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:19
- 大小:33.12KB
操作系统复习重点内容复习docx.docx
《操作系统复习重点内容复习docx.docx》由会员分享,可在线阅读,更多相关《操作系统复习重点内容复习docx.docx(19页珍藏版)》请在冰豆网上搜索。
操作系统复习重点内容复习docx
二、进程同步问题
1、一个快餐厅有4类职员:
⑴领班:
接受顾客点菜;
(2)厨师:
准备顾客的饭菜;(3)打包工:
将饭菜打包;(4)出纳员:
收款并提交食物。
每位职员可被看做一个进程,试用一种同步机制写岀能让4类职员正确并发工作的程序。
解:
可设4个信号量SI,S2,S3,S4來协调进程工作。
SemaphoreS2,S3,S4,Wl,W2,W3,W4;
S2=S3=S4=0;W1=W2=W3=W4=1;//S为同步信号量,表示4类职员的工作顺序,W为互斥信号量,表示每一类员工一次只能为一个客户服务
cobegin
processPl(){while(true){有顾客到来;
P(Wl);//W1=W1-1,ifWl<0block;接受顾客点菜;
V(Wl);//Wl=Wl+l
V(S2);//S2=S2+1;
}
}
processP2(){
while(true){
P(S2);//S2=S2-1,ifS2<0block;
P(W2);//W2=W2-1,ifW2<0block;准备顾客的饭菜;
V(W2);//W2=W2+l
V(S3);//S3=S3+1
processP3(){
while(true){
P(S3);
P(W3);//W3=W3-1,ifW3<0block;将饭菜打包;
V(W3);//W3=W3+l
V(S4);//S4二S4+1
}
}
processP4(){
while(true){
P(S4);
P(W4);//W4=W4-1,ifW4<0block;收款并提交食品;
V(W4);//W4=W4+1
coend
2、假定一个阅览室最多可容纳100人,读者进入和离开阅览室时都必须在阅览室门口的一个登记表上进行登记,而且每次只允许一人进行登记操作,请用记录型信号量机制实现上述问题的同步。
定义信号量sum,mutex,初值分别为100,
则第i个读者的活动描述为:
Pi
Semaphoresum,mutex;
Sum=100;mutex=0;
cobegein
procedurePi()(i=lf2,3){
wait(sum);//sum=sum-l,ifsum<0block
wait(mutex);//mutex=muifmutex<0block登记;
signal(mutex);//mutex=mutex+l
进入阅览室;
阅读;
wait(mutex);//mutex=mutex-1,ifmutex<0block登记;
signal(mutex);//mutex=mutex+l
离开阅览室;
signal(sum);//sum=sum+l
}
coend
3、图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用P、V操作描述它。
Semaphorepl,p2,p3,p4;pl=p2=p3=p4=0;
cobegein
processsi(){
•••
Signal(pl);
Signal(p2)
}
processs2(){
wait(pl)
•••
Signal(p3);
}
processs3(){
wait(p2)
•••
Signal(p4);
}
processs4(){
wait(p3);wait(P4);
•••
}
coend
4、请用信号量解决以下的“过独木桥”问题:
同一方向的行人可连续过桥,当某一方向有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。
将独木桥的两个方向分别标记为A和B;并用整形变量countA和countB分别表示A、B方向上已在独木桥上的行人数,初值为0;再设置三个初值都1的互斥信号量:
SA用来实现对countA的互斥访问,SB用來实现对countB的互斥访问,mutex用来实现两个方向的行人对独木桥的互斥使用。
则具体描述如下:
SemaphoreSA,SB,mutex,countA,countB;
SA二SB二mutex二1,1,1;countA=countB=0,0;
cobegin
processA(){
wait(SA);//互斥操作counts变量
if(countA==0)thenwait(mutex);//A方向第一个上桥
的人执行mutex二mutexT,ifmutex<0block,否则可以上桥
countA:
=countA+l;
signal(SA);//释放SA变量
过独木桥;
wait(SA);//互斥操作counts变量
countA:
二countA~1;
if(countA==0)thensignal(mutex);//A方向第最后一个下桥的人执行mutex=mutex+lifmutex<=0wakeup,唤醒B进程signa(SA);
}processB(){//过程同Await(SB);
if(countB==0)thenwait(mutex);
countB:
二countB+l;signal(SB);
过独木桥;wait(SB);
countB:
=countB-l;
if(countB二二0)thensignal(mutex);signa(SB);
}
coend
5、设公共汽车上,司机和售票员的活动分别是:
司机的活动:
启动车辆;正常行车;到站停车;售票员的活动:
关车门;售票;开车门;请用记录型信号量机制实现上述问题的同步。
Semaphoresi,s2;
sl=s2=0,0;/*sl表示是否允许司机启动汽车,s2表示是否允许售票员开门*/
cobeginprocessdriver(){
repeat
wait(si);//sl=sl-l,ifsl<0block,售票员关门后司机才能开车
启动车辆;
正常行车;到站停车;
signal(s2);//s2=s2+l,ifs2<=0wakeupbusman司机停车后,售票员才可以开门
untilfalse;
}processbusman!
repeat关车门;
signal(si);//si二sl+1,ifsl<=0wakeupdriver售票员关门后,司机才可以开车
售票;
wait(s2);//s2=s2-l,ifs2<0block,司机停车后售票员才可以开车门
开车门;
上下乘客;untilfalse;
coend
6、有三个进程PA、PB和PC合作解决文件打印问题:
PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。
缓冲区的大小等于一个记录大小。
解释P、V操作的含义,并用1\V操作来保证文件的正确打卬。
(1)P、V操作是两条原语,定义如下:
P操作:
P操作记为P(S),其中S为一信号量,它执行时主要完成下述动作:
S=S-1
若S>=0,则进程继续运行。
若S〈0,则该进程被阻塞,并将它插入该信号量的等待队列屮。
V操作:
V操作记为V(S),其中S为一信号量,它执行时主要完成下述动作:
S=S+1
若S>0,则进程继续运行。
若seo,则从信号量的等待队列中移出队首进程。
使其变为就绪状态。
(2)描述如下:
semaphoreempty1,empty2,fulll,full2,mutexl,mutex2;
emptyl=cmpty2=l;fulll=full2=0,0;mutcxl;mutcx2=l;
//emptyl,cmpty2,fulll,full2分别表示缓冲区1、2空和满的同步信号量,mutexl,mutex2分别表示互斥使用缓冲区1、2的互斥信号量
cobegin
processPA(){
repeat
从磁盘读一个记录;
P(empty1);//empty1二emptyIT,ifemptyKOblock,缓冲区1不为空则阻塞
P(mutcxl);//mutexl=mutcx1~1,ifmutcx<0block,缓冲区1正在被操作则阻塞
将记录存入缓冲区1;
V(mutex1);//mutexl=mutex1+1,ifmutexl<=0wakeup,如果有等待操作缓冲区1的进程将被唤醒
V(fulll);//fulll=fulll+l,iffulll<=0wakeup,缓冲区1放入一个数据,如果PB进程等待取数据则被唤醒
untilfalse;
}
processPB{
repeat
P(fulll);
P(mutexl);
从缓冲区1取出纪录;
V(mutexl)
V(emptyl);
P(empty2);
P(mutex2);
将记录存入缓冲区2;V(mutex2);
V(full2);unt订false;
processPC{
repeat
P(full2);
P(mutex2);
从缓冲区2取岀纪录;
V(mutex2);
V(cmpty2);
打印记录;
untilfalse;
coend
三、银行家算法
1、系统有A,B,C,D共4种资源,在某时刻进程PO,Pl,P2,P3,P4对资源的占有和需求情况如下表所示。
进程
All
ocati
on
Max
Available
A
B
c
D
A
B
C
D
A
BCD
P0
0
0
3
2
0
0
4
4
1
622
P1
1
0
0
0
2
7
5
0
P2
1
3
5
4
3
6
10
10
P3
0
3
3
2
0
9
8
4
P4
0
0
1
4
0
6
6
10
(1)系统此时处于安全状态吗?
(2)若此时进程P1发出requestl(l,2,2,2),系统能分配资源给它吗?
为什么?
解:
(1)利用安全性算法分析可知,此时存在一个安全序列{PO,P3,P4,P1,P2},故系统是安全的。
进程
Work
Need
Allocation
Max
Finish
Need<=work即可分配
ABC
D
AB
c
D
A
B
C
D
P0
1622
001
2
00
3
2
0
0
4
4
true
P3
1654(还回P0已分得资源后的剩余资源)
065
2
03
3
2
2
7
5
0
true
P4
1986
065
6
00
1
4
3
6
10
10
true
Pl
19910
175
0
10
0
0
0
9
8
4
true
P2
29910
235
6
13
5
4
0
6
6
10
true
(2)若此时进程P1发出requestl(l,2,2,2),系统按银行家算法进行检查:
requestl(1,2,2,2)>needl(1,7,5,0),其请求的资源数已超过其还需资源数,所以不能分配。
2、系统中有五个进程A、P2、I,1打、13有三种类型的资源:
Rl、R2、和R3。
在T。
时刻系统状态如表所示。
若采用银行家算法实施死锁避免策略,回答下列问题:
1.T。
时刻是否为安全状态?
为什么?
2.若这时匕请求资源(1,2,0),是否能实施资源分配?
为什么?
3.在上面的基础上,若进程D请求资源(0,1,0),是否能实施资源分配?
为什么?
To时刻系统状态
已分配资源数量
最大资源需求量
R1
R2
R3
R1
R2
R3
Pl
0
0
1
0
0
1
P2
2
0
0
2
7
5
P3
0
0
3
6
6
5
P4
1
1
5
4
3
5
P5
0
3
3
0
6
5
R1
R2
R3
剩余资源数
3
3
0
(1)
进程
Work
Need
Allocation
Max
Finish
R1R2R3
Need〈二work即可分配
R1R2R3
R1R2R3
R1R2R3
P1
330
000
001
001
true
P4
331
(还回P1已分得资源
后的剩余资源)
320
115
435
true
P5
446
032
033
065
true
P2
479
075
200
275
true
P3
679
662
003
665
true
TO时刻是安全的,安全序列为:
Pl,P4,P5,P2,P3
(2)P4请求资源(1,2,0),先判断P4的需求数Need(320)>二申请数(120)的,然后进行预分配后进行安全性判断。
根据银行家算法,预分配后系统是安全的,安全序列为:
Pl,P4,P5,P2,P3
(3)P3请求资源(1,1,0)〈二申请数,然后根据银行家算法,预分配后系统不安全,所以不能实施资源分配。
四、地址变换
1、在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096B,现有逻辑地址2F6AH,且第0,1,2页依次存放在第10,12,14号物理块中,试问相应的物理地址是多少?
解:
因为逻辑地址长度为16位,而页面大小为4096字节(2^10=1024,4096=2^12),所以,后面12为表示页内偏移地址,前面的4位表示页号。
把2F6AH转换成二进制为:
0010|111101101010,可知页号为2。
故放在14号物理块中,1110丨111101101010,写成十六进制为EF6AHo
2、假如一个程序的段表如下,其中存在位为1表示段在内存,对于下面指令,在执行时会产生什么样的结果。
段号
存在位
内存始址
段长
存取控制
0
0
500
100
W
1
1
1000
30
R
2
1
3000
200
E
3
1
8000
80
R
4
0
5000
40
R
(1)STORER1,[0,70]
(2)STORERl,[1,20]
(3)LOADRl,[3,50]
(4)LOADRl,[3,100]
(5)JMP[2,150]
解:
(1)由于第0段的存在位为0,表示该段未装入内存,因此产生缺段中断。
(2)从段表第1项可看到,指令中逻辑地址合法(段长>20),段也己经在内存(存在位为1),但存取控制字段不符(待段为只读R,无法将寄存器R1的内容存入地址[1,20]中),故产生保护性中断信号。
(3)逻辑地址合法,存取方式合法,形成物理地址8050后(始址+段内偏移二8000+50),执行指定操作。
(4)逻辑地址屮段内地址超长(100>80),产生越界屮断信号。
(5)逻辑地址及访问方式合法,形成物理地址3150(3000+150),指令执行后,将条转到内存单元3150处继续执行。
3、一个进程的大小占5个页面,每页的大小为1K,系统为它分配了3个物理块。
当前进程的页表如图所示:
块号存在位P访问位R修改位M
OxlC
1
1
0
0x3F
1
1
1
—
0
0
0
0x5D
1
0
0
—
0
0
0
(1)有那些页面不在内存?
(2)请分别计算进程中虚地址为0x3B7、0xl2A5、0x1432单元的物理地址(用十六进制表示),并说明理由。
解:
(1)不在内存的是第2和4页(按页号,即从0排序),或第3和5页(按序号,即从1排序)。
(2)每页1K,故页内偏移地址10位,5个页面,故页号3位,块号屮最大的为0x5D=1001111故最少7位
0x3B7的逻辑地址000|1011110111,在第0页
物理地址为二000111111011110111二0x3ef7
0xl2A5的虚地址=100|0111110101,在第4页物理地址为二100111110111110101二0xl3df5
0x1432的虚地址为=101|0000110010,该页不在内存中,产生缺页中断。
注意:
若页号>页表长度(从0开始计)会发出越界中断
4、设有一页式存储管理系统,向用户提供的逻辑地址空间最犬为16页,每页2048B,内存总共有8个存储块,试问逻辑地址至少应为多少位?
内存空间有多大?
解:
逻辑地址最多16页,故页号4位
每页2048B,故页内偏移地址11位
逻辑地址空间为2八(4+11)位,故大小为32K
内存8个块,故块号占3位,块内偏移和页内偏移一样占11位内存地址空间为2八(3+11)位,故大小为16K
5、在一个段式存储管理系统中,其段表为:
段号
内存起始地址
段长
0
210
500
1
2350
20
2
100
90
3
1350
590
4
1938
95
试求下述逻辑地址对应的物理地址是什么?
段号
段内位移
0
430
1
10
2
500
3
400
4
112
5
32
解:
试求下述逻辑地址对应的物理地址是什么?
段号
段内位移
0
430
210+430=
1
10
2350+10二
2
500
500>90越界屮断
3
400
1350+400
4
112
112>95越界中断
5
32
机制中)
无该段越界中断或段置换
(虚拟分段存储
五、页面置换
1、在一个请求分页虚拟存储管理系统中,一个程序运行的页面走向是:
1,2,3,1,4,5,1,2,1,4,5,3,4,5,对于分配给程序4个页框的情况,分别用FIFO,OPT和LRU算法,求出缺页屮断次数,并给出缺页时加进主存的页号。
解:
(1)FIFO缺页10次,缺页时加进主存的页号见表中带星的页号。
(先进先出置换)
页框
1
2
3
1
4
5
1
2
1
4
5
3
4
5
0
1*
1
1
1
1
5*
5
5
5
5
5
5
4*
4
1
2*
2
2
2
2
1*
1
1
1
1
1
1
5*
2
3*
3
3
3
3
2*
2
2
2
2
2
2
3
4*
4
4
4
4
4
4
3*
3
3
(2)OPT缺页6次,缺页时加进主存的页号见表中带星的页号。
(最佳置换:
置换以后永久不使用的或在最长吋间内不再被访问的页)
页框
1
2
3
1
4
5
1
2
1
4
5
3
4
5
0
1*
1
1
1
1
1
1
1
1
1
1
3*
3
3
1
2*
2
2
2
2
2
2
2
2
2
2
2
2
2
3*
3
3
5*
5
5
5
5
5
5
5
5
3
4*
4
4
4
4
4
4
4
4
4
(3)LRU缺页7次,缺页时加进主存的页号见表屮带星的页号。
(最近最久未使用置换:
选择最近最久未使用的页面进行置换)
页框
1
2
3
1
4
5
1
2
1
4
5
3
4
5
0
1*
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2*
2
2
2
5*
5
5
5
5
5
5
5
5
2
3*
3
3
3
3
2*
2
2
2
3*
3
3
3
4*
4
4
4
4
4
4
4
4
4
2、现有一请求分页的虚拟存储器,内存最多容纳4个页面,对于下面的引用串:
1,2,3,4,5,3,4,1,6,7,8,7,8,9,7,8,9,5,4,5,4,2
分别采用FIFO,LRU,OPT页面替换算法,各将产生多少次缺页中断?
FIFO:
1
2
3
4
5
3
4
1
6
7
8
7
8
9
7
8
9
5
4
5
4
2
1
1
1
1
5
5
5
5
5
5
8
8
8
8
8
8
8
8
8
8
8
2
2
2
2
2
2
2
1
1
1
1
1
1
9
9
9
9
9
9
9
9
9
3
3
3
3
3
3
6
6
6
6
6
6
6
6
6
5
5
5
5
5
4
4
4
4
4
4
7
7
7
7
7
7
7
7
7
4
4
4
4
7
7
7
7
7
J
7
7
7
7
7
J
7
7
LRU
1
2
3
4
5
3
4
1
6
7
8
7
8
9
7
8
9
5
4
5
4
2
1
1
1
1
2
2
2
5
3
4
1
1
1
6
6
6
6
7
8
8
8
9
2
2
2
3
4
5
3
4
1
6
6
6
7
8
9
7
8
9
9
9
5
3
3
4
5
3
4
1
6
7
8
7
8
9
7
8
9
5
4
5
4
4
5
3
4
1
6
7
8
7
8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 复习 重点 内容 docx