一、知识点

1、IO控制器 / 设备控制器(说人话版)

  • (官方正版)CPU 无法直接控制 I /O 设备的机械部件, 因此 I /O 设备还要有一个电子部件作为 CPU 和 I /O 设备机械部 件之间的“中介”, 用于实现 CPU 对设备的控制。 这个电子部件就是 I /O 控制器, 又称设备控制器。 CPU 可控制 I /O 控制器, 又由 I /O 控制器来控制设备 的机械部件。
  • 1、用于处理IO的控制器,都叫做 IO控制器,无论其放在CPU上、桥片上、还是设备上。
  •   2、io控制器是位于计算机本身内部的,集成在主板上,而不是io设备里面的,它是输出输入设备,包含了一些寄存器,系统通过outb, intb这种指令往端口去读写数据,获取状态,这些寄存器并不存在于外设,如鼠标,键盘等。
  •   3、控制器和外设之间的数据传输是通过相关的标准接口,usb,串口啥的来规定的。
  •   4、简单点就是从电脑里出来,让人们知道的信息设备和信息输入电脑的设备都是由IO进行管理的。
  • I /O 设备由机械部件和电子部件组成。

2、I /O设备分类

3、I /O控制方式回顾

DMA是一种不经过CPU而直接从主存存取数据的数据交换模式,它在 io 设备和主存之间建立了一条直接数据通路,如磁盘。当然,这条数据通路只是逻辑上的,实际并未直接建立一条物理线路,而通常是通过总线进行的。

通道是一种特殊的处理器(cpu),属于硬件技术。

4、I /O设备分配时应考虑的因素

5、I /O软件层次结构

理解并记住 I /O 软件各个层次之间的顺序, 要能够推理判断某个处理应该是在哪个层次完成的( 最常考的是设备独立性软件、 设备驱动程序这两层。

只需理解一个特点即可: 直接涉及到硬件具体细节、 且与中断无关的操作肯定是在设备驱动程序层完成的; 没有涉及硬件的、 对各种设备都需要进行的管理工作都是在设备独立性软件层完成。的)

设备独立性又名设备无关性:可使应用程序独立于具体使用的物理设备。

设备独立性的实现需要:1.引入逻辑设备,物理设备两个概念  2.在驱动层序上设置一层设备独立性软件。

设备独立性的具体实现:在应用程序中,使用逻辑设备名来请求使用某类设备,而在系统系统实际执行时,必将逻辑设备名映射成物理设备名使用。

使用逻辑设备名的好处:1.增加设备分配灵活性  2.易于实现I/O重定向

设备独立性软件的主要功能 :1.执行所有设备的公有操作  2.向用户层提供统一接口。

注:

  • DMT—- Device Mapping Table
  • 设备映射表(DMT) -- Windows  逻辑设备表(LUT) —- Unix
  • 主要实现的功能:建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。属于设备独立性软件层
  • 将系统中的每台设备按某种原则统一进行编号,这些编号作为区分硬件和识别设备的代号,该编号称为设备的(绝对号)。
  • 将系统调用参数翻译成设备操作命令的工作由(与设备无关的操作系统软件 即 设备独立性软件)完成。

假脱机技术( SPOOLing 技术) 需要请求“磁盘设备”的设备独立性软件的服务, 因此一般 来说假脱机技术是在用户层软件实现的。“假脱机技术”, 又称“ SPOOLing 技术”是用软件的方式模拟脱机技术。

但是 408 大纲又将假脱机技术归为“ I /O 核心子系统” 的功能, 因此考试时还是以大纲为准。

SPOOLing 技术系统由【预输入程序,井管理程序(本质上可以理解成目录)和缓输出程序】组成。预输入程序,井管理程序和缓输出程序合起来也叫守护进程。

在 UNIX 系统中, 设备被看做是一种特殊的文件, 每个设备也会有对应的 FCB 。 当用户请求访问 某个设备时, 系统根据 FCB 中记录的信息来判断该用户是否有相应的访问权限, 以此实现“设 备保护”的功能。

缓冲区是一个存储区域, 可以由专门的硬件寄存器组成, 也可利用内存作为缓冲区。 使用硬件作为缓冲区的成本较高, 容量也较小, 一般仅用在对速度要求非常高的场合(如存储器 管理中所用的联想寄存器, 由于对页表的访问频率极高, 因此使用速度很快的联想寄存器来存放 页表项的副本) 一般情况下, 更多的是利用内存作为缓冲区, “设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区。

管道通信中的“管道 ” 其实就是缓冲区。 要实现数据的双向传输, 必须设置两个管道。

8、为何不同的设备需要不同的设备驱动程序?

不同设备的内部硬件特性也不同, 这些特性只有厂家才知道 , 因此厂家须提供与设备相对应的驱动程 序, CPU 执行驱动程序的指令序列, 来完成设置设备寄存器 , 检查设备状态等工作。

9、输入 / 输出应用程序接口1

10、 阻塞 / 非阻塞 I /O

阻塞 I /O :应用程序发出 I /O 系统调用, 进程需转为阻塞态等待。

eg : 字符设备接口 —— 从键盘读一个字符 get

