第6章 设备管理

文件系统确定文件应该怎样转换以及确保文件的安全使用,而设备管理实现文件信息在存储介质与主存储器之间的传送,它们共同为用户使用文件提供方便。

6.1 设备管理的功能

计算机的外围设备可以分成两大类:一类是存储型设备,另一类是输入/输出型设备。

把存储器与外围设备之间的信息传送操作称为输入/输出操作。对于存储型设备,输入/输出操作的信息传送单位为“块”;对输入/输出型设备,输入/输出操作的信息传送单位为“字符”。

设备管理是操作系统中较为庞杂而繁琐的部分。它的主要功能如下:

1)实现对外围设备的分配与回收

2)实现外围设备的启动

3)实现对磁盘的驱动调度

4)处理外围设备的中断事件

5)实现虚拟设备

6.2 外围设备的分类

从使用的角度来分析外围设备的特性,可以把外围设备分成两大类,一类是只能让一个作业独占使用的设备,如输入机、打印机等;另一类是可以由几个作业同时使用的设备,如磁盘机。

把在作业执行期间只允许一个作业独占使用的设备称为独占设备。

可让若干个作业同时使用的设备称为可共享设备。

6.3 独占设备的管理

6.3.1 设备的绝对号与相对号

为了对这些设备进行管理,计算机系统对每一台设备都要进行登记,且为每一台设备确定一个编号,以便区分和识别,这个确定的编号称为设备的绝对号。

由用户对自己需要使用的若干台同类设备给出的编号称为设备的相对号。

6.3.2 独占设备的分配

作业申请独占设备时,应指定所需要的是什么设备。指定的方式有两种:一种是指定设备的绝对号,另一种是指定设备类、相对号。

6.4 磁盘的驱动调度

6.4.1 访问磁盘的操作时间

磁盘执行一次输入/输出操作所需花费的时间,由寻找时间、延迟时间和传送时间三部分组成。

寻找时间:磁头在移动臂带动下移动到指定柱面所需的时间。这是机械动作,花费的时间较长。

延迟时间:将指定扇区旋转到磁头位置所需的时间。这与信息所在的扇区位置有关。

传送时间:由指定的磁头把磁道上的信息读到主存储器或把主存储器中信息写到磁道所需时间。

这项决定等待访问者执行次序的工作称为驱动调度,采用驱动调度策略称为驱动调度算法

对磁盘来说,调度包括“移臂调度”和“旋转调度”两部分。一般总是先进行移臂调度,再进行旋转调度。

6.4.2 移臂调度

根据等待访问者指定的柱面位置来决定次序的调度称为移臂调度。移臂调度的目的是尽可能地减少输入/输出操作中的寻找时间。

1.先来先服务调度算法

不考虑访问者要求访问的物理位置,而知识考虑访问者提出访问请求的先后次序。

2.最短寻找时间优先调度算法

最短寻找时间优先调度算法总是从等待访问者中挑选寻找时间最短的那个请求先执行,而不管访问者到来的先后次序。

3.电梯调度算法

电梯调度算法总是从移动臂当前位置开始沿着移动臂的移动方向去选择离当前移动臂最近的那个柱面的访问者。如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。

4.单向扫描调度算法

单向扫描调度算法也不管等待访问者的先后次序,总是从0号柱面开始向里扫描,按照各访问者所要访问的柱面位置的次序去选择访问者。移动臂到达最后一个柱面后,立即带动读写头快速回到0号柱面,返回时不为任何等待的访问者服务,返回后可再次进行扫描。

6.4.3 旋转调度

这种根据延迟时间来决定执行次序的调度称为旋转调度。

6.4.4 信息的优化分布

6.5 输入/输出操作的实现

6.5.1 通道结构和通道程序

1.通道结构

正是因为通道能单独地完成输入/输出操作,所以把通道也称为输入/输出处理机。

