操作系统应用题

操作系统应用题

1、假设磁盘有200个磁道,磁盘请求队列中是一些随机请求,他们按照到达的次序分别处于10、22、26、2、40、6、38号磁道上,当前磁头在20号磁道上,并向磁道号增加的方向上移动。请给出按FCFS、SSTF、SCAN、及CSCAN算法进行磁盘调度室满足请求的次序,并计算出它们的平均寻道长度。
(1)FCFS调度算法:先来先服务调度算法:
调度次序:10-22-26-2-40-6-38
平均寻道长度=(10+12+4+24+38+34+32)/7=22
(2)SSTF算法:
SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。选择间隔最小的那个。先排序:2 6 10 22 26 38 40
调度次序:22-26-38-40-10-6-2
平均寻道长度=(2+4+12+2+30+4+4)/7=8.285
(3)SCAN算法:又称为电梯算法 电梯算法和SCAN都是要到头的!!
调度次序:22-26-38-40-10-6-2
平均寻道长度=(2+4+12+2+30+4+4)/7=8.285
(4)CSCAN算法:类似于SCAN,但是它不来回移动,而是磁头移动方向是单向的,比如从小往大移动,那么达到最大值后,瞬间移动到前面的最小磁道处,再往小处移动。
调度次序:22-26-38-40-2-6-10
平均寻道长度=(2+4+12+2+38+4+4)/7=9.428

2. 假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘的空闲状态。
(1) 请说明在上述条件下如何进行磁盘块空闲状态的管理。
(2) 设某单面磁盘的旋转速度为每分钟6000转,每个磁道有100个扇区,相临磁道间的平均移动的时间为1ms。
若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如下图所示),磁道号的请求队列为50,90,30,120对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这个扇区点共需要多少时间?需要给出计算过程。

答案1:
(1)有题目可只一共有 16384 个盘块需要管理,因为盘块数量大,不适合采用空闲表和空闲链表法进行管理,所以采用位示图进行管理。每一个盘块用一位来记录,则需要 16384 b,也就是 16384 / 8 = 2048B = 2KB,刚好可以用题目给出的 2KB 内存空间来记录。

答案2:
(1)2KB = 2×1024×8bit = 16384bit
因此可以使用位图法进行磁盘块空闲状态管理,每1bit表示一个磁盘块是否空闲。
(2)根据CSCAN算法,被访问的磁道号顺序为100、120、30、50、90,
因此,寻道用去的总时间为:
(20 + 90 + 20 + 40)* 1ms = 170ms
每分钟6000转,每秒100转,转一圈的时间为0.01s,每个磁道有100个扇区,通过一个扇区的时间为0.0001s,总共要随机读取四个扇区,用去的时间为:
(0.01*0.5 + 0.0001)*4 = 0.0204s = 20.4ms
所以,读完这个扇区点共需要 170ms + 20.4ms = 192.4ms

3、在银行家算法的例子中,如果P0发出的请求向量由Request(0,2,0))改为Request(0,1,0),问系统可否将资源分配 v给它?
【解】能。 request0(0,1,0)≤need0(7,4,3);request0(0,1,0)≤available(2,3,0); 系统暂时先假定可为P0分配资源,并修改有关数据,如下所示:

allocation已分配   need还需要    available总共的-已分配=可用的
     A  B  C       A  B  C        A  B  C
P0   0  2  0       7  3  3        2  2  0
P1   3  0  2       0  2  0
P2   3  0  2       6  0  0
P3   2  1  1       0  1  1
P4   0  0  2       4  3  1

存在一个安全序列{P1,P3,P0,P2,P4},故系统是安全的,可以分配资源。

Work       need     allocation     work+allocation   
	A  B  C    A  B  C    A  B  C     A  B  C    Finish
P1  2  2  0    0  2  0    3  0  2     5  2  2     true
P3  5  2  2    0  1  1    2  1  1     7  3  3     true
P0  7  3  3    7  3  3    0  2  0     7  5  3     true
P2  7  5  3    6  0  0    3  0  2    10  5  5     true
P4  10  5  5   4  3  1    0  0  2    10  5  7     true

4、在银行家算法中,若出现下述资源分配情况:

Process   Allocation    Need     Available总共的-已分配=可用的
P0        0 0 3 2       0 0 1 2   1 6 2 2
P1        1 0 0 0       1 7 5 0
P2        1 3 5 4       2 3 5 6
P3        0 3 3 2       0 6 5 2
P4        0 0 1 4       0 6 5 6

试问: (1)该状态是否安全? (2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?

【解】(1)利用安全性算法对上面的状态进行分析(见下表),找到了一个安全序列{P0,P3,P4,P1,P2},故系统是安全的。
另一个安全序列{P0,P3,P1,P4,P2}

(2)P2发出请求向量Request(1,2,2,2),系统按银行家算法进行检查:
①Request2(1,2,2,2)<=Need(2,3,5,6)
②Request2(1,2,2,2)<=Available(1,6,2,2)
③系统先假定可为P2分配资源,并修改Available,Allocation2和Need2向量: Available(0,4,0,0)=Available(1,6,2,2)-Request(1,2,2,2)
Allocation(2,5,7,6)=Allocation(1,3,5,4)+Request(1,2,2,2)
Need2(1,1,3,4)=Need2(2,3,5,6)-Request(1,2,2,2)
④进行安全性检查:此时对于所有的进程,条件Needi≤Available(0,4,0,0)都不成立,即Available不能满足任何进程的请求,故系统进入不安全状态。
因此,当进程P2提出Request(1,2,2,2)后,系统不能将资源分配给它。

5.在一个请求分页系统中,采用FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。
用先进先出页面置换算法:选择在内存中驻留时间最久的页面给予淘汰,如果访问页面存在在内存中,不必产生缺页中断。
M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为9/12=75%;
M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为10/12=83%。
由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。

6.磁盘访问时间由哪几部分组成?每部分时间应如何计算?
答:1) 寻道时间Ts
这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即
Ts = m*n+s
其中,m是一常数,与磁盘驱动器的速度有关。

