北航操作系统课程-第九次作业-设备管理-IO与磁盘


北京航空航天大学计算机学院-2020春操作系统课程
题目作者为北航计算机学院操作系统课程组,答案为博主原创。水平有限,无法保证作答正确性,如有错误敬请批评指正。部分作答源自百度谷歌等其他资料,如有侵权联系删除


1 I/O控制有哪几种?简述他们区别。

  • 程序控制I/O(PIO,Programmed I/O) ,也称轮询或查询方式I/O,它由CPU代表进程向I/O模块发出指令, 然后进入忙等状态, 直到操作完成之后进程才能够继续执行。
  • 中断驱动方式(Interrupt-driven I/O) ,当I/O操作结束后由设备控制器主动地来通知设备驱动程序说这次结束, 而不是设备驱动程序不断地去轮询看看设备的状态。
  • 直接存储访问方式(DMA, Direct Memory Access) ,直接存储器访问方式, 是由一个专门的控制器来完成数据从内存到设备或者是从设备到内存的传输工作。
  • 通道技术(Channel) ,与DMA的原理几乎是一样的,通道是一个特殊功能的处理器,它有自己的指令和程序专门负责数据输入输出的传输控制。CPU将“传输控制”的功能下放给通道后只负责“数据处理”功能。这样,通道与CPU分时使用内存,实现了CPU内部运算与I/O设备的并行工作。

程序控制IO方式需要CPU在IO操作进行时保持忙等状态,中断驱动与它的区别在于在IO操作过程中释放了CPU,IO完成后触发中断来通知CPU进行处理。DMA相对于中断驱动的进步在于,一方面其可以处理一批数据再通知CPU而中断驱动要在每个数据IO完成后触发中断,另一方面中断驱动触发中断需要上下文切换等操作,而DMA由控制器完成,只有开始和结束才通知CPU。通道技术在DMA的基础之上进一步减少CPU的干预,使用独立于CPU的指令体系,可以进行较复杂的IO控制。


2 何为设备独立性?如何实现设备独立性?

设备独立性是操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户来都可以像使用文件一样,操纵、使用这些设备,而不必知道自它们的具体存在形式。为了提高操作系统的可适应性和可扩展性,在现代操作系统中都毫无例外地实现了设备独立性,也称为设备无关性。即应用程序独立于具体使用的物理设百备。

为了实现设备独立性,现代操作系统引入了逻辑设备和物理设备这两个概念,在应用程序中使用逻辑设备名称来请求使用某类设备,而系统在实际执行时,还必须使用物理设备名称。系统需具有将逻辑设备名称转换为某物理设备名称的功能。


3 在I/O系统中引入缓冲的主要原因是什么?某文件占10个磁盘块,现要把该文件的磁盘块逐个读入主存缓冲区,并送用户区进行分析。一个缓冲区与磁盘块大小相等。把一个磁盘块读入缓冲区的时间为100μs,缓冲区数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。分别计算在单缓冲区和双缓冲区结构下,分析完该文件的时间是多少?

引入缓冲技术的原因:提高外设利用率,匹配CPU与外设的不同处理速度,减少对CPU的中断次数,提高CPU和I/O设备之间的并行性。

单缓冲结构下数据IO的过程示意如下,其中T代表读入缓冲区的时间,M代表缓冲区传送到用户区的时间,C代表CPU对数据分析的时间:

读入时间T大于处理时间C,因此每一个磁盘块数据需要的时间为T+M=150μs,所有数据完成的时间为(T+M)*10+C=1550μs

双缓冲结构下数据IO的过程示意如下,其中T代表读入缓冲区的时间,M代表缓冲区传送到用户区的时间,C代表CPU对数据分析的时间:

在CPU传输和处理一个缓冲区数据的过程中,IO设备可以向另一个缓冲区读入数据。由于M和C的时间之和恰好等于T,每一个数据块需要的时间只有T=100μs,所有数据完成的时间为T*10+M+C=1100μs


4 假设磁盘请求以柱面10、35、20、70、2、3 和38的次序到达。寻道时磁头每移动一个柱面需要6ms,磁头起停时间忽略不计,计算以下各算法所需的寻道时间是多少:

a) 假设磁头初始位置为0, 先来先服务

b) 假设磁头初始位置为0, 最短寻道时间优先