非阻塞 I /O : 应用程序发出 I /O 系统调用, 系统调用可迅速返回, 进程无需阻塞等待。

eg : 块设备接口 —— 往磁盘写数据 write

11、设备驱动程序接口

统一标准的设备驱动程序接口

不同的操作系统, 对设备驱动程序接口的标准各不相同。 设备厂商必须根据操作系统的接口要求, 开发相应的设备驱动程序, 设备才能被使用。

允许用户以标准化方式来使用物理设备 即:

设备独立性软件 ①向上层提供统一的调用接口(如read/write系统调用)﹔②设备的保护;③差错处理;④设备的分配与回收;⑤数据

Unix、Linux系统中,把l/O设备视为文件,用户可使用标准的文件操作read/write来和I/O设备交互

12、通道的分类

“设备、 控制器、 通道”之间的关系:

一个通道可控制多个设备控制器, 每个设备控制器可控制多个设备。

13、设备管理数据结构


二、例题

有关设备管理的叙述中不正确的是()。

A.通道是处理输入/输出的软件

B.所有设备的启动工作都由系统统一来做

C.来自通道的I/O中断事件由设备管理负责处理

D.编制好的通道程序是存放在主存中的

【解析】

通道为硬件。

所有设备的启动工作都由系统统一来做。

来自通道的I/O中断事件由设备管理负责处理。

【答案】A

设从磁盘将一块数据传送到缓冲区所用时间为80us,将缓冲区中数据传送到用户区所用时间为40us,CPU处理一块数据所用时间为30us。如果有多块数据需要处理,并采用单缓冲区传送某磁盘数据,则处理一块数据所用总时间为()。

A . 120us

B . 110us

C . 150us

D . 70us

【解析】缓冲区的重要特性:缓冲区非空时不能冲入数据,只能取出;缓冲区空时可以冲入数据,但必须等到缓冲区满时才可取出。

研究缓冲技术时,如果有多块数据需要处理,则计算每块数据的处理时间,可以假设一种初始状态,然后计算下一次到达相同状态时所需要的时间,就是处理一块数据所需要的时间。

初始状态:工作区满,缓冲区空

0~30:处理工作区中的数据

0~80:从磁盘将一块数据传送到缓冲区

80~120:将缓冲区中的数据传送到工作区(完成之后回到初始状态,即工作区满,缓冲区空)

【答案】A

如果I/O所花费的时间比CPU的处理时间短得多,则缓冲区()。

A .最有效

B .几乎无效

C .均衡

D .以上答案都不对

【解析】 缓冲区主要解决输入/输出速度比CPU处理的速度慢而造成数据积压的矛盾。所以当I/O花费的时间比CPU处理时间短很多,则缓冲区没有必要设置。

场景1:I/O花费的时间比CPU的处理时间长得多

假设,CPU生成一个文本只需要1秒,而打印机取走文本数据需要99秒。假设要生成并打印10个文本,若没有设置缓冲区,则CPU每生成一个文本就要花99秒等待打印机取走文本数据,然后才能开始下一个文本数据的生成,CPU利用率是1%。如果设置了缓冲区,则CPU可以一口气生成10个文本放入缓冲区,之后便可转而进行其他运算工作。让打印机从缓冲区中慢慢取文本数据,从而CPU利用率大大提升。

场景2:I/O花费的时间比CPU的处理时间短得多

假设,CPU要进行一系列的复杂计算,需要花费99秒才能完成计算并生成文本。而打印机取走文本数据只需要1秒。如果没有设置缓冲区,则CPU花99秒生成文本,接着花1秒等待打印机取走数据,CPU利用率是99%。此时即使设置了缓冲区,对系统整体性能的提升也不大。缓冲区几乎无效。

【答案】B

考虑单用户PC机上的下列I/O操作:

(1)图形用户界面下使用鼠标

(2)在多任务操作系统下的磁带驱动器(假设没有设备预分配)

(3)包含用户文件的磁盘驱动器

(4)使用存储器映射I/O,直接和总线相连的图形卡

在操作系统中使用缓冲技术,假脱机技术,Cache技术,或者它们的组合来实现上述操作。实现时使用轮询I/O还是中断I/O?为什么?

【解析】

(1) 在鼠标移动时,如果有高优先级的操作产生,为了记录鼠标活动的情况,必须使用缓冲技术,另外,假脱机技术和Caching技术不是很必要,而应采用中断驱动I/O方式。

(2) 由于磁带驱动器和目标或源I/O设备间的吞吐量不同,必须采用缓冲技术;为了能对储存在磁带上的数据进行快速访问,必须采用Caching技术;当有多个用户需要对磁带进行读或写的时候,假脱机技术也是必须采用的;为了取得最好的性能,应该采用中断驱动I/O方式。

(3) 为了能使数据从用户作业空间传送到磁盘或从磁盘传送到用户作业空间,必须采用缓冲技术;同样道理,也必须采用Caching技术;由于磁盘是属于共享设备,故没必要采用假脱机技术;最好采用中断驱动I/O方式。

