早点写完,免得夜长梦多

本作业使用 disk.py 来帮助读者熟悉现代磁盘的工作原理。 它有很多不同的选项,与大多数其他模拟不同,它有图形动画, 可以准确显示磁盘运行时发生的情况。详情请参阅 README 文件。

37.1

问题描述

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

解答

-a 0

首先运行命令python2 disk.py -a 0 -G

如果出现以下提示,首先执行命令 sudo apt-get install python-tk

运行结果为:

可以看到,指针在6处 ,我们定义的是-a 0, 所以目标是同磁道的0处,它们在同一个磁道,所以寻道时间为0。接着按s查看动画:

可以看到,目标是0扇区 ,但是具体整扇区的位置是数字11和0中间,并且由旋转速度为1°/s可以得到旋转时间为30*5+30/2=165。然后0号扇区的大小为30度,所以传输时间为30s。所以总时间为165+30=195

可以看到总时间确实是195

-a 6

运行命令python2 disk.py -a 6 -G查看运行结果

这次,目标是6 ,开始扇区也是6,则寻道时间为0。但是由上一小问知道它会到达6和7的中间,从6开始要多旋转一周,即旋转时间为30*11+30/2=345,传输时间同样为30,则总时间为375。按s查看运行结果:

-a 30

这次目标是30,不在一个磁道了。 运行命令 python2 disk.py -a 30 -G 查看运行结果:

这次目标是30,不在一个磁道了。 所以首先会从最外层磁道寻道到最内层。按s查看动画:

可以看到寻道时间为80,则跨一个磁道的时间就为40。 内磁道后,已经转了80度,所以旋转时间是360-15-80=265,传输时间仍为30 。所以总时间为265+80+30=375

-a 7,30,8

