【操作系统-chapter5】I/O管理

1. I/O管理概述

1.1 I/O设备

在这里插入图片描述

注意:可寻址:指可以按地址访问,即可以随机访问。

1.2 I/O控制器

1.2.1 什么是I/O控制器

在这里插入图片描述
CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。这个电子部件就是I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件。

1.2.2 I/O控制器的功能

在这里插入图片描述

1.2.3 I/O控制器的组成

* I/O控制器的组成
	1. CPU与控制器的接口
		1. 控制寄存器
		2. 状态寄存器
		3. 数据寄存器
	2. I/O逻辑
	3. 控制器与设备的接口

在这里插入图片描述

注意:

  1. 一个控制器可能会对应多个设备。
  2. 控制寄存器、状态寄存器、数据寄存器可能会有多个(每个状态寄存器对应一个具体的设备),且这些寄存器要有相应的地址,才方便CPU操作。
  3. I/O控制器中寄存器地址:
    1. 如果是内存地址一部分,称为内存映像I/O, 或者统一编址
    2. 如果是I/O专用地址,称为独立编址
  4. 统一编址优点:简化了指令,
    独立编址缺点:需要专门的指令来实现对控制器的操作。

1.2.4 小结

在这里插入图片描述

1.3 I/O控制方式

I/O控制方式:用什么方式来控制I/O设备的数据读/写。

1.3.1 程序直接控制

在这里插入图片描述

1.3.2 中断驱动方式

由于I/O设备速度很慢,因此在CPU发出读/写指令后,可将等待I/O的进程堵塞,转而处理其他的事情。当I/O设备准备好后,以中断的方式告诉CPU,CPU再进行处理。

注意:

  1. CPU会在没条指令的末尾检查是否出现中断。
  2. 中断是需要时间开销的,中断频率不可过高。
  3. 每次发生中断只能读取一个字的信息。

在这里插入图片描述

1.3.3 DMA方式(直接存储器存取)

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

1.3.4 通道控制方式(又称:I/O处理机方式)

在这里插入图片描述

在这里插入图片描述

注意:

  1. 通道是一种硬件,是“弱鸡版”的CPU。它控制I/O控制器,I/O控制器控制设备。
  2. 一个通道可以控制多个I/O控制器,而一个I/O控制器可以控制多个设备。(树型)
  3. 一个系统中可能有多个通道。

1.3.5 小结

在这里插入图片描述

注意:I/O设备是典型的以中断方式工作的。无论I/O控制器采用哪种I/O控制方式去控制外设,最终都不可避免的要通过中断请求CPU。

2. I/O软件

2.1 I/O软件层次结构

上节介绍的I//O控制器是一种硬件,实现对设备的控制。下面我们介绍在I/O控制器之上的I/O软件部分:
在这里插入图片描述

注意:从上到下是I/O请求,从下到上是I/O应答。

  1. 用户软件:对系统调用的进一步封装,封装后向上层提供更加简单的库函数接口。比如Windows API
  2. 设备独立性软件:又叫系统调用处理程序或设备无关软性。其向上层提供系统调用的接口。
    功能:
    1. 提供系统调用接口
    2. I/O调度(按照某种算法选择设备,比如先来先服务)
    3. 设备的保护(设备是特殊的文件,比如权限控制等)
    4. 差错处理
    5. 设备的分配与回收
    6. 数据缓冲区管理
    7. 建立逻辑名与物理设备名的映射
    8. 根据设备类型选择调用相应的驱动程序。
  3. 设备驱动程序:将抽象I/O请求与硬件高低电平相互转换。让硬件与软件能相互听懂对方的语言。【同一设备的设备驱动程序一样】
    功能:计算数据所在的柱面号、磁头号、扇区号
  4. 中断处理程序:进行中断处理。

与硬件相关的属于中断处理程序或设备驱动程序,否则属于设备独立性软件。

2.2 脱机技术与假脱机技术

由于处理机与外部设备速度相差很大,如果让CPU等待外设的I/O会造成CPU资源的浪费。

解决方法:设置一个缓冲设备,CPU快速的从缓冲设备中写/读数据,等待的过程交给缓冲设备,解决了处理机与外部设备速度不匹配的问题。其中这个缓冲设备由外围控制机、更高速的存储器构成。
在这里插入图片描述
假脱机技术就是用软件的发生模拟脱机技术,称为SPOOLing技术,其组成如下:
在这里插入图片描述
SPOOLing技术作用:可以把物理设备虚拟成逻辑上的多台设备,可将独占性设备改造成共享设备