2.通道命令(Channel Command Word,缩写为CCW

为了使操作系统能用同样的手段来启动种类繁多特性各异的外围设备,计算机硬件提供一组“通道命令”。每一条通道命令规定了设备的一种操作。操作系统可以用若干通道命令来规定通道执行一次输入/输出操作应做的工作。这若干条通道命令就组成了一个通道程序

不同计算机系统的通道命令的格式可能不同,但一般都由命令码、数据主存地址、传送字节个数和标志码等组成。

3.通道地址字(Channel Address Word,缩写为CAW

这个用来存放通道程序首地址的主存固定单元称为通道地址字(CAW)。

4.通道状态字(Channel Status Word,缩写为CSW

通道在执行通道程序时,把通道和设备执行操作的情况随时记录下来。当通道程序执行结束时,被记录的执行情况也要存放到一个固定的主存单元中。这个单元称为通道状态字(CSW)。

6.5.2 外围设备的启动

一般来说,操作系统启动和控制外围设备完成输入/输出操作的过程大致可分为如下三个阶段。

1.准备阶段

2.启动I/O阶段

3.结束处理阶段

6.5.3 I/O中断事件的处理

I/O中断是通道和中央处理器协调工作的一种手段。通道借助I/O中断请求中央处理器进行干预,中央处理器根据产生的I/O中断事件了解输入/输出操作的执行情况。

I/O中断事件粗略地可以分为操作正常结束和操作异常结束两大类。

1.操作正常结束

当通道状态字中有通道结束、设备结束、控制器结束时,表示通道正确完成了通道程序所规定的操作,中央处理器启动的本次输入/输出操作正常结束。

2.操作异常结束

当通道发现有设备故障或设备特殊情况时就形成操作异常结束的I/O中断事件。

6.6 缓冲技术

把利用缓冲来缓解处理器与外围设备之间工作速度不匹配的矛盾而采用的技术称为缓冲技术。

操作系统中采用的缓冲技术有单缓冲技术、双缓冲技术和缓冲池技术。

6.6.1 单缓冲技术

这是一种最简单的缓冲技术,操作系统在主存储器的系统区中设立一个缓冲区。

6.6.2 双缓冲技术

双缓冲技术是利用两个缓冲区来完成输入/输出操作的工作。

6.6.3 缓冲池技术

操作系统可以在主存中设置一组缓冲区,我们把这一组缓冲区称为缓冲池。缓冲池中各缓冲区是系统的公共资源,可供各进程共享,并由操作系统统一分配和管理。

系统初始化时缓冲池中的各缓冲去都是未被使用的,我们称其为空缓冲区。

6.7 虚拟设备

6.7.1 为什么要提供虚拟设备

6.7.2 虚拟设备的实现

1.基本条件

实现虚拟设备必须有一定的硬件和软件条件为基础。

2.实现原理

3.实现技术

1)输入井和输出井

为了实现虚拟设备,必须在磁盘上划出称为井的专用存储空间,用以存放作业的初始信息和作业的执行结果。为了便于管理,把井又分成两部分:输入井和输出井。输入井中存放作业的初始信息。输出井中存放作业的执行结果。

2)斯普林系统(SPOOLING

操作系统中实现虚拟设备的功能模块是在计算机控制下通过联机的外围设备同时操作(Simultaneous Peripheral Operation On Line)来实现其功能的,这个功能模块的英文缩写为SPOOLING,所以称它为斯普林系统。

斯普林系统由预输入程序、井管理程序和缓输出程序三部分组成。

(3)数据结构

数据井中的作业有四种状态

输入状态 预输入程序启动了输入机正在把该作业的信息传输到输入井

收容状态 该作业的信息已经存放在输入井中,但尚未被选中执行

执行状态 作业已被选中并装入主存储器开始执行

完成状态 作业已执行结束,其执行结果在输入井中等待打印输出。

(4)功能实现

6.8 UNIX的设备管理

6.8.1 UNIX的设备和设备文件

1.块设备和字符设备

UNIX是按设备与主存之间信息交换的物理单位来对设备进行分类的。UNIX把设备分成两类:块设备和字符设备。

块设备以块为单位与主存交换信息,是用来存储信息的设备。有时也把块设备称为存储设备。

字符设备以字节为单位与主存交换信息,是用来接收外部信息或把处理好的信息传向外部的设备。有时也把字符设备称为输入/输出设备。

UNIX对每一类设备给出一个编号,称为主设备号。属于同一类的设备可能有若干台,为了标识某一台具体设备,UNIX对每一台设备给出一个编号,称为次设备号。

2.设备文件

UNIX系统把设备也当做文件来对待。每个设备都有一个文件名,并对它像文件那样进行操作。

6.8.2 UNIX的块设备缓冲技术

UNIX采用缓冲技术实现设备的读写操作。系统设置一批缓冲区,构成系统缓冲区池。

1.缓冲区控制块

UNIX为磁盘的读写操作设置了一组缓冲区。每个缓冲区由两部分组成:缓冲区数据区和缓冲区控制块。

缓冲控制块中的管理信息主要有状态标志、队列指针、设备号、字节数、块号和存放地址。

1)缓冲标志

描述了该缓冲区当前的状态。其状态有以下几种:

BUSY 表示缓冲区正在“忙”,或者说有进程对缓冲区进行存取

AVE  缓冲区中的数据是有效的

DELWR 延迟写标志,表示缓冲区中内容尚未写到磁盘上,如果要把缓冲区另作他用,则必须先把该缓冲区数据区中的内容写到磁盘上

WRITE 当前正在把该缓冲区数据区中的内容写到磁盘上

READ 当前正在把从磁盘读出的信息存入缓冲区

WAIT 表示有进程在等待使用该缓冲区

2.缓冲区队列

3.缓冲区队列管理

4.缓冲区的检索

猜你喜欢

转载自bsr1983.iteye.com/blog/1484761
今日推荐