操作系统(第七单元)

第七章 设备管理

7.1 I/O 管理概述

I/O管理的功能 :
监视设备的状态
进行设备分配
完成I/O操作
缓冲管理

I/O硬件组成:
单总线
传统三级总线
采用南北桥的多级总线(PCI总线、E/ISA总线)
采用I/O通道的多级总线

设备的类型:

  1. 设备管理划分
    块设备(存储设备)
    字符设备
    网络设备

  2. 交互功能划分
    人机交互设备
    存储设备
    机机通信设备

  3. 信息传递方向划分
    输入设备
    输出设备
    输入输出设备

  4. 共享特征划分
    独享设备
    共享设备

设备之间的差异
(1)数据速率。
(2)数据传输单位。
(3)管理程序。文件管理、存储管理、虚拟存储管理
(4)控制的复杂度。
(5)数据编码。
(6)出错条件。

设备控制器分为两类:
一类用于控制字符设备控制器,另一类控制块设备控制器。

设备控制器的功能
1)接收和识别CPU发来的命令——控制寄存器
2)数据交换(CPU-控制器,控制器-设备)——数据寄存器
3)了解设备的状态(就绪否),报告给CPU——状态寄存器
4)地址识别——地址译码器
5)数据缓冲区(IO/设备和CPU速率不匹配)
6)差错控制(若数据有误,报告CPU,CPU要求重传)

设备控制器的组成
(1)控制器与CPU之间接口——用于控制设备与总线之间交换数据。
数据寄存器:用于存放CPU与设备间的数据
控制/状态寄存器:用于存放从CPU送来的控制信息或设备 状态信息。

(2)控制器与设备之间接口——用于根据CPU发来的地址信号,去选择一个设备接口。
(3)I/O逻辑——用于实现对设备的控制。由I/O逻辑对收到的地址进行译码,在根据译出的命令对所选设 备进行控制。

设备通道
当外设很多时,CPU 负担过重,为此在CPU与控制器之间增加通道。
通道是特殊的处理机,与处理机区别:

  1. 它指令单一。 仅限于与I/O相关指令。
  2. 没有自己内存。 与CPU共享主机内存。

通道的类型:
字节多路通道(按时间片轮询,共享主通道)
数组选择通道
数组多路通道

通道的连接方式:
单通路I/O(容易引起瓶颈)
多通路

7.2 I/O控制方式

I/O数据控制方式的发展经历了四个阶段 :

  1. 程序直接控制方式 (轮询):
    CPU需要等待设备就绪,且参与数据传送
  2. 中断驱动方式:
    CPU无需等待设备就绪,但响应中断后参与数据传送
  3. DMA控制方式 :
    CPU在数据传送开始和结束时参与,与主存进行数据交换时不参与
  4. 通道方式

磁盘控制器DMA
命令寄存器CR
内存地址寄存器MAR
数据寄存器DC
CAW----通道程序的内存起始地址
CCW----通道程序指令寄存器
CSW----存放通道程序结果的寄存器

通道指令
格式:操作码 计数 内存地址 通道程序结束位P 记录结束位R

7.3 I/O系统

设备管理层次:I/O硬件、I/O软件

I/O硬件
I/O设备、以及接口线路、控制器、通道
I/O软件
1)用户空间I/O软件(用户态)
2)系统I/O软件(核心态) :设备独立性软件 、设备驱动软件、中断处理程序

设备独立性又称设备无关性。

设备独立性的优点

  1. 设备分配时的灵活性
  2. 易于实现I/O重定向
  3. 设备独立性的实现——逻辑设备表
  4. 操作系统实现逻辑设备到物理设备的转换。

设备的固有属性:
独享设备、共享设备、虚拟设备

Spooling(假脱机)技术是虚拟技术和虚拟分配的实现

Spooling组成

  1. 外存上设输入井、输出井
  2. 内存设输入缓冲区、输出缓冲区
  3. 系统设置预输入程序和预输出程序

Spooling特点

  1. 将一台设备虚拟成多台设备
  2. 将低速设备虚拟成快速设备
  3. 提高了I/O的速度。
  4. 将独占设备改造为共享设备。
  5. 实现了虚拟设备功能。

设备分配

系统设备表(SDT)系统设置一张系统设备表,记录了系统中全部设备的情况,每个设备对应一个表目。
设备控制表(DCT)系统为每个设备配置一张DCT,用于记录本设备情况。
控制器控制表(COCT)每个设备控制器都会对应一张COCT。操作系统会根据COCT的信息对控制器进行操作管理,每个控制器可以控制多个设备。
通道控制表(CHCT)每个通道都会对应一张CHCT。操作系统会根据CHCT的信息对通道进行操作管理,每个通道可以控制多个控制器。

