操作系统——I/O管理概述

1. I/O设备

1.1设备的分类

按信息交换的单位分类,I/O 设备可分为:
1) 块设备。信息交换以数据块为单位。它属于有结构设备,如磁盘等。

磁盘设备的基本特征是传输速率较高、可寻址,即对它可随机地读/写任意一块。

2)字符设备。信息交换以字符为单位。它属于无结构类型,如交互式终端机、打印机等。

它们的基本特征是传输速率低、不可寻址,并且时常采用中断I/O 方式。按传输速率分类,I/O 设备可分为:

1)低速设备。传输速率仅为每秒几字节到数百字节的一类设备,如键盘、鼠标等。

2)中速设备。传输速率为每秒数千字节至数万字节的一类设备,如激光打印机等。

3)高速设备。传输速率在数百千字节至千兆字节的一类设备,如磁盘机、光盘机等。

1.2 I/O接口 

 I/O 接口(设备控制器)位于 CPU 与设备之间,它既要与 CPU 通信,又要与设备通信,还要具有按 CPU发来的命令去控制设备工作的功能,主要由三部分组成:

1)设备控制器与 CPU 的接口。该接口有三类信号线:数据线、地址线和控制线。数据线通常与两类寄存器相连:数据寄存器(存放从设备送来的输入数据或从CPU 送来的输出数据)和控制/状态寄存器 (存放从 CPU送来的控制信息或设备的状态信息)。

2)设备控制器与设备的接口。一个设备控制器可以连接一个或多个设备,因此控制器中有一个或多个设备接口。每个接口中都存在数据、控制和状态三种类型的信号。

3)I/O逻辑。用于实现对设备的控制。它通过一组控制线与CPU交互,对从CPU收到的I/O命令进行译码。CPU 启动设备时,将启动命令发送给控制器,同时通过地址线把地址发送给控制器,由控制器的I/O 逻辑对地址进行译码,并相应地对所选设备进行控制。

设备控制器的主要功能有:①接收和识别 CPU 发来的命令,如磁盘控制器能接收读、写、查找等命令;②数据交换,包括设备和控制器之间的数据传输,以及控制器和主存之间的数据传输:③标识和报告设备的状态,以供 CPU 处理,④地址识别,⑤数据缓冲,⑥差错控制。

1.3 I/O 端口

I/O端口是指设备控制器中可被 CPU直接访问的寄存器,主要有以下三类寄存器:

①数据寄存器:实现 CPU 和外设之间的数据缓冲。

②状态寄存器:获取执行结果和设备的状态信息,以让CPU 知道是否准备好。

③控制寄存器:由CPU写入,以便启动命令或更改设备模式。

为了实现CPU与I/O端口进行通信,有两种方法:

1)独立编址。为每个端口分配一个I/O端口号,所有I/O 端口形成I/O端口空间,普通用户程序不能对其进行访问,只有操作系统使用特殊的I/O指令才能访问端口。
2)统一编址。又称内存映射I/O,每个端口被分配唯一的内存地址,且不会有内存被分配这一地址,通常分配给端口的地址靠近地址空间的顶端。  

2. I/O控制方式 

设备管理的主要任务之一是控制设备和内存或 CPU 之间的数据传送。

外围设备和内存之间的输入/输出控制方式有4种:

1.程序直接控制方式(轮询)

程序直接控制方式虽然简单且易于实现,但其缺点也显而易见,由于CPU和I/O设备只能串行工作,导致 CPU的利用率相当低。

2.中断驱动方式 

允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU使得其向I/O控制器发送读命令后可以继续做其他有用的工作。

中断驱动方式比程序直接控制方式有效,但由于数据中的每个字在存储器与 I/O 控制器之间的传输都必须经过 CPU,这就导致了中断驱动方式仍然会消耗较多的 CPU时间。

3.DMA 方式

DMA(直接存储器存取)方式是在 I/O 设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU。 

DMA方式的特点如下:
1)基本单位是数据块。

2)所传送的数据,是从设备直接送入内存的,或者相反。

3)仅在传送一个或多个数据块的开始和结束时,才需 CPU于预,整块数据的传送是在DMA控制器的控制下完成的。 

DMA方式与中断方式的区别:中断方式在每个数据需要传输时中断CPU,而 DMA方式则是所要求传送的一批数据全部传送结束才中断CPU,此外,中断方式数据传送是在中断处理时由CPU控制完成的,而DMA 方式则是在DMA控制器的控制下完成的。

4.通道控制方式 

I/O通道方式是DMA方式的发展,减少CPU的干预。

I/O通道与一般处理机的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与 CPU 共享内存。

I/O 通道与DMA方式的区别是:DMA方式需要 CPU 来控制传输的数据块大小、传输的存位置;而通道方式中这些信息是由通道控制的。另外,每个 DMA 控制器对应一台设备与内传递数据,而一个通道可以控制多台设备与内存的数据交换。

3.I/O软件层次结构 

 (1)用户层I/O软件
实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。一般而言,大部分的 I/O 软件都在操作系统内部,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数。用户层软件必须通过一组系统调用来获取操作系统服务。


(2)设备独立性软件

用于实现用户程序与设备驱动器的统一接口、设备命令、设备的保护及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。

设备独立性也称设备无关性,使得应用程序独立于具体使用的物理设备。为实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名来请求使用某类设备;而在系统实际执行时,必须将逻辑设备名映射成物理设备名使用。(设备映射表DMT)

(3) 设备驱动程序

与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动 I/O 设备工作的驱动程序。

通常,每类设备配置一个设备驱动程序,它是 I/O 进程与设备控制器之间的通信程序,通常以程的形式存在。设备驱动程序向上层用户程序提供一组标准接口,设备具体的差别被设备驱动程序所封装,用于接收上层软件发来的抽象 I/O 要求。

(4)中断处理程序

用于保存被中断进程的 CPU 环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断进程。

中断处理与硬件紧密相关,对用户而言,应尽量加以屏蔽,因此应放在操作系统的底层,系统的其余部分尽可能少地与之发生联系。

4.应用程序I/O接口 

(1)字符设备接口

字符设备是指数据的存取和传输是以字符为单位的设备,如键盘、打印机等。基本特征是传输速率较低、不可寻址,并且在输入/输出时通常采用中断驱动方式。字符设备都属于独占设备,为此接口中还需要提供打开和关闭操作,以实现互斥共享。

 (2)块设备接口

块设备是指数据的存取和传输是以数据块为单位的设备,典型的块设备是磁盘。基本特征是传输速率较高、可寻址。磁盘设备的 I/O常采用DMA 方式。

(3)网络设备接口

需要提供相应的网络软件和网络通信接口,使计算机能够通过网络与网络上的其他计算机进行通信或上网浏览。

(4)阻塞/非阻塞I/O

阻塞 I/O是指当用户进程调用 I/O 操作时,进程就被阻塞,需要等待 I/O 操作完成,进程才被唤醒继续执行。非阻塞I/O 是指用户进程调用 I/O 操作时,不阻塞该进程,该 I/O 调用返回一个错误返回值,通常,进程需要通过轮询的方式来查询 I/O 操作是否完成。 


I/O管理要完成哪些功能?
I/O管理需要完成以下4部分内容:
1) 状态跟踪。要能实时掌握外部设备的状态。
2)设备存取。要实现对设备的存取操作。
3)设备分配。在多用户环境下,负责设备的分配与回收。
4)设备控制。包括设备的驱动、完成和故障的中断处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值