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

一、知识点

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方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西皮呦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值