设备驱动程序的特点

  1. 驱动程序是与设备无关的软件和设备控制器之间通信和转换的程序。
  2. 驱动程序,与设备控制器和I/O设备的硬件特性,紧密相关
  3. 驱动程序与I/O设备所采用的I/O控制方式紧密相关。
  4. 由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
  5. 驱动程序应允许可重入,一个正在运行的驱动程序常会在 一次调用完成前被再次调用。

I/O中断是由外部设备引起,故又称外中断。
由CPU内部时间所引起的中断,称为陷入或者内中断。

中断优先级:
用户级线程中断优先级0,核心机线程中断优先级为1
硬中断优先级为3-31,软中断优先级为1-2。
硬中断由硬件产生相应的中断请求,软中断响应不及时。

对多中断源的处理方式 :屏蔽中断、嵌套中断
INTR寄存器 :有中断为1 没有中断为0
程序状态字PSW是8位寄存器,用于存放程序运行的状态信息。
程序计数器PC用来存放下一条指令的地址的。
访管中断:进程开始输入输出,进行系统调用时执行
I/O中断:进程输入输出结束,打断另一个进程运行时执行

7.4磁盘管理

磁盘类型:固定头磁盘、移动头磁盘
磁盘访问:寻道、旋转延迟、传输数据

一次磁盘访问时间T=Ts寻道时间+Tr旋转延迟时间+Tt传输时间=s磁盘启动时间+m平均跨越一道的时间×n跨越的道数+1/2r旋转速度+b要传送的字节数/r旋转速度N一个磁道中的字节数

磁盘访问:顺序访问、随机访问

提高磁盘I/O速度:

  1. 研制更高性能的设备,加快其读写速度。
  2. 设置高速大容量的设备缓冲区。
  3. 采用好的I/O调度算法。

磁盘调度算法:
先来先服务FCFS:按磁盘访问请求到来的先后顺序进行服务
最短寻道优先SSTF:从当前磁头位置选择最短寻道时间的请求,即选择与当前磁头位置最近的待处理请求
扫描算法SCAN(电梯调度):沿磁臂当前移动方向由近及远依次满足磁盘访问请求,至当前方向再无请求时磁臂转向,继续由近及远依次满访问请求
循环扫描算法C-SCAN:SCAN调度的变种,在一个移动方向上,随着移动不断处理请求。反向时空挡放回,直到最远请求,然后转向移动时再处理请求。
N-STEP-SCAN算法:将磁盘请求队列分成若干个长度为N的子队列,用FCFS依此处理这些子队列。在每个队列中用SCAN。
FSCAN算法:简单化为二个队列: 一个队列为:当前请求磁盘I/O的进程形成的队列。由SCAN处理。另一个队列为:新出现的请求磁盘I/O的进程形成的队列,这样一来,新的请求下次扫描时再处理。

平均寻道长度=n磁臂跨越道数/r磁盘访问次数

7.5缓存管理

缓冲的定义:
缓冲是在通信问题中,为了使通信双方的速度匹配而引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配 。

缓冲类型 :

  1. CACHE(CPU内部)
  2. I/O设备或控制器内部的纯硬件缓冲区 (打印机内部缓冲区,磁盘控制器纯硬件缓冲区)
  3. 内存开辟的缓冲区 (I/O、文件)
  4. 脱机I/O技术和SPOOLing技术 (外存、输入输出井)

缓冲管理处理一个数据块所用时间:

无缓冲时:T=t输入+t计算
单缓冲时:T=max(t计算,t输入)+t传输
双缓冲时:T=max(t传输+t计算,t输入)

循环缓冲区:用于两者速度相差甚远
以上的缓冲只能用于某一进程,他们属于专用缓冲。为了提高缓冲区的利用率,可采用公用缓冲池

四种工作缓冲区:
用于收容输入数据的工作缓冲区hin :输入进程输入数据
用于提取输入数据的工作缓冲区sin :计算进程输入数据
用于收容输出数据的工作缓冲区hout :计算进程输出数据
用于提取输出数据的工作缓冲区sout:输出进程输出数据

高速缓存
形式:一种是在内存开辟独立存储空间作为磁速缓存,大小固定;一种是吧未利用内存空间作为一个缓冲池。
数据交付:将高速缓存中的数据传送到请求进程的内存工作区。
指针交付:只将指向高速缓存中某区域的指针交付给请求者进程。
置换算法需要考虑:最近最久未使用、访问频率、可预见性、数据一致性
提高磁盘I/O其他方法:预先读、延迟写、虚拟盘

你可能感兴趣的:(操作系统)