操作系统 课堂笔记 第五章 设备管理

第五章 设备管理

5.1 本章导学

基本内容:

(1)I/O系统的硬件组织;
(2)I/O系统的软件组织;
(3)缓冲管理;
(4)设备分配;
(5)磁盘存储器的管理。

学习重点:

(1)设备控制器;
(2)通道和总线的概念;
(3)驱动程序;
(4)设备无关性;
(5)多种缓冲区的特点;
(6)设备分配的过程;
(7)磁盘的基本工作原理和性能的优化。

5.2 设备管理概述

设备管理的目标:

(1)实现数据传输与交换;
(2)提高效率;
(3)提供接口;
(4)统一管理。

I/O管理的功能:

(1)实现设备并行性和缓冲区的有效管理;
(2)提供与进程管理系统的接口;
(3)进行设备分配;
(4)监视设备状态。

I/O应用接口:是指操作系统提供的的一种接口与技术,使用户程序能够以标准的、一致的方式对待各种不同类型的I/O设备。

5.3.1 设备管理器

I/O设备:
传输速率分:

(1)低速设备。Byte
(2)中速设备。KB
(3)高速设备。MB

按设备的共享属性分:

(1)独占设备;
(2)共享设备;
(3)虚拟设备。

设备控制器

(1)设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是CPU与I/O设备之间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,以使处理机从繁杂的设备控制事务中解脱出来。
(2)设备控制器的复杂性因不同设备而异,相差甚大,于是可以把设备控制器分成两类:一类是用于控制字符设备的控制器,另一类是用于控制块设备的控制器。
(3)在微型机和小型机中的控制器,常做成印刷电路板卡的形式,插入计算机或集成在主板上。
(4)有些控制器还可以处理两个、四个或八个同类设备。

控制器的功能

(1)接受和识别CPU发送的命令。
(2)实现CPU与控制器、控制器与设备间的数据交换。
(3)随时让CPU了解设备的状态。
(4)识别设备的地址。

控制器的组成

(1)设备控制器与CPU的接口:该接口用于实现设备控制器与CPU之间的通信,其中有三类信号线数据线、地址线、控制线。数据线通常与两类寄存器相连接:数据寄存器,控制/状态寄存器。
(2)设备控制器与设备的接口:在一个设备控制器上可以连接一台或几台设备。相应地,在控制器中就有一个或多个设备接口;一个接口连接一台设备,在每个接口中都有数据、控制和状态三种类型的信号。
(3)I/O逻辑:用于对I/O的控制,通过一组控制线与CPU交互;CPU利用该逻辑相控制器发送I/O命令;I/O逻辑对接收到的命令进行译码。

5.3.2 通道和总线

I/O通道:通常又称I/O处理机,是一个独立于CPU的专管输入、输出控制的处理机,它控制设备与内存直接进行数据交换。有了通道以后,CPU与通道之间的关系是主从关系,CPU是主设备,通道是从设备。

采用通道方式实现数据传输

(1)CPU向通道发I/O指令,命令通道开始工作,CPU就可以进行其他数据处理。
(2)通道接收到CPU的I/O指令后,从内存中取出相应的通道程序,通过执行通道程序完成I/O操作。
(3)当I/O操作完成(或出错)时,通道以中断方式中断CPU正在执行的程序,请求CPU处理。

5.4.1 驱动程序

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

(1)I/O软件的设计目标就是将软件组织成一种层次结构,底层的软件用来屏蔽I/O硬件的细节,从而实现上层的设备无关性,高层软件则主要为用户提供一个统一、规范、方便的接口。
(2)为了实现这个目标,操作系统把I/O软件组织分成以下层次:中断处理程序、设备驱动程序、与设备无关的I/O软件、用户层的I/O软件。

中断处理程序:在设备控制器的控制下,I/O设备完成了I/O操作后,控制器便向CPU发出一个中断请求,CPU响应后便转向中断处理程序。

中断处理的过程
中断请求->判断中断响应条件->关中断->保存被中断现场->分析中断原因,转入中断处理程序->执行中断处理程序->恢复现场->开中断->返回中断点。

设备驱动程序

(1)所谓设备驱动程序是指驱动物理设备和DMA控制器或I/O控制等直接进行I/O操作的子程序集合。
(2)设备驱动程序主要负责启动指定设备,即负责设置与相关设备有关的寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。
(3)其具体处理过程是:用户进程发出I/O请求->系统接受这个I/O请求->设备驱动程序集体完成I/O操作->I/O完成后,用户进程重新开始执行。

I/O请求处理过程

(1)用户进程发出I/O请求。
(2)执行到与I/O请求相对应的系统调用后,转去执行操作系统的核心程序,此时进程的状态由用户态转到核心态。
(3)设备驱动程序接受来自上层与设备无关软件的抽象请求,并执行。
(4)I/O完成后,由通道(或设备)发出结束中断信号。
(5)CPU接到中断请求后,如果条件符合(优先级),则响应中断,然后转去执行响应的中断处理程序,唤醒因等待I/O完成而睡眠的进程,调度用户进程继续执行。

设备驱动程序有如下功能:

(1)可将接收到的抽象要求转换为具体要求。
(2)接受用户的I/O请求。设备驱动程序将用户的I/O请求排在请求队列的队尾,检查I/O请求的合法性,了解I/O设备的状态,传递有关参数等。
(3)取出请求队列中队首请求,将相应设备分配给它。然后启动该设备工作,完成指定的I/O操作。
(4)处理来自设备的中断,及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断程序进行处理。