所以顺序是7->30->8。直接开始计算。从6到7:寻道0,旋转15(半扇区就到运行命令 python2 disk.py -a 7,30,8 -G 查看运行结果

策略是FIFO,所以顺序是7->30->8。直接开始计算。

  • 从6到7:寻道0,旋转15(半扇区就到了),运输30。

  • 从7到30:寻道40*2=80,旋转的话,7与31是对齐的,所以7的结尾与30的开头之间的角度是360-30-15-15=300,再减去寻道时候转的角度,所以旋转时间应该是300-80=220,然后传输30。

  • 从30到8∶寻道80,旋转的话,本来只要30(30的尾和8的头只差了一个扇区的度数),但要再加一圈,所以是30+360-80=310,传输30。

按s查看运行结果:

-a 10,11,12,13

运行指令python2 disk.py -a 10,11,12,13 -G 查看运行结果:

  • 从6到10、11:寻道0,旋转30*3+15=105,传输302=60。
  • 从11到12、13: 注意:11到12不在一个磁道,寻道之后就得绕一圈。所以寻道40,旋转0+360-40=320,传输30*2=60。

总时间为105+60+40+320+60=585

按s查看动画:

37.2

问题描述

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

解答

更换寻道速率后,对于-a 0-a 6这两个寻道时间为0的没有影响

-a 30的,开始的位置(扇区6的中间)与扇区30的开头相差360-15=345度,所以只要寻道时间(40 * 2/S)内,旋转角度不超过345度的就只是减少了寻道节省的时间而已,包括了-S 2,-S 4,-S 8,-S 10,-S 40;而-S 0.1的话,寻道时间为40 * 2/0.1=800,所以要多绕2圈,旋转时间为345+360+360-800=265,传输时间30,如下图︰

-a 7,30,8的和-a 10,11,12,13的,具体时间看下表

与-S 1对比 -S 2 -S 4 -S 8 -S 10 -S 40 -S 0.1
-a 0 完全不变 完全不变 完全不变 完全不变 完全不变 完全不变
-a 6 完全不变 完全不变 完全不变 完全不变 完全不变 完全不变
-a 30 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间增加,多旋转2圈
-a 7,30,8 寻道时间减少 寻道时间减少,少旋转1圈 寻道时间减少,少旋转1圈 寻道时间减少,少旋转1圈 寻道时间减少,少旋转1圈 寻道时间增加,多旋转4圈
-a 10,11,12,13 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间减少 寻道时间增加,多旋转1圈

37.3

问题描述

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

解答

寻道时间不影响。旋转时间有的线性增加,而有的会因为寻道相对快了而少绕圈。传输时间线性增加(传输时间=30/R)。

例如-a 7,30,8中从30到8的,旋转速度为0.1时,寻道完后还未进入8的扇区,所以只需要转30度,不需要多绕一圈,这一步旋转时间为30/0.1=300比原来的(30+360)/1=390还少。

其他的,只是旋转时间增加,对圈数不影响。

具体时间如下表:

与-R 1对比 -R 0.1 -R 0.5 -R 0.01
-a 0 旋转时间增加 旋转时间增加 旋转时间增加
-a 6 旋转时间增加 旋转时间增加 旋转时间增加
-a 30 旋转时间增加 旋转时间增加 旋转时间增加
-a 7,30,8 少旋转一圈,旋转时间减少 只是旋转时间增加 少旋转一圈,但旋转时间增多
-a 10,11,12,13 旋转时间增加 旋转时间增加 旋转时间增加

37.4

问题描述

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

解答

对于请求流-a 7,30,8,FIFO处理请求的顺序为7,30,8,会白白多了一次寻道和一圈的旋转;而最短寻道优先策略SSTF、电梯算法SCAN、最短定位时间优先SPTF的顺序都会是7,8,30。

由第一题我们知道使用后FIFO策略的时间为795

而使用 SSTF 策略后的执行过程:

  • 6到7:寻道0,旋转15,传输30
  • 7到8:寻道0,旋转0,传输30
  • 8到30:寻道80,旋转360-3*30-80=190,传输时间30

总时间为15+30+30+80+190+30=375

运行命令 python2 disk.py -a 7,30,8 -p SSTF -G 查看运行结果:


总时间确实为375

37.5

问题描述

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

解答

用最短定位时间优先SATF对-a 7,30,8进行处理,无论是从旋转或是寻道的角度讲,顺序都必定是7、8、30是最优的。所以没有改变顺序:

运行命令python2 disk.py -a 7,30,8 -p SSTF -G查看运行结果

可以看到时间确实没变。

举个最短定位时间优先比最短寻道时间优先性能优异很多的例子,例如: -a 7,34,13,6

因为最短寻道时间优先只考虑寻道时间,也就是只会先完成最近磁道,那么找一个极端的例子,如下图,如果是SATF的话顺序为6->7->13->6->34,如果是SSTF的话顺序为6->7->6->13->34。用SSTF的话会在最外层多转一圈,消耗很多时间

图一为使用SATF,图二为使用SSTF,可以看到,确实明显减少了很多时间


由此可得,当寻道时间远远小于旋转时间的情况,SATF性能就会显著优于SSTF

37.6

问题描述

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

解答

不论使用FIFO、SSTF、SATF中的哪个调度策略,对于请求流-a 10,11,12,13,请求的顺序都是10、11、12、13。因为如下图,扇区11的尾与扇区12的头是一个角度上的,必须要绕一圈才能开始对扇区12的传输,这是磁盘扇区位置设计的弊端。

因此需要磁道偏斜

偏斜量为0:

为0时为默认情况,其时间在第一问已经求出,为585

偏斜量为1

运行命令python2 disk.py -a 10,11,12,13 -o 1 -G 查看运行结果

传输完11之后,寻道到了中间磁道,还是错过了12扇区的开始位置

偏斜量为2:

运行命令python2 disk.py -a 10,11,12,13 -o 2 -G查看运行结果

传输完11之后,寻道到了中间磁道,刚好就到12扇区的开始位置。

偏斜量再大,在速度不变的情况下,只会增加寻道后等待12扇区开始位置的旋转时间。

如果寻道时间加快,如 -S 2或者 -S 4 ,那么偏斜量为1反而是最优的,因为这时候寻道时间40/S小于30,所以刚好能碰到12开始的位置。

也就是,跨越相邻磁道的寻道时间约接近(小于)旋转过一个扇区的旋转时间,效果越好。因此,如果寻道速度为V,寻道距离为D,旋转角速度为W,每扇区区域跨越的角度为A,偏斜为O,那么:D / V < A*O / W ,所以偏斜量O > DW / VA,并取满足该条件下的最小的整数。

《操作系统导论》第37章课后答案相关推荐

  1. 操作系统导论第四章课后习题

  2. 李航《统计学习方法》第四章课后答案链接

    李航<统计学习方法>第四章课后答案链接 本博客转载自:http://blog.csdn.net/xiaoxiao_wen/article/details/54097917

  3. 李航《统计学习方法》第三章课后答案链接

    李航<统计学习方法>第三章课后答案链接 我的天呐竟然木有百度到...是因为太简单了吗...

  4. 李航《统计学习方法》第二章课后答案链接

    李航<统计学习方法>第二章课后答案链接 李航 统计学习方法 第二章 课后 习题 答案 http://blog.csdn.net/cracker180/article/details/787 ...

  5. 李航《统计学习方法》第一章课后答案链接

    李航<统计学习方法>第一章课后答案链接 李航 统计学习方法 第一章 课后 习题 答案 http://blog.csdn.net/familyshizhouna/article/detail ...

  6. 数据结构(C语言)第二版 第四章课后答案

    数据结构(C语言)第二版 第四章课后答案 1~5 B B C A B 6~10 B B C B B 11~15 A B D (C,B) C 1.选择题 (1)串是一种特殊的线性表,其特殊性体现在(B) ...

  7. 数据结构(C语言)第二版 第一章课后答案

    数据结构(C语言)第二版 第一章课后答案 这本书,我以后也会用,所以趁着考完试做个整理,顺便分享出来.电子资源发不出来,放评论区吧,有需要自取. 1. 简述下列概念:数据.数据元素.数据项.数据对象. ...

  8. 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案

    研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案 目录 研究生考试 之 计算机网络第七版(谢希仁) 第一章 课后答案 一.简单介绍 二.计算机网络第七版(谢希仁) 第一章 课后答案 1. ...

  9. 数据结构(C语言)第二版 第三章课后答案

    数据结构(C语言)第二版 第三章课后答案 1~5 C C D A A 6~10 D A B C D 11~15 D D B C B 1.选择题 (1)若让元素1, 2, 3 , 4, 5 依次进栈,则 ...

最新文章

  1. matlab 2010无法运行程序,matalb r2010a安装后打开出现一系列警告,无法运行,哪位大神帮...
  2. Java 学习(1) ---JDK安装和配置环境变量
  3. nginx服务器安装及配置文件详解
  4. 评审不给钱,看论文还要涨价?UCLA:我们决定抵制柳叶刀、细胞
  5. bzoj3339 Rmq Problem
  6. Java中Boolean是什么?
  7. 初学者在python下使用Ta-lib库时遇到的一些问题及解决办法
  8. 根据经纬度求最近点的三种解法java实现
  9. codevs——1036 商务旅行
  10. PHP 长连接,奏是这么简单
  11. 如何用Python画一只机器猫?| 原力计划
  12. c++ c超简单的求公约数
  13. 李宏毅老师《机器学习》课程笔记-1深度学习简介
  14. 实现图片文字识别的方法有哪些
  15. 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
  16. 为什么Vertu没有成为诺基亚的iPhone?
  17. [GitHub][2014-05-11 18:34:13]eqq-python
  18. 【MM系列】SAP库龄报表逻辑理解
  19. 小程序样式text:after不起作用。在开发者工具看不到样式
  20. qtractor教程_用Qtractor放一些音轨

热门文章

  1. Python基础篇(三)-- 列表、元组、字典、集合、字符串
  2. String“+”与StringBuffer/StringBuilder 对象的append方法
  3. 怎么样跑步才会消耗掉脂肪而不是肌肉和水分呢
  4. 多语言 - 国际化处理 上
  5. centos7.7 安装google浏览器
  6. awk详解:awk语言及应用
  7. Blazeds(一)
  8. 计算机网络知识整理-计算机网络概述(计算机网络入门参考指南)
  9. oracle创建同义词授权,Oracle同义词赋权
  10. 计算机对音乐课堂的帮助,电脑音乐在音乐教学中的应用