c) 查看扫描(Look)算法,假设磁头初始位置为15,方向向上(向大柱面号)

  1. 先来先服务,磁头移动的次序为:

    0 → 10 → 35 → 20 → 70 → 2 → 3 → 38 0 \rightarrow 10 \rightarrow 35 \rightarrow 20 \rightarrow 70 \rightarrow 2 \rightarrow 3 \rightarrow 38 0→10→35→20→70→2→3→38

    寻道总时间:(10+25+15+50+68+1+35) * 6 = 1224ms

  2. 最短寻道时间优先,磁头移动的次序为:

    0 → 2 → 3 → 10 → 20 → 35 → 38 → 70 0 \rightarrow 2 \rightarrow 3 \rightarrow 10 \rightarrow 20 \rightarrow 35 \rightarrow 38 \rightarrow 70 0→2→3→10→20→35→38→70

    寻道总时间:(2+1+7+10+15+3+32) * 6 = 420ms

  3. 查看扫描Look算法,磁头移动的次序为:

    15 → 20 → 35 → 38 → 70 → 10 → 3 → 2 15 \rightarrow 20 \rightarrow 35 \rightarrow 38 \rightarrow 70 \rightarrow 10 \rightarrow 3 \rightarrow 2 15→20→35→38→70→10→3→2

    寻道总时间:(5+15+3+32+60+7+1) * 6 = 738ms

北航操作系统课程-第九次作业-设备管理-IO与磁盘相关推荐

  1. 北航操作系统课程-第一次作业-操作系统引论1

    北航操作系统课程-第一次作业-操作系统引论1 北京航空航天大学计算机学院-2020春操作系统课程 题目作者为北航计算机学院操作系统课程组,答案为博主原创.水平有限,无法保证作答正确性,如有错误敬请批评 ...

  2. 华南理工大学计算机操作系统课程设计大作业银行家死锁避免算法模拟,2016春操作系统大作业银行家死锁避免算法模拟.doc...

    文档介绍: 2016春操作系统大作业银行家死锁避免算法模拟20160501华南理工大学"计算机操作系统"课程设计大作业计算机科学与技术专业:春2015班级:号:2015047420 ...

  3. 北航操作系统课程-20200330课堂小测-线程与调度

    2020-03-30-课堂小测-线程与调度 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有 ...

  4. 北航操作系统课程-20200402课堂小测-调度算法

    2020-04-02-课堂小测-调度算法 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限 ...

  5. 北航操作系统课程-20200305课堂小测-启动与系统引导程序装载

    2020-03-05-课堂小测-启动与系统引导&程序装载 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答 ...

  6. 北航操作系统课程-20200227课堂小测-操作系统引论

    2020-02-27-课堂小测-操作系统引论 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平 ...

  7. 北航操作系统课程-20200511课堂小测-操作系统安全

    2020-05-11-课堂小测-操作系统安全 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平 ...

  8. 北航操作系统课程-20200302课堂小测-操作系统引论

    2020-03-02-课堂小测-操作系统引论 北京航空航天大学计算机学院-2020春操作系统课程 以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平 ...

  9. 陈强教授《机器学习及R应用》课程 第九章作业

    ##第九章惩罚回归#(1)载入数据 rm(list=ls()) mat <- read.csv("student-mat.csv",sep=";") st ...

最新文章

  1. 自定义cell中自定义的button的点击事件
  2. 详解CAPM的数学推导
  3. (2)ARM Cortex-M3指令集
  4. echarts树状图点击展开子节点_CPU眼里的结构设备树节点及属性详解
  5. Linux 配置静态IP
  6. 用phpmyadmin更改root密码的方法
  7. EntityFramework Core 3多次Include导致查询性能低之解决方案
  8. Yolo家族算法分析
  9. 浅谈-tomcat中的项目之间的访问
  10. vt linux tty中文,Linux输入子系统和tty关系影述
  11. 地理空间数据Geometry在MySQL中使用(一)
  12. eclispe file查找
  13. 新人进群发邮件软件,QQ群潜伏发邮件软件,一进群就收到邮件软件
  14. R语言查找指定值的位置(行列)1
  15. Nginx自签名证书的配置
  16. postman更换皮肤
  17. 计算机图表制作教程,PPT怎么制作动态图表 PPT动态图表制作教程-电脑教程
  18. Arranging The Sheep(移动思维)
  19. java 识别图片 边框_atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本...
  20. DevOps落地实践:BAT系列:ALI:企业研发效能解决方案

热门文章

  1. 我是如何用 10 天自学编程,改变一生的?
  2. python 美化输出_python3 美化输出json
  3. Blackhole引擎(黑洞引擎)
  4. 菲尼尔反射 【Unity Shader 入门精要10.1.5】
  5. 自动驾驶入门(八):YoloV3
  6. Python numpy.transpose 详解
  7. TCP/IP 协议族 And HTTP 协议 基基基础知识
  8. mysql 登录失败18456_SQL 2008 windows登录失败,错误18456, 更正
  9. 豆包网完成亿元D轮融资,保险业的未来靠SaaS?
  10. tcp、http和socket的区别(看完这篇不懂,我姓倒着写)