(4) 为了便于多幅图形的存取及提高性能,缓冲技术是可以采用的,特别是在显示当前一幅图形时又要取得下一幅图形时,应采用双缓冲技术;基于存储器映射及直接和总线相连的图形卡是快速和共享设备,所以没必要采用假脱机技术和Caching技术;轮询I/O和中断I/O只对输入和I/O是否完成的检测有用,而对于采用存储器映射的设备不必用到上述两种I/O方式。

操作系统 | 【五 输入/输出管理】知识点及例题相关推荐

  1. 操作系统(5) -- 输入/输出管理

    5.1 I/O管理概述 I/O设备 按使用特性:人机交互外部设备.存储设备.网络通信设备 按信息交换的单位分类:块设备.字符设备 I/O控制方式 外围设备与内存之间的输入/输出方式: 程序直接控制方式 ...

  2. 《Visual C++ 开发从入门到精通》——2.4 输入/输出基础

    本节书摘来自异步社区出版社<Visual C++ 开发从入门到精通>一书中的第2章,第2.4节,作者: 王东华 , 李樱,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  3. 操作系统(五)输入/输出(I/O)管理

    操作系统(五)输入/输出(I/O)管理 一.I/O控制器 二.I/O控制方式 程序直接控制方式 中断驱动方式 DMA方式 通道控制方式 I/O软件层次结构 假脱机技术 设备的分配与回收 缓冲区 单缓冲 ...

  4. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构

    文章目录 一:用户层软件 二:设备独立性(无关性)软件 三:设备驱动程序 (1)为什么需要驱动 (2)功能 四:中断处理程序 五:硬件设备 I/O软件是操作系统中很特别的存在 它向下与硬件有着密切的联 ...

  5. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类

    文章目录 一:什么是I/O设备 二:I/O设备的分类 (1)按使用特性分类 (2)按传输速率分类 (3)按信息交换单位分类 注意: 本章内容和<计算机组成原理>中的"输入输出系统 ...

  6. 黑书《现代操作系统(中文第三版)》课后习题——第五章 输入/输出

    第五章 输入/输出 1.芯片技术的进展已经使得将整个控制器包括所有总线访问逻辑放在一个便宜的芯片上成为可能.这对于图1-5的模型具有什么影响? 答:(题目有问题,应该是图1-6)在此图中,一个控制器有 ...

  7. 操作系统——输入/输出(I/O)管理

    文章目录 1. I/O管理概述 1.1 I/O设备 1.2 I/O控制方式 1.2.1 程序直接控制方式 1.2.2 中断驱动方式 1.2.3 DMA方式 1.2.4 通道控制方式 1.3 I/O子系 ...

  8. 操作系统:第五章 磁盘管理 - I/O控制,缓冲区管理

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  9. 计算机组成原理知识点汇总(考研用)——第七章:输入/输出系统

    计算机组成原理知识点汇总(考研用)--第七章:输入/输出系统  本文参考于<2021年计算机组成原理考研复习指导>(王道考研),<计算机组成原理> 思维导图: 文章目录 计算机 ...

最新文章

  1. Spring Boot 教程(三): Spring Boot 整合Mybatis
  2. (1)搞一搞 seata 之 基础环境搭建
  3. java正则转义_Java 正则表达式 转义字符
  4. vue 改变domclass_手机上的大片制作软件——如何使用VUE
  5. find command基本使用
  6. spotify歌曲下载_使用Spotify数据预测哪些“ Novidades da semana”歌曲会成为热门歌曲
  7. 添加Expires头
  8. 智慧城市数据采集的四大难点分析及解决措施
  9. 安装Oracle 11.2.0
  10. 校园网络构建方案设计
  11. 修改docker ip网段
  12. 《Linux操作系统-基础笔记》第6章 编译调试工具(GCC、GDB)
  13. 音频技术的下一个“热点”,会出现在哪个领域?丨一期一会 • 音频工程师专场
  14. android9 apk自动安装功能,如何在Android7.0、8.0、9.0系统下通过Intent安装apk
  15. vue 图表三维立体3D散点图
  16. ADAMS 常用快捷键速记
  17. 程序设计方法学-python
  18. redis详解(三)-- 面试题
  19. 台湾安格推出的用于TYPEC转VGA HDMI音视频多功能扩展坞方案选型和方案设计|USB-C转VGA HDMI类扩展器方案选型和方案讲解
  20. Dilworth定理是个啥东东

热门文章

  1. win10同步服务器文件夹在哪,win10系统电脑一键实现文件夹视图同步的操作办法...
  2. 了解inode,软链接和硬链接
  3. 【小白刷机】Pixel手机刷Magick模块不兼容重启卡开机logo解决方式
  4. 【洛谷】P6771 Space Elevator 太空电梯***(多重背包)
  5. kubernetes 应用部署实例-PHP Guestbook application
  6. 探索MediaPipe的人像分割
  7. IIS下 Django media、MEDIA_ROOT、MEDIA_URL路径问题
  8. 英语论文夹注以及文献格式
  9. 一路在赶,别忘了珍惜现在--《爱的太晚》古巨基
  10. 浅谈c/c++中main(),int main(),void main(),int main(void)四者之间的区别