系统架构师【操作系统:设备管理】
一.简介
在计算机系统中,除了处理器和内存外,其他大部分硬件设备统称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。这些设备种类繁多,特性各异,操作方式的差异很大,从而使操作系统的设备管理变得十分复杂。
二.数据传输控制方式
设备管理的主要任务之一是控制设备和内存或CPU之间的数据传输。选择和衡量控制方式的原则如下:
- 数据传输速度足够快,能满足用户的需要且不丢失数据。
- 系统开销小,所需的处理控制程序少。
- 能充分发挥硬件资源的能力,使得I/O设备尽量处于使用状态中,而CPU等待时间少。
外围设备和内存之间常用的数据传输控制方式主要有以下几种:
- 程序控制方式。处理器启动数据传输,然后等设备完成相应操作。
- 中断方式。程序控制方式不能实现并发。中断方式的数据传输中,进程启动 数据传输后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请求,中断处理程序对数据传输工作处理后,让相应进程变成就绪状态。之后,该进程就可以得到所需的数据。
- 直接存储访问DMA方式。指外部设备和内存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器外,DMA控制器中还包括传输字节计数器、内存地址寄存器等。DMA方式采用窃取/挪用处理器的工作周期和控制总线而实现辅助存储器和内存之间的数据交换。有的DMA方式也采用总线浮起方式传输大批量数据。
- 通道方式。通道又称为输入/输出处理器IOP,可以独立完成系统交付的输入/输出任务,通过执行自身的输入/输出专用程序进行内存和外设之间的数据传输。主要有3种通道:字节多路通道、选择通道和成组多路通道。
三.虚设备与SPOOLING技术
采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,采用一组程序或进程模拟一台输入/输出处理器。
SPOOLING技术利用了专门的外围控制机将低速I/O设备上的数据传输到高速设备上,或者相反。但是当引入多道程序后,完全可以利用其中的一道程序来模拟脱机输入时的外围控制机的功能,把低速的I/O设备上的数据传输到高速磁盘上;再利用另一道程序来模拟脱机输出时外围控制机的功能,把高速磁盘上的数据传输到低速的I/O设备上。这样便可以在主机的控制下实现脱机输入、输出的功能。此时的外围操作与CPU对数据的处理同时进行。
SPOOLING系统必须有高速、大容量并且可随机存取的外存【磁盘、磁鼓】支持。