2) 旋转延迟时间Tr
这是指定扇区移动到磁头下面所经历的时间。不同的磁盘类型中,旋转速度至少相差一个数量级,如软盘为300 r/min,硬盘一般为7200~15 000 r/min,甚至更高。

3) 传输时间Tt
这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:

其中,r为磁盘每秒钟的转数,那么1/r为转一转所需要的时间;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tr相同。因此,可将访问时间Ta表示为

7.目前常用的磁盘调度算法有那几种?每种算法优先考虑的问题是什么?
答:
1.先来先服务(FCFS,First Come First Served)
要求下一个要访问的磁道是与当前磁头所在的磁道距离最近
优点:使每次寻道时间最短
缺点:不能保证平均寻道时间最短;可能导致距离远的进程总也得不到服务
2.最短寻道时间优先(SSTF,Shortest Seek Time First)
要求下一个要访问的磁道是与当前磁头所在的磁道距离最近
优点:使每次寻道时间最短
缺点:不能保证平均寻道时间最短;可能导致距离远的进程总也得不到服务
3.扫描(SCAN)算法
SCAN算法不仅考虑欲访问的磁道与当前磁道的距离,更优先考虑的是磁头当前的移动方向
磁头移动:自里向外自外向里
又称为 “电梯调度算法”
4.循环扫描(CSCAN)算法
规定磁头单向移动
减少刚移过的磁道的等待时间
5.NStepSCAN和FSCAN调度算法
N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。
FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。

8.假定一个文件系统的组织方式与MS-DOS相似,在FAT中可有64K个指针,磁盘的盘块大小为512B,试问该文件系统能否指引一个512MB的磁盘?
解:512MB/512B=1M个盘块,而每个盘块都应有一个指针来指示,所以应该有1M个指针,因此若有64K个指针则不能指引一个512MB的磁盘。

9.在UNIX中,如果一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256个地址。请转换下列文件的字节偏移量为物理地址。
⑴ 9999; ⑵ 18000; ⑶ 420000

UNIX/Linux文件系统中,一个盘块的大小为1KB,每个盘块号占4个字节,即每块可放256个地址。直接寻址为10块,一次间接寻址为256块,二次间接寻址为2562方块,三次间接寻址为2563方块。
首先将逻辑文件的字节偏移量转换为文件的逻辑块号和块内偏移。方法是:将逻辑文件的字节偏移量/盘块大小,商为文件的逻辑块号,余数是块内偏移;再将文件的逻辑块号转换为物理块号,使用多重索引结构,在索引节点中根据逻辑块号通过直接索引或间接索引找到对应物理块号。
盘块大小为1KB,盘块号占4B,即每个盘块最多可存放256个盘块号。又根据UNIX系统中采用的混合索引分配方式可知:
9999/1024=9余783,其逻辑块号为9,故直接索引addr[8]中可找到物理块号。
18000/1024=17余592,其逻辑块号为17,通过一次间接索引addr[10]中可找到物理块号。
420000/1024=410余160,其逻辑块号为410,通过二次间接索引addr[11]中可找到物理块号。

10.有一计算机系统利用图6-33所示的位示图来管理空闲盘块。盘块的大小为1KB,现要为某文件分配量个盘块,试说明盘块的具体分配过程。

m*n个位数来构成位示图
分配量个盘块的过程如下:
⑴ 顺序扫描位示图,从中找到第一个值为0的二进制位,得到其行号i=3,列号j=3。
⑵ 将所找到的二进制位转换成与之对应的盘块号。盘块号计算公式为:
b=(3-1)*16+3=35;
⑶ 修改位示图,令map[3,3]=1,并将该盘块分配出去。
类似地,可使用相同的方法找到第二个值为0的二进制位,得到行号i=4,列号j=7,其对应的盘块号为(4-1)*16+7=55,令map[i,j]=1,并将该盘块分配出去。

11.某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间,试问:
⑴ 位示图需要多少字?
⑵ 第i字第j位对应的块号是多少?
⑶ 给出申请/归还一块的工作流程。

(1)[500/32]z=16个字 500/32=15.625
(2)b=(i-1)*32+j=32(i-1)+j (b从1开始计数,i,j也从1开始计数)
(3)申请时自上至下、自左至右扫描位示图跳过为1的位,找到第一个遇到的0位,根据它是第i字第j位算出对应块号,并分配出去。归还时已知块号,块号/32,算出第i字第j位并把位示图相应位清0。
归还时:根据盘块号b求出:
i = (b-1)/32 + 1; j = (b-1)%32 + 1;
将第i字第j位置0

  • 4
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

relizi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值