第6章 设备管理 辅导与自测
6.1 本章知识点
设备管理是指操作系统对除CPU和内存以外对所有设备的管理,与硬件紧密相关。 本章的主要知识点为: (1)设备分类
按照工作特性将设备分成存储设备和输入/输出设备两大类:存储设备主要是计算机用来存储信息的设备,如磁盘(硬盘和软盘)、磁带等;输入设备是计算机用来接受来自外部世界信息的设备,例如终端键盘输入、卡片输入机、纸带输入机等;输出设备是将计算机加工处理好的信息送向外部世界的设备,例如终端屏幕显示或打印输出部分、行式打印机、卡片输出机等。 存储设备也称为块设备,输入/输出设备也称为字符设备。
根据设备的使用性质可将设备分成独占设备、共享设备和虚拟设备三种。其中虚拟设备是利用某种技术把独占设备改造成可由多个进程共用的设备,这种设备并非物理上变成了共享设备,而是用户使用它们时“感觉”它是共享设备。 (2)设备管理的功能
外部设备种类繁多,其特性和操作方式又有很大的差别,设备管理的目标是方便用户使用设备;实现设备的独立性;提供设备的使用效率;对各种外设进行统一的管理。
操作系统中设备管理的功能简单地说就是:监视设备状态;进行设备分配;完成I/O操作;缓冲管理与地址转换。 (3)设备分配技术
1
设备分配技术主要有:独占分配、共享分配和虚拟分配。独占分配适用于独占设备,系统效率低;共享分配适用于高速、大容量直接存储的共享设备,设备的利用率较高;虚拟分配技术利用共享设备去实现独占设备的功能,从而使独占设备“感觉上”成为可共享的、快速的I/O设备。 实现虚拟分配最成功的技术是SPOOLing(外部设备联机并行操作),也称假脱机技术。SPOOLing系统用常驻内存的进程去模拟一台外围机,用一台主机就可完成脱机技术中需用三台计算机完成的工作。系统一般分为存输入、取输入、存输出、取输出4个部分。 常用的设备分配算法有先来先服务算法和优先级高的优先服务算法。 (4)设备驱动程序
设备驱动程序控制设备的打开、关闭、读、写等操作,它的功能主要有:接受用户的I/O请求;取出请求队列中队首请求,将相应设备分配给它;启动该设备工作,完成指定的I/O操作;处理来自设备的中断。
设备驱动程序在系统中处于核心空间,位于设备控制器的上层,目的是对核心I/O子系统隐藏各个设备控制器的差别。 (5)缓冲技术
引入缓冲技术的主要目的是:① 缓和CPU与I/O设备间速度不匹配的矛盾;② 提高它们之间的并行性;③ 减少对CPU的中断次数,放宽CPU对中断响应时间的要求。
设置缓冲区的原则是:如果数据到达率与离去率相差很大,则可采用单缓冲方式;如果信息的输入和输出速率相同(或相差不大)时,则可用双缓冲区;对于阵发性的输入、输出,可以设立多个缓冲区。
(6)磁盘调度和管理
磁盘是计算机常用的存储设备。硬盘的组成结构为磁头、柱面和扇区。为了存取磁盘中的信息,磁头需要三部分时间:寻道时间、旋转延迟时间和传输时间。而寻道时间远远大于 2 后两部分时间,减少平均寻道时间可以有效改善系统性能。常用的磁盘调度算法有:先来先服务、最短寻道时间优先法和电梯法。 (7)Linux系统设备管理
在Linux系统中,设备作为特殊文件对待,所以用户对设备的使用方式与对文件的使用方式相同。系统会根据主、次设备号调用相应的设备驱动程序。
Linux系统中对设备管理具有下列共性:① 每个设备都对应文件系统中的一个索引节点,都有一个文件名;② 应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接;③ 对设备的使用类似于对文件的存取;④ 设备驱动程序是系统内核的一部分,它们必须为系统内核或者它们的子系统提供标准的接口;⑤ 设备驱动程序利用一些标准的内核服务,如内存分配等。
6.2 典型例题解析
【例1】在操作系统中,用户在使用I/O设备时,通常采用()。 A.设备的绝对号 B.设备的相对号 C.虚拟设备号 D.设备名 答案 B
分析 这部分内容与设备标识有关。
一般来说,系统按照某种原则为每台设备分配一个唯一的号码,用作硬件(设备控制器)区分和识别设备的代号,称作设备的绝对号。它如同内存中每一单元都有一个地址那样。 用户在编写程序时就不能通过设备的绝对号来使用设备,用户只需向系统说明所要使用的设备类型,如是打印机,还是显示器。为此,操作系统为每类设备规定了一个编号,称为设备的类型号。如在UNIX系统中,类型号被称为主设备号。该系统中所有块设备的设备名由两部分构成:主设备号和次设备号,前者表示设备类型,后者表示同类设备中的相对序号。如rfd0,rfd1分别表示第一个和第二个软盘驱动器。
3
用户程序往往会同时使用几台同类设备,并且每一台设备都可能多次使用。这样,用户程序必须向操作系统说明当时它要用的设备是哪类设备的第几台。这里的“第几台”是设备相对号,是用户自己规定的所用同类设备中的第几台。应与系统为每台设备规定的绝对号相区别。 用户程序中提出使用设备的申请时,使用系统规定的设备类型号以及用户自己规定的设备相对号,由操作系统进行“地址转换”,变成系统中的设备绝对号。
【例2】设备管理的主要程序之一是设备分配程序,当进程请求在主存和外设之间传送信息时,设备分配程序分配设备的过程通常是()。 A.先分配设备,再分配控制器,最后分配通道 B.先分配控制器,再分配设备,最后分配通道 C.先分配通道,再分配设备,最后分配控制器 D.先分配通道,再分配控制器,最后分配设备 答案 A
分析 在一般大型计算机系统中,主机对外部设备的控制可以分为四个层次来实现,即主机、通道、控制器和设备。I/O系统的四级结构如下图所示。
4
外部设备通常由机械和电子两部分组成。由于许多设备往往不是同时使用的,为降低成本,往往将电子部分从设备中独立出来构成一个部件,称为控制器,一个控制器可交替地控制几台同类设备。
通道相当于一台专门处理I/O操作的小型处理机,它接受主机的委托,独立地执行通道程序,使控制器进行工作,以实现内存和外设之间的成批数据传输。当主机委托的I/O任务完成后,通道发出中断信号,请求CPU处理。这样,就使得CPU基本上摆脱了I/O的处理工作,因而就大大提高了CPU和外设工作的并行程度。
通常,一个CPU可以连接多个通道,一个通道可以连接多个设备控制器,一个设备控制器可以连接同类型的多台设备。有的系统还可将一台设备连接到几个设备控制器上,或把一个设备控制器连接到几个通道上,实现多路交叉连接。设备分配的过程是先分配设备,再分配控制器,最后分配通道。
【例3】用户编制的程序与实际使用的物理设备无关是由()功能实现的。 A.设备分配 B.设备驱动 C.虚拟设备 D.设备独立性 答案 D
分析 设备独立性是设备管理要达到的目标之一,就是说,用户程序应与实际使用的物理设备无关,由操作系统考虑因实际设备不同而需要使用不同的设备驱动程序等问题。这样,用户程序的运行就不依赖于特定的设备是否完好、是否空闲,而由系统合理地进行分配,不论实际使用同类设备的哪一台,程序都应正确执行。还要保证用户程序可在不同设备类型的计算机系统中运行,不致因设备型号的变化而影响程序的工作。
在已经实现设备独立性的系统中,用户编写程序时一般不再使用物理设备,而使用虚拟设备,由操作系统实现虚、实对应。如在UNIX系统中,外部设备作为特别文件,与其它普通文件一样由文件系统统一管理。
【例4】SPOOLing技术可以实现设备的()分配。
5
A.独占 B.共享 C.虚拟 D.物理 答案 C
分析 常用的设备分配技术有独占设备的分配、共享设备的分配和虚拟设备的分配。而SPOOLing技术可以实现设备的虚拟分配,它将独占设备改造为共享设备,解决了高速CPU与慢速外设之间的匹配问题。
下图所示为SPOOLing系统的工作过程。
采用SPOOLing技术后,即使系统只有一台输入机和一台打印机也能使两个以上要求使用输入机和打印机的作业同时执行,且每个作业都感到自己分得了速度极高的输入机和打印机。我们说采用这种技术的操作系统为用户提供了虚拟设备。
【例5】假设一个磁盘有200个磁道,编号从0~199。当前磁头正在143道上服务,并且刚刚完成了125道的请求。如果寻道请求队列的顺序是:
86, 147, 91, 177, 94, 150, 102, 175, 130
问:为完成上述请求,下列算法各自磁头移动的总量是多少? ① FCFS ② SSTF ③ 电梯法
答案 FCFS为565;SSTF为162;电梯法为125。
6
分析,按照请86,采用先来先服务磁盘调度算法FCFS ① 磁头在143道上,下一个请求为
。再道上,移动磁道数为143-86=57求到来的次序依次响应,于是磁头从143道移动到86 道,依此类推,进行调度的情况为: 从86道移动到147 移动磁道数下一磁道57 86 61 147 56 91 86 177 83 94 56 150 48 102 175 73 130 45
磁头移动总量为565。
② 采用最短寻道时间优先磁盘调度算法SSTF,当前磁头在143道上,选择的下一个请求距当前磁头所在位置应具有最小的寻道时间。比较离143道最近的两个请求:130和147,可知,从143道移动到147道花费的时间最短,仅为4,于是磁头移动到147道上。依此类推,进行调度的情况为:
下一磁道 移动磁道数
7
4 147 3 150 20 130 28 102 8 94 3 91 5 86 89 175 2 177
。磁头移动总量为162采用电梯磁盘调度算法,要按照磁头移动的方向对请求进行扫描法,一侧的所有请 ③
道道上服务,并且刚刚完成了125143求完成后,才掉头回扫。题中的条件“当前磁头正在道。根据电梯法,磁头要继续向数大的方向143道到的请求”说明磁头移动的方向是从125道请求处理完,这时这…道,,直到177147扫描下去,于是先遇到道的请求,然后是150,最后处理的是道的请求,…一侧的请求全部完成了。于是磁头掉头回扫,首先碰到130 86道的请求。具体的调度情况为: 移动磁道数下一磁道 4 147 3 150
8
25 175 2 177 47 130 28 102 8 94 3 91 5 86
。磁头移动总量为125 6.3 练习题
一、选择题(选择一个正确答案的代码填入括号中) 下列设备中,不属于独占设备的是()。 1. D.磁带C.终端 A.打印机 B.磁盘 2. 大多数低速设备都属于()设备。 SPOOLing
. DC.共享 .虚拟 BA .独占
把原来独占的设备改造成为能为若干用户共享的设备,3. 通过硬件和软件的功能扩充, 这种设备称为()。 B.块设备A .存储设备 .虚拟设备 .共享设备 DC
计算机系统启动外围设备是按()启动的。 4.
9
A.设备的绝对号 B.设备的相对号 C.通道号 D.设备名 5. 通道是一种()。
A.I/O端口 B.数据通道 C.I/O专用处理机 D.软件工具
6.下列操作系统常用的技术中,()是一种硬件机制。
技术.SPOOLing.交换技术 B A D.缓冲区技术 C.通道技术 7. CPU启动通道后,设备的控制工作由()。