设备管理(一)

2019-03-25  本文已影响0人  菜根小友

目录

5.1 I/O硬件原理

5.2 I/O软件原理


外部设备分为两大类:

设备管理是OS中最为庞杂和琐碎的部分,通常使用I/O中断、缓冲区管理、通道、设备驱动调度等多种技术,这些措施较好地克服了由于设备和CPU速度不匹配所引起的问题,使主机和设备能够并行工作,提高设备使用效率。另一方面,操作系统将所有设备都抽象成文件,将其统一在文件系统之下,赋予文件属性,对设备的操作就类似于对文件的操作,其优点是:尽可能统一文件和设备的I/O处理;尽可能把设备文件和普通文件纳入同一保护机制下。为了方便用户或高层软件使用,设备管理还对各种设备进行抽象,配置设备驱动程序,屏蔽物理细节和操作过程,统一使用界面。为此,设备管理应具有以下功能:


5.1 I/O硬件原理

5.1.1 I/O系统
按不同方式对设备进行分类:

输入型设备和输出型设备通常是字符设备,它与内存进行信息交换的单位是字节,即一次交换1个或多个字节;

存储型设备通常是块设备,可分为

前者严格依赖信息的物理位置进行定位和读写,如磁带;
后者的特点是存取任何一个物理块所需时间几乎不依赖于此信息所处的位置,如磁盘。

设备的物理特性差异:

5.1.2 I/O控制方式
根据I/O控制器功能的强弱以及它和CPU之间联系方式的不同,可以把设备控制方式分为:

它们之间的差异在于:CPU和设备并行工作的方式和程序不同。从早期采用轮询方式,CPU全程参与I/O操作,演变到采用中断方式,以减少CPU参与I/O操作的工作量,直至引入DMA与通道方式,可以在没有CPU参与情况下完成I/O操作,把CPU从I/O操作中彻底解放出来,消除了系统性能瓶颈。

1. 轮询方式
使用查询指令测试设备控制器的忙闲状态位,决定内存和设备能否交换数据。当某个设备准备好允许I/O数据时,就调用这个设备的I/O程序处理数据传输,否则依次轮询下个设备是否准备好。
轮询方式使用:
1)查询指令:查询设备是否就绪
2)读/写指令:当设备就绪时,执行数据交换
3) 转移指令:当设备未就绪时,执行转移指令转向查询指令继续查询。

2. 中断方式
中断方式要求CPU与设备控制器及设备之间有中断请求线,控制器的状态寄存器有相应中断允许位。
CPU与设备间的数据传输过程:
1)进程发出启动I/O指令,CPU加载控制信息到设备控制器的寄存器,然后,进程继续执行或放弃CPU等待设备操作完成。
2)设备控制器检查状态寄存器,按照I/O指令要求,执行相应I/O操作,一旦传输完成,设备控制器通过中断请求线发出I/O中断信号。
3)CPU收到并响应I/O中断后,转向处理该设备的I/O中断例程执行。
4)中断处理例程执行数据读取操作,将I/O缓冲寄存器的内容写入内存,操作结束后退出中断处理程序,返回中断前的执行状态。
5)进程调度程序在适当时刻恢复得到数据的进程执行。
3. DMA方式

如果I/O设备能直接与内存交换数据而不占用CPU,CPU的利用率还可以提高,这就出现了直接存储器存取DMA方式,DMA方式需要以下设施:

DMA特点
DMA与内存间采用字传送,DMA与设备间可能是字位或字节传送,所以DMA还要设置数据移位寄存器、字节计数器等硬件逻辑。
4. 通道方式

CPU在执行主程序时遇到I/O请求,它启动指定通道上选址的外围设备,一旦启动成功,通道开始控制外围设备进行操作。CPU可执行其他任务并与通道并与通道并行工作,直到I/O操作完成。通道发出操作结束中断时,CPU才停止当前工作,转向处理I/O操作结束事件。

5.1.3 设备控制器


I/O软件原理

5.2.1 I/O软件设计目标和原则

总体设计目标

要考虑的问题

5.2.2 I/O中断处理程序

I/O中断的类型和功能

I/O中断的处理原则

5.2.3 I/O设备驱动程序
设备驱动程序包括与设备相关的代码,其工作是:
把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行,如设备名转化为端口地址,逻辑记录转化为物理记录、逻辑操作转化为物理操作等。

设备驱动程序从与设备无关的软件中接收抽象的I/O请求,一条典型的请求是读第n块。

如果请求到来时驱动程序空闲,则立即执行。如果它正在处理另一条请求,它将该请求挂在等待队列中。

设备驱动程序主要功能:

cout=write(fd,buffer,nbytes);

I/O操作执行步骤

上一篇下一篇

猜你喜欢

热点阅读