<操作系统导论>第三十七章

前言

先赞后看,养成习惯
故意没有给图片加水印,方便来不及写作业的同学(狗头保命)

1.计算以下几组请求的寻道、旋转和传输时间:-a 0,-a 6,-a 30,-a 7,30,8,最后-a 10,11,12,13。

第一组: ./disk.py -a 0 -G

在这里插入图片描述
(这里运行disks.py会提示出错,缺少tk库,输入命令sudo apt-get install python-tk安装好库文件就可以正常使用了。如果还不行,就再安装一个sudo apt-get install python-pip就好啦。这个py程序按s开始模拟,p暂停,q退出)

Ps:转一圈的总时间为360个单位时间,一个扇区占30个单位时间。

由于起始位置和要找的位置0在同一个磁道上,所以寻道时间为0;
旋转到0所在的扇区(11和0中间)需要165个单位时间;
传输时间为30
总时间是195
验证:
在这里插入图片描述
在这里插入图片描述
结果和我们想的一样。

第二组: ./disk.py -a 6 -G
在这里插入图片描述
想要找到6首先要到6所在的扇区(在5和6中间),和起始在同一磁道,所以寻道时间为0,要转一大圈差15单位时间到达6所在的磁道,所以旋转时间是345;传输时间是30。
总时间是375.
验证:
在这里插入图片描述

在这里插入图片描述

第三组: ./disk -a 30 -G

在这里插入图片描述
这一次涉及到了磁道的切换。README文件中提到相邻道切换需要40单位时间,这里跨越两个磁道,故寻道时间为80.
传输时间还是30.
把30对应到起始磁道上对应6,旋转到6扇区第二组中计算过需要345,由于寻道和旋转是同时进行的,就能省出80个单位时间,那么旋转时间为375-80=265
总时间:265+80+30=375
验证:
在这里插入图片描述
在这里插入图片描述

第四组:./disk.py -a 7,30,8 -G(注意逗号是英文逗号)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到7 寻道时间:0 旋转时间:15 读取时间:30 总:45
再到30 寻道时间:80 旋转时间:220 读取时间:30 总:330
再到8 寻道时间:80 旋转时间:310 读取时间:30 总:420
总时间:45+330+420=795

前两个和之前的一样就不多解释,30到8的时候,此时磁头在30和31中间,对应到8所在的磁道就是6和7中间,只用旋转30个单位时间就能到8的扇区,但是寻道时间需要80,也就是说旋转到8所在磁道的时候已经错过了8的扇区,所以要多转一圈,就是30+360=390,旋转时间同样是在这个基础上减去寻道时间的80等于310
验证:
在这里插入图片描述
在这里插入图片描述
第五组:./disk.py -a 10,11,12,13 -G

在这里插入图片描述
转到10 寻道时间:0 旋转时间:105 传输时间:30 总:135
转到11 寻道时间:0 旋转时间:0 传输时间:30 总:30
转到12 寻道时间:40 旋转时间:320 传输时间:30 总:390
转到13 寻道时间:0 旋转时间:0 传输时间:30 总:30
总时间:135+30+390+30=585
这里的原理上面都提到过,就不过多解释了;
验证:
在这里插入图片描述
在这里插入图片描述

2.执行上述相同请求,但将寻道速率更改为不同值:-S 2,-S 4,-S 8,-S 10,-S 40,
-S 0.1。时间如何变化?

一.改变了寻道速率,对于没有寻道的数据(题目一的前两组)来说是没有影响的。
二.对于寻道时间导致多转了一圈的情况,如果寻道时间减小到小于它对应的目标磁道对应位置旋转过去的时间就能少转一圈
三.旋转时间的计算是对应到目标磁道位置旋转过去的时间减去寻道时间,如果寻道时间变小了,那旋转时间就会变大。
下面以题目一后三组数据举例。(用-c指令能直接展示结果,省去了圆盘转转转的时间,方便了很多)。

-S 2
./disk.py -S 2 -a xxx -c(XXX为那几个数字)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-S 4
./disk.py -S 4 -a XXX -c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-S 8
./disk.py -S 8 -a XXX -c

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-S 10
./disk.py -S 10 -a XXX -c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-S 40
./disk.py -S 40 -a XXX -c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-S 0.1
./disk.py -S 0.1 -a XXX -c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.同样的请求,但改变旋转速率:-R 0.1,-R 0.5,-R 0.01。时间如何变化?

旋转速率改变,寻道时间不受影响,旋转时间和传输时间都会改变,以题目一第四组举例:
./disk.py -R X -a 7,30,8 -c (X为题目中数据)
R=1
在这里插入图片描述

R=0.1
在这里插入图片描述

R=0.5
在这里插入图片描述

