第六章作业OS答案.docx
《第六章作业OS答案.docx》由会员分享,可在线阅读,更多相关《第六章作业OS答案.docx(19页珍藏版)》请在冰豆网上搜索。
![第六章作业OS答案.docx](https://file1.bdocx.com/fileroot1/2023-2/28/20f03805-63e2-4874-9eef-d9307211ee11/20f03805-63e2-4874-9eef-d9307211ee111.gif)
第六章作业OS答案
第六章作业
1.存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。
如果每个盘块的大小为512字节,若盘块号需要用3个字节来描述,而每个盘块最多存放170个盘块地址:
(1)该文件系统允许文件的最大长度是多少?
(2)将文件的字节偏移量5000、15000、150000转换为物理块号和块内偏移量。
答:
(1)该文件系统中一个文件的最大长度可达:
10+170+170*170+170*170*170=4942080块=4942080*512字节=2471040KB
(2)5000/512得到商为9,余数为392,即字节偏移量5000对应的逻辑块号为9,块内偏移量为392。
由于9<10,故可直接从该文件的FCB的第9个地址项处得到物理盘块号,块内偏移量为392。
15000/512得到商为29,余数为152,即字节偏移量15000对应的逻辑块号为29,块内偏移量为152。
由于10≤29<10+170,而29-10=19,故可从FCB的第10个地址项,即一次间址项中得到一次间址的地址;并从一次间址块的第19项(即该块的第57~59这3个字节)中获得对应的物理盘块号,块内偏移量为152。
150000/512得到商为292,余数为496,即字节偏移量150000对应的逻辑块号为292,块内偏移量为496。
由于10+170≤292<10+170+170*170,而292-(10+170)=112,112/170得到商为0,余数为112,故可从FCB的第11个地址项,即二次间址项中得到二次间址块的地址,并从二次间址块的第0项中获得一个一次间址块的地址,再从该一次间址块的第112项中获得对应的物理盘块号,块内偏移量为496。
(3)由于文件的FCB已在内存,为了访问文件中某个位置的内容,最少需要1次访问磁盘(即可通过直接地址直接读文件盘块),最多需要4次访问磁盘(第一次是读三次间址块,第二次是读二次间址块,第三次是读一次间址块,第四次是读文件盘块)。
2.在某个文件系统中,每个盘块为512个字节,文件控制块占64个字节,其中文件名占8个字节。
如果索引结点编号占2个字节,对于一个存放在磁盘上的256个目录项的目录,试比较引入索引结点前喉,为找到其中一个文件的FCB,平均启动磁盘的次数?
答:
在引入索引结点前,每个目录项中存放的是对应文件的FCB,故256个目录项的目录总共需要占用256*64/512=32个盘块。
因此,在该项目录中检索到一个文件,平均启动磁盘的次数为(1+32)/2=16.5。
在引入索引结点之后,每个目录项中只需存放文件名和索引结点的编号,因此256个目录项的目录总共需要占用256*(8+2)/512=5个盘块。
因此,找到匹配的目录项平均需要启动(1+5)/2,即3次磁盘;而得到索引结点编号后,还需启动磁盘将对应文件的索引结点读入内存,故平均需要启动磁盘4次。
可见,引入索引结点后,可大大减少启动磁盘的次数,从而有效地提高检索文件的速度。
第五章作业
1.有一移动臂磁盘,共100个磁道,每个磁道分8个扇区,磁盘转速为500r/s(转/秒),磁头每移动一个磁道需要10ms,有一用户请求访问第25磁道第3扇区,并立即被系统响应,假设磁头当时处于15道上,磁头到达第25道时正处于1扇区的开始位置,试计算该用户至少需要等待多长时间?
2.若有磁盘共有200个柱面,其编号为0~199,假定磁头刚完成56号磁道的访问,磁头正在98号磁道上,并向磁道号增加的方向移动,现有一个请求队列在等待访问磁盘,访问的磁道号分别为190,97,90,45,150,32,162,108,112,80。
请写出分别采用FCFS、SSTF、SCAN和CSCAN算法进行调度磁盘时的请求次序,并计算出它们的平均寻道长度。
3.假定磁盘转速为20ms/圈,磁盘格式化时每个磁道被划分成10个扇区,今有10个逻辑记录(每个记录的大小刚好与扇区大小相等)存放在同一磁道上,处理程序每次从磁盘读出一个记录后要花费4ms进行处理,现要求顺序处理这10个记录,若磁头现在正处于首个逻辑记录的始点位置。
请问:
(1)按逆时针方向安排10个逻辑记录(磁盘顺时针方向转),处理程序处理完这10个记录所花费的时间是多少?
(2)按最优化分布重新安排这10个逻辑记录,写出记录的安排,并计算出所需要处理的时间。
1.某系统采用页式存储管理策略,拥有逻辑空间32页,每页2K,拥有物理空间1M。
(1)请写出逻辑地址的格式。
(2)若不考虑访问权限等,进程的页表有多少项?
每项至少有多少位?
(3)如果物理空间减少一半,页表结构应相应作怎样的改变?
答:
(1)该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述;而每页为2K,因此,页内地址必须用11位来描述,这样可得到它的逻辑地址格式如下:
1511100
(2)每个进程最多有32个页面,因此,进程的页表项最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块号,1M的物理空间可分成29个内存块,故每个页表项至少有9位。
(3)如果物理空间减少一半,则页表中页表项数仍不变,但每项的长度可减少1位。
2.对一个将页表存放在内存中的分页系统:
(1)如果访问内存需要0.2微秒,有效访问时间为多少?
(2)如果加一快表,且假定在快表中找到页表项的几率高达90%,则有效访问时间是多少?
(假定查找快表需花的时间是0)
答:
(1)有效访问时间为;2*0.2=0.4微秒
(2)有效访问时间为:
0.9*0.2+(1-0.9)*2*0.2=0.22微秒
3.某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、3500、4500转换为物理地址。
(2)以十进制的逻辑地址1023为例画出地址变换过程图。
答:
(1)对上述逻辑地址,可先计算出它们的页号和页内地址(逻辑地址除以页面大小,得到的商为页号,余数为页内地址),然后通过页表转换成对应的物理地址。
①逻辑地址1023:
1023/1K,得到页号为0,页内地址为1023,查页表找到对应的物理块号为2,故物理地址为2*1K+1023=3071
②逻辑地址2500:
2500/1K,得到页号为2,页内地址为452,查页表找到对应的物理块号为6,故物理地址为6*1K+452=6596
③逻辑地址3500:
3500/1K,得到页号为3,页内地址为428,查页表找到对应的物理块号为7,故物理地址为7*1K+428=7596
④逻辑地址为4500:
4500/1K,得到页号为4,页内地址为404,因页号不小于页表长度故产生越界中断。
4.某操作系统采用可变分区分配存储管理方法,用户区为512K且始址为0,用空闲分区表管理空闲分区。
若分配时采用分配空闲区低地址部分的方案,且初始时用户区的512K空间空闲,对下述申请序列:
申请300K,申请100K,释放300K,申请150K,申请30K,申请40K,申请60K,释放30K
回答下列问题:
(1)采用首次适应算法,空闲分区中有哪些空块?
(2)采用最佳适应算法,空闲分区中有哪些空块?
(3)如再申请100K,针对
(1)和
(2)各有什么结果?
5.在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址为多少?
答:
由题目所给条件可知,该系统的逻辑地址为16位,其中高4位为页号。
页面大小4096字节,共要占有二进制12位,低12位为页内地址;另外,由于题目中给出的逻辑地址是十六进制数,故可先将其转换成二进制数以直接获得页号和页内地址,再完成地址的转换
2F6AH为0010111101101010,由此看出,逻辑地址(2F6A)16的页号为(0010)2,即2,故页号合法;从页表中找到对应的内存块号为11,即(1011)2;与页内地址(111101101010)2拼接形成物理地址(1011111101101010)2,即(BF6A)16。
6.在一个段式存储管理系统中,其段表如图1
段号内存起始地址段长
0210500
1235020
210090
31350590
4193895
图1
试求图2逻辑地址对应的物理地址。
段号段内位移
0430
110
2500
3400
4112
532
图2
答:
(1)段号0小于段表长5,故段号合法;由段表的第0项可获得段的内存始址为210,段长为500;由于段内地址430,小于段长500,故段内地址也是合法的,因此可得出对应的物理地址为210+430=640。
(2)段号1小于段表长5,故段号合法;由段表的第1项可获得段的内存始址为2350,段长为20;由于段内地址10,小于段长20,故段内地址也是合法的,因此可得出对应的物理地址为2350+10=2360。
(3)段号2小于段表长5,故段号合法;由段表的第2项可获得段的内存始址为100,段长为90;由于段内地址500,超过段长90,故产生越界中断。
(5)段号5等于段表长,故段号不合法,产生越界中断。
7.在一采取局部置换策略的请求分页系统中,分配给某个作业的内存块数是4,其中存放的四个页面的情况如表所示。
物理块
虚页号
装入时间
最后一次访问时间
访问位
修改位
0
2
60
157
0
1
1
1
160
161
1
0
2
0
26
158
0
0
3
3
20
163
1
1
上面的所有数字均为十进制,所有时间都是从进程开始运行时从0开始计数的时钟数。
请问,如果系统采用下列置换算法,将选择哪一页进行换出?
(1)FIFO算法;
(2)LRU算法;(3)改进的Clock算法。
答:
(1)FIFO算法选择的换出页是物理块3中的第3页。
(2)LRU算法选择的换出页是物理块0中的第2页。
(3)改进的Clock算法选择的换出页是物理块2中的第0页。
8.在一个请求分页系统中,假如一个作业的页面走向为:
4,3,2,1,4,3,5,4,3,2,1,5,目前它还没有任何页装入内存,当分配给该作业的物理块数目M分别为3和4时,请分别计算采用OPT、LRU和FIFO页面淘汰算法时访问过程中所发生的缺页数和缺页率,并比较所得的结果。
M=3时,OPT算法
页面走向432143543215
以后最长时间不用√√√√ √ √√
2111544/33/21/2
3334335
44443443555
9.某页式虚拟存储管理系统的物理空间共3k,页面大小为1k,一进程按下列地址顺序引用内存单元:
3635,3632,1140,3584,2892,3640,0040,2148,1700,2145,3290,0000,1102,1100。
如果上述数字均为十进制数,而内存中尚未装入任何页。
给出使用LRU算法时的缺页率,并与FIFO时的情况进行比较。
答:
(1)根据题意,分配给作业的内存块数为3,而页面的引用次序为3、3、1、3、2、3、0、2、1、2、3、0、1、1。
因此,可以计算出,采用LRU算法时,缺页次数为8,采用FIFO算法时,缺页次数为6。
LRU算法用最近的过去来作为预测最近的将来的依据,一般认为其有较好的性能,但实现时,要记录最近在内存的每个页面的使用情况,比FIFO困难,其开销也大。
有时,因页面的过去和未来的走向之间并无必然的联系,如上面,LRU算法的性能就没想象中那么好。
第三章作业
1.假设有四个作业,它们提交、运行时间如下表所示。
若采用先来先服务、短作业优先、响应比高者优先调度算法,试问平均周转时间和带权周转时间为多少?
(时间单位:
小时,以十进制进行计算。
)
作业号
到达时间
运行时间
1
8.0
2.0
2
8.3
0.5
3
8.5
0.1
4
9.0
0.4
2.假如有四道作业,它们的提交时间及运行时间如下表所示。
作业号
到达时间(时)
运行时间(时)
开始时间(时)
完成时间(时)
周转时间T(时)
带权周转时间(时)
1
8:
00
2.0
2
8:
50
0.5
3
9:
00
0.1
4
9:
50
0.2
假设系统采用单道程序设计技术,请给出系统在分别采用FCFS(先来先服务)、SJT(短作业优先)和HRN(响应比高者优先)作业调度算法时它们的调度作业顺序、作业的平均周转时间T和平均带权周转时间W,并相互比较之。
解:
(1)FCFS
(2)SJF
(3)响应比高者优先
第一个作业完成时间为10.0,此时其它作业的响应比计算如下:
R2=(0.5+10-8.5)/0.5=4
R3=(0.1+10-9)/0.1=11
R4=(0.2+10-9.5)/0.2=3.5
根据响应比高者优先调度原则,应先运行作业3,作业3完成时间为10.1,此时作业2和作业4的响应比计算如下:
R2=(0.5+10.1-8.5)/0.5=4.2
R4=(0.2+10.1-9.5)/0.2=4
根据响应比高者优先调度原则,应先运行作业2,作业2完成时间为10.6,最后运行作业4,作业4完成时间为10.8。
作业号
到达时间
运行时间
完成时间
周转时间
带权周转时间
平均周转时间
平均带权周转时间
1
8.0
2.0
10.0
2.0
1
2
8.5
0.5
10.6
2.1
4.2
3
9.0
0.1
10.1
1.1
11
4
9.5
0.2
10.8
1.3
6.5
3.假设一个系统中有5个进程,它们的到达时间和服务时间如表所示,忽略I/O以及其他开销时间,若分别按先来先服务(FCFS)、非抢占及抢占的短进程优先(SPF)高响应比优先(HRRN)、时间片轮转(RR,时间片=1)调度算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。
进程
到达时间
服务时间
A
0
3
B
2
6
C
4
4
D
6
5
E
8
2
解:
进程
A
B
C
D
E
平均
FCFS
完成时间
3
9
13
18
20
周转时间
3
7
9
12
12
8.6
带权周转时间
1.00
1.17
2.25
2.40
6.00
2.56
SPF(非抢占)
完成时间
3
9
15
20
11
周转时间
3
7
11
14
3
7.6
带权周转时间
1.00
1.17
2.75
2.80
1.50
1.84
SPF(抢占)
完成时间
3
15
8
20
10
周转时间
3
13
4
14
2
7.2
带权周转时间
1.00
2.16
1.000
2.80
1.00
1.59
HRRN
完成时间
3
9
13
20
15
周转时间
3
7
9
14
7
8
带权周转时间
1.00
1.17
2.25
2.80
3.50
2.14
RR(q=1)
完成时间
4
18
17
20
15
周转时间
4
16
13
14
7
10.8
带权周转时间
1.33
2.67
3.25
2.80
3.50
2.71
4.对下面的5个非周期性实时任务,按最早开始截止时间优先权调度算法应如何进行CPU调度?
进程
到达时间
执行时间
开始截止时间
A
10
20
110
B
20
20
20
C
40
20
50
D
50
20
90
E
60
20
70
提示:
按抢占式和非抢占式分别计算
解:
西电参考书P66
5.在一个实时系统中,有三个周期性实时任务,任务A要求每20ms执行一次,执行时间为10ms;任务B要求50ms执行一次,执行时间为10ms;任务C要求50ms执行一次,执行时间为15ms,应如何按最低松弛度优先算法对它们进行CPU调度?
(选作)
解:
西电参考书P67
6.设系统中有3种类型的资源(A,B,C)和5个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。
在T0时刻系统状态如下表所示。
进程
Allocation
Need
Available
A
B
C
A
B
C
A
B
C
P1
2
1
2
3
4
7
2
3
3
P2
4
0
2
1
3
4
P3
4
0
5
0
0
6
P4
2
0
4
2
2
1
P5
3
1
4
1
1
0
进程
最大资源需求量
已分配资源数量
A
B
C
A
B
C
P1
P2
P3
P4
P5
5
5
4
4
4
5
3
0
2
2
9
6
11
5
4
2
4
4
2
3
1
0
0
0
1
2
2
5
4
4
剩余资源数
ABC
233
系统采用银行家算法实施死锁避免策略。
(1)T0时刻是否为安全状态?
若是,请给出安全序列。
(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?
为什么?
(3)在
(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?
为什么?
(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?
为什么?
解:
T0时刻资源分配图
(1)T0时刻是否安全(安全性检查)
进进程
work
need
allocation
Work+allocation
Ffinish
2A
3B
3C
AA
BB
CC
AA
BB
CC
AA
BB
CC
PP5
22
33
33
11
11
00
33
11
44
55
44
77
tTrue
PP4
45
44
77
22
22
11
22
00
44
77
44
111
ttrue
PP3
77
44
111
00
00
66
44
00
55
111
44
116
ttrue
PP2
111
44
116
11
33
44
44
00
22
115
44
118
tTrue
PP1
115
44
118
33
44
77
22
11
22
117
55
220
tTrue
从表3所示可以看出,在T0时刻存在一个安全序列{P5,P4,P3,P2,P1},故该状态是安全的。
(2)在T0时刻因进程P2的请求资源(0,3,4)>剩余资源数(2,3,3),所以不能分配
(3)在
(2)的基础,若进程P4的请求资源为(2,0,1),按银行家算法进行如下检查:
①P4请求资源(2,0,1)≤P4资源需求量(2,2,1);
②P4请求资源(2,0,1)≤剩余资源数(2,3,3);
③此时的资源分配情况如表4所示(已分配给P4(2,0,1)后的情况。
表4资源分配情况
进程
Allocation
Need
Available
A
B
C
A
B
C
A
B
C
P1
2
1
2
3
4
7
0
3
2
P2
4
0
2
1
3
4
P3
4
0
5
0
0
6
P4
4
0
5
0
2
0
P5
3
1
4
1
1
0
④此时刻的安全性分析如表5所示。
表5安全性分析
进程
work
need
Allocation
Work+allocation
Finish
A
B
C
A
B
C
A
B
C
A
B
C
P4
0
3
2
0
2
0
4
0
5
4
3
7
T
P5
4
3
7
1
1
0
3
1
4
7
4
11
T
P3
7
4
11
0
0
6
4
0
5
11
4
16
T
P2
11
4
16
1
3
4
4
0
2
15
4
18
T
P1
15
4
18
3
4
7
2
1
2
17
5
20
T
从表5所示可以看出,此时刻存在一个安全序列{P4,P5,P3,P2,P1},即可以将P4申请的资源分配给它。
(4)在(3)的基础上,若进程P1请示资源(0,2,0),按银行家算法进行如下检查:
①P1请求资源(0,2,0)≤P1资源需求量(3,4,7);
②P1请求资源(0,2,0)≤剩余资源数(0,3,2);
③此时的资源分配情况如表6所示(已分配给P1(0,2,0)后的情况)。
表6资源分配情况
进程
Allocation
Need
Available
A
B
C
A
B
C
A
B
C
P1
2
3
2
3
2
7
0
1
2
P2
4
0
2
1
3
4
P3
4
0
5
0
0
6
P4
4
0
5
0
2
0
P5
3
1
4
1
1
0
此时,可用资源Available已不能满足任何进程的资源需求,因此不能将资源分配给P1。
7.假定某计算机系统有R1
(2)、R2
(1)两类可再使用资源,它们被进程P1、P2所共享,两个进程均以下列顺序使用资源:
->申请R1->申请R2->申请R1->释放R1->释放R2->释放R1->
试求出系统可能到达的死锁点,并画出死锁点的资源分配图。
R2
R1
8.化简下图中的资源分配图(进程-资源图),并利用死锁定理给出相应的结论。
1、桌上有一空盘,只允许存放一个水果。
爸爸可向盘中放苹果,也可向盘中放桔子。
儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘中空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。