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