在这里插入图片描述

2.3 高速缓冲与缓冲区

在这里插入图片描述

2.4 设备分配与回收

在这里插入图片描述

补充

1. 下列设备属性的描述,正确的是( )
	A. 字符设备的基本特征是可寻址到字节。
	B.共享设备必须是可寻址的和可随机访问的设备。
	C.共享设备是指同一时间内允许多个进程同时访问的设备
	D.在分配共享设备和独占设备时都可能引起死锁。
	选B。可寻址:指可以按地址访问,即可以随机访问。而可寻址是块设备的特征不是字符设备的特征。
	共享设备指同一时间内允许多个进程同时访问的设备。(没有特别说明,则时间指时间间隔)
	共享型设备是不会引起死锁的,破坏了死锁必要条件的互斥条件。

2. 虚拟设备:指把一个物理设备变换成多个对应的逻辑设备。

3. 为了便于上层软件的编制,设备控制器通常需要提供( )
	A.控制寄存器、状态寄存器、控制命令
	B.I/O地址寄存器、工作方式状态寄存器和控制命令
	C.中断寄存器、控制寄存器、控制命令
	D.控制寄存器、编程空间、控制逻辑寄存器
	选A。不存在I/O地址寄存器。中断寄存器位于CPU。编址空间是体系结构和操作系统共同决定的。
	记忆:控制寄存器、状态寄存器、数据寄存器、控制命令

4. 设备映射表(DMT):用于建立逻辑设备与物理设备的对应关系。

5. ( )用做连接大量的低速或者中速I/O设备。
	A.数据选择通道		B.字节多路通道		C.数据多路通道		D.I/O处理机
	选B。
	字节多路通道:是一种简单的共享通道,主要用于连接控制“多台”低速外设,以字节交叉方式传送数据。因为通道
	             从设备接收或发送一个字节的时间远远小于外设读取一个字节的时间,利用这个间隔服务其他设备。
	 数据选择通道:选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一个时
	 			  间段内通道只能选择一个设备进行工作。	
	 			  选择通道主要用于连接高速外围设备,如磁盘、磁带等,信息以成组方式高速传输。
	 数据多路通道:连接控制多个高速外设并以成组交叉方式传送数据的通道称为数组多路通道。数组多路通道是对选
	 						 择通道的一种改进,类似于字节多路通道,是交叉的。
	 I/O处理机:即通道。

6. ( )不是设备分配中应考虑的问题。
	A.及时性		B.设备的固有属性		C.设备独立性		D.安全性
	选A。

7. 设备的绝对号:计算机为每台设备确定一个编号加以区分和识别,这个编号就是设备的绝对编号。

8. 有关设备管理,下列不正确的是( )
	A.通道是处理输入输出的软件。
	B.所有设备的启动工作都由系统统一完成。
	C.来自通道的I/O中断事件由设备管理负责处理。
	D.编制好的通道程序是放在主存中的。
	选A。通道是硬件。了解正确的选项。设备管理即I/O子系统,其包括中断处理程序,故C对。
	第一次中断后,CPU告诉通道关于通道程序在内存中的地址,然后CPU做其他事情,通道完成任务后再中断。故D对。

9. 用户通过键盘登入系统时,首先获得键盘输入信息的程序是( )
	A.命令解释程序	B.中断处理程序		C.系统调用服务程序		D.用户登入程序
	选B。

10.  将系统调用参数翻译成设备操作命令的工作由( )完成。
	A.用户层I/O		B.设备无关的操作系统	C.中断处理		D.设备驱动程序
	选B。
	系统调用是OS提供的,其翻译必然由OS负责。而设备驱动程序是执行OS翻译后的设备操作命令,其会因为设备的
	不同而导致设备驱动程序不同。

11. 用户程序发生磁盘I/O请求后,系统的处理流程是:用户程序->系统调用->设备驱动程序->中断处理程序。其中计算
	数据所在的柱面号、磁头号、扇区号的程序是_____
	答案:设备驱动程序。

12. 设备的独立性:指用户编程时使用的设备与实际使用的设备无关。

13. 打印机不是共享设备,只要磁盘是共享设备。判断的依据:很短的时间间隔内允许多个进程访问,打印机会混乱。

14. 为了使并发进程能有效地进行输入和输出,最好采用( )结构的缓冲技术。
	A.缓冲池		B.循环缓冲		C.单缓冲		D.双缓冲
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ElegantCodingWH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值