5.4.2 设备无关性

与设备无关的I/O软件

(1)为了提高操作系统的可扩展性和适应性,人们提出了设备无关性(设备独立性)的概念。
(2)其含义是:用户编写的应用程序独立于具体使用的物理设备,即使设备更换了,应用程序也不用改变。
(3)所谓逻辑设备是实际物理设备属性的抽象,它并不局限于某个具体设备。

设备无关性的优点

(1)使得设备分配更加灵活。
(2)可是实现I/O重定向。

设备无关的软件的功能

(1)向用户层软件提供统一接口。
(2)设备命名。
(3)设备维护。
(4)提供一个独立于设备的块
(5)对独占设备的分配与回收。
(6)缓冲管理。
(7)差错控制。

用户层的I/O软件:
用户层的I/O软件是I/O系统软件的最上层软件,负责与用户和设备无关的I/O软件通信,即它面向程序员,当接收到用户的I/O指令后,把具体的请求发送到设备无关的I/O软件,进行进一步处理。

SPOOLing系统

(1)SPOOLing是外部设备联机并行操作的缩写,是关于慢速字符设备如何与计算机主机交换信息的一种技术,称为“假脱机技术”。
(2)SPOOLing技术实现设备管理时的特征:提高了I/O速度,将独占设备改造成共享设备。

SPOOLing系统的特点

(1)提高了I/O速度——假脱机。
(2)设备并没有分配给任何进程。
(3)实现了虚拟设备功能。

5.5 缓冲管理

缓冲的引入

(1)外设与CPU速度不匹配;
(2)“瓶颈”现象;
(3)减少对CPU的中断。

引入缓冲技术的优点

(1)缓和CPU与I/O设备之间速度不匹配的矛盾;
(2)提高CPU、通道与I/O设备间的并行性;
(3)减少对CPU中断次数,放宽CPU对中断响应时间的要求。

单缓存和双缓冲:
单缓冲

(1)最简单的缓冲形式;
(2)单向存放输入数据或输出数据;
(3)不能解决外设之间的并行问题。

双缓冲:为某一设备设置两个缓冲区,当一个缓冲区中的数据尚未被处理时可使用另一个缓冲区存放从设备读入的数据,一次来进一步提高CPU和外设的并行程度。

循环缓冲:使用缓冲区数据Getbuf,释放缓冲区Releasebuf。

缓冲池

(1)缓冲池由内存中的一组缓冲区构成。
(2)操作系统与用户进程将轮流地使用各个缓冲区,以改善系统性能。

缓冲池的组成

(1)三个队列:空闲缓冲区队列emq、输入队列inq、输出队列outq。
(2)四种工作缓冲区:收容输入数据的缓冲区、提取输入数据的缓冲区、收容输出数据的缓冲区、提取输出数据的缓冲区。

缓冲池管理的基本操作:

(1)Getbuf:用于从type所指定的队列的队首摘下一个缓冲区。
(2)Putbuf:用于将由参数number所指示的缓冲区挂在type队列上。

5.6 设备分配

设备分配中的数据结构
设备分配时所需的数据结构主要有:

(1)设备控制表DCT。
(2)控制器控制表COCT。
(3)通道控制表CHCT。
(4)系统控制表SDT。

除了以上四种主要的数据结构外,还有:

(1)设备数据块DDB。
(2)设备分配块DAB。
(3)I/O请求包IRP。

设备分配时应考虑的因素:
设备的固有属性

(1)独占性;
(2)共享性;
(3)虚拟性。

设备分配算法

(1)先来先服务。
(2)优先级法。

设备分配中的安全性

(1)安全分配方式:每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒;使得进程阻塞后不可能再请求任何资源,从而防止发生死锁。
(2)不安全分配方式:进程再发出I/O请求后仍继续运行,需要时又发出第二个I/O请求、第三个I/O请求等。仅当进程所请求的设备已经被另一进程占用时,请求进程才进入阻塞状态;一个进程可同时操作多个设备,使进程推进迅速,但可能造成死锁。

独占设备的分配程序

(1)分配设备。
(2)分配控制器。
(3)分配通道。

5.7 磁盘存储器管理

磁盘性能简述:

(1)数据的组织和格式:磁头、磁道、扇区。
(2)磁盘的类型:硬盘、软盘。

磁盘访问时间

(1)寻道时间。
(2)旋转延迟时间。
(3)传输时间。

磁盘调度

(1)先来先服务FCFS:根据进程请求访问磁盘的先后次序进程调度。
(2)最短寻道时间优先SSFT:选择与当前磁头所在的磁道距离最近的先访问。
(3)扫描算法SCAN:不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。
(4)循环扫描算法CSCAN:磁头单向移动扫描循环。

磁盘高速缓存

(1)磁盘的I/O速度远低于对内存的访问速度,通常要低上4~6数量级。因此,磁盘的I/O已经成为计算机系统的瓶颈。于是众多方法被用来提高磁盘I/O的速度,其中最主要的技术便是采用磁盘高速缓冲。
(2)这里的磁盘高速缓冲,指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓冲指一组在逻辑上属于磁盘,而物理上驻存在内存中的盘块。

提高磁盘I/O速度的其他方法:

(1)提前读。
(2)延迟写。
(3)优化物理块的分布。
(4)虚拟盘。
(5)磁盘冗余阵列。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三元湖有大锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值