R=0.01
在这里插入图片描述

4.你可能已经注意到,对于一些请求流,一些策略比 FIFO 更好。例如,对于请求流
-a 7,30,8,处理请求的顺序是什么?现在在相同的工作负载上运行最短寻道时间优先
(SSTF)调度程序(-p SSTF)。每个请求服务需要多长时间(寻道、旋转、传输)?

FIFO算法:
7->30->8
./disk.py -p FIFO -a 7,30,8 -c
在这里插入图片描述
SSTF算法
7->8->30
./disk.py -p SSTF -a 7,30,8 -c
在这里插入图片描述
根据结果来看,明显SSTF算法优于FIFO算法

5.现在做同样的事情,但使用最短的访问时间优先(SATF)调度程序(-p SATF)。它
是否对-a 7,30.8 指定的一组请求有所不同?找到 SATF 明显优于 SSTF 的一组请求。出现显著差异的条件是什么?

SSTF 算法:
7->8->30
./disk.py -p SSTF -a 7,30,8 -c
在这里插入图片描述

SATF算法:
./disk.py -p SATF -a 7,30,8 -c
7->8->30
在这里插入图片描述

对于这组数据来说,这两种算法的结果时一样的,但不是所有的数据这两种算法都会得到一样的结果。下面举例分析:
在这里插入图片描述
假设有一组数据9,14,5。分别用SSTF和SATF算法算时间:
SSTF
./disk.py -p SSTF -a 9,14,5 -c
在这里插入图片描述
9->5->14

SATF
./disk.py -p SATF -a 9,14,5 -c
在这里插入图片描述
9->14->5

很明显SATF要优于SSTF因为虽然9->5的寻道时间短,但是要转一大圈,还不如先到下一个道上取个数据再转回来。

6.你可能已经注意到,该磁盘没有特别好地处理请求流-a 10,11,12,13。这是为什
么?你可以引入一个磁道偏斜来解决这个问题(-o skew,其中 skew 是一个非负整数)?考虑到默认寻道速率,偏斜应该是多少,才能尽量减少这一组请求的总时间?对于不同的寻道速率(例如,-S 2,-S 4)呢?一般来说,考虑到寻道速率和扇区布局信息,你能否写出
一个公式来计算偏斜?

什么是偏移?偏移形象地说就是把那个磁道扭一下,偏移为x就扭地错开x个数据。

对于这组数据,耗时的地方就在于11到12那一步,因为切换磁道需要40单位时间,所以将偏移两设为2最合适。因为从一个数据走到下一个数据需要30个单位时间,寻道要40,可以先假想他们在同一个磁道,要保证在走到目标扇区之前完成磁道的转换.。11到12距离为0,寻道要40,偏移设为2就相当于他们距离是60,60大于40,可行。
验证:
没有偏移: ./disk.py -a 10,11,12,13 -c
在这里插入图片描述

偏移为1: ./disk.py -o 1 -a 10,11,12,13 -c
在这里插入图片描述
偏移为2: ./disk.py -o 2 -a 10,11,12,13 -c
在这里插入图片描述
这里可以看到偏移为2时耗时明显降低,与假设一致。

假设磁头寻道速率为x,磁道偏斜为y(x>0,y>0),则对于该处理流,需满足:
x/40<y*30+15

记得留个赞👍再走呦 :)

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统导论》是一本关于操作系统基本概念和原理的教材。操作系统是计算机系统中最核心的软件之一,它管理和控制计算机硬件资源,并提供给用户和应用程序一个简单易用、高效稳定的接口。 《操作系统导论》主要内容包括操作系统的历史、发展背景,以及操作系统的基本概念、功能和特性等。通过对操作系统的研究,读者能够了解操作系统的架构和组成,掌握操作系统的重要原理和算法,并能够利用这些知识进行操作系统的设计和开发。 在《操作系统导论》中,读者将深入学习操作系统的各个模块,比如进程管理、内存管理、文件系统等。通过对这些模块的学习,读者能够理解操作系统的核心功能,并能够掌握操作系统的基本工作原理。此外,书中还介绍了操作系统的各种经典算法和策略,如调度算法、页面置换算法等,这些算法是实现操作系统功能的基础。 除了基本概念和原理外,《操作系统导论》还涵盖了一些研究热点和前沿技术,如分布式系统、虚拟化技术和云计算等。通过深入了解这些新领域的内容,读者可以了解到操作系统在不同领域的应用和发展趋势。 总之,《操作系统导论》是一本系统介绍操作系统的教材,内容丰富、深入浅出,适合计算机科学与技术相关专业的学生和从业人员阅读使用。通过学习这本书,读者能够全面了解操作系统的基本概念和原理,提高操作系统的设计和开发能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值