Contents

操作系统(第六章)

设备管理

I/O系统组成

  1. I/O设备:打印机和磁盘
  2. I/O设备控制器
  3. I/O通道

四级结构

$存储器 \rightarrow I/O通道 \rightarrow I/O控制器 \rightarrow I/O设备$

  1. 总线

I/O控制方式(4种)

cpu与外部设备之间信息交换方式

  1. cpu与外部设备的关系
  2. 传输信息的方式

程序I/O方式

  1. 定义:cpu通过执行测试指令判断I/O设备状态busy
    1. 0
    2. 1
  2. cpu与I/O串行工作
  3. 每次只能传输一个字符

中断控制

  1. 定义:因为内部某些原因,cpu停止当前程序的执行而转去执行中断服务程序(I/O操作),当中断程序执行完以后,又返回到中断的程序继续执行

  2. 分类

    1. 硬中断
    2. 软中断
  3. 中断的过程

    1. 保存中断现场(入栈)
      1. PSW(状态寄存器)
      2. PC(程序寄存器)
    2. 转入中断服务程序执行($中断向量 \rightarrow 入口地址$)
    3. 返回中断(出栈):$PC+1 \rightarrow PC$

    数据寄存器:存放一个字符

    cpu与I/O设备在启动中断操作的时候只串行,而其他都是并行

    $中断频率高 \rightarrow cpu的干预多$

  4. 中断方式适用于打印机(字符设备)

DMA控制方式

  1. 定义:在DMA控制器的控制下,完成cpu与I/O设备的信息交换

  2. DMA控制器的组成

    寄存器,控制逻辑与I/O设备的接口

    四个寄存器:DR(数据寄存器),MAR(内存地址寄存器),DC(数据计数器),CR(命令/状态寄存器)

  3. 传输用系统总线

  4. cpu与I/O设备并行工作(周期的挪用)

    1. cpu执行简单指令(访问cpu寄存器)(几乎可以做到并行)
    2. cpu执行复杂指令(访问内存)(不可以并行)

中断驱动与DMA控制方式的区别

  1. 产生中断的频率不同
  2. 数据传输方式不同

I/O通道控制(了解)

I/O通道控制

缓冲区

缓冲的引入

  1. 缓和CPU与I/O设备间速度不匹配的矛盾
  2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
  3. 提高CPU和I/O设备之间的并行性

实现方法

  1. 内存(连续一片存储空间,作为缓冲区)

  2. 寄存器

    例:在分页系统中:快表(联想寄存器)

两种缓冲区(数据块处理时间的计算)

  1. 单缓冲:设置一个与数据块大小相等的缓冲区

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405031454133.png

    处理过程

    1. T:从I/O设备输入到单缓冲的时间
    2. M:从单缓冲取出数据传送到内存工作区的时间
    3. C:cpu执行时间

    其中,T,M为串行工作,T,C并行工作

    一个数据块处理:T+M+C

    多个数据块处理:MAX(T,C)+M

    例:假设把磁盘上一个数据块中的信息输入一单缓冲区的时间T为100us,将缓冲区的数据传送到用户区的时间M为50us,CPU对这一块数据进行计算的时间C为50us。请问系统对一块数据的处理时间为多少

    解:

    单个为:100+50+50=200us

    例:设系统缓冲区和用户工作区均采用单缓冲区,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90,问:进程从外设读入并分析2个数据块的最短时间是多少?

    解:

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405031501391.png

    $T_1+M_1+T_2+M_2+C_2$=100+5+100+5+90=300us

    例:已知有包括10个数据块的文件用单缓冲进行数据处理,其中从磁盘输入到缓冲区的时间是15us;再从缓冲区传送到内存时间为5us,最后对数据块执行时间为1us

    解:

    $T_1+M_1+C_{10}+(10-1) \times 20$=15+5+1+9 X 20=201us

  2. 双缓冲

    1. 缓冲区1
    2. 缓冲区2

    https://cdn.jsdelivr.net/gh/adan-ning/images/202405031511914.png

    处理过程

    1. T:从I/O设备输入到单缓冲的时间
    2. M:从单缓冲取出数据传送到内存工作区的时间
    3. C:cpu执行时间

    其中,T,M为并行工作,T,C并行工作

    一个数据块处理:T+M+C

    多个数据块处理:MAX(T,M+C)

    例:假设把磁盘上一个数据块中的信息输入一双缓冲区的时间T为100us,将缓冲区的数据传送到用户区的时间M为50us,CPU对这一块数据进行计算的时间C为50us。请问系统对一块数据的处理时间为多少?

    单个为:100+50+50=200us

    例:设系统缓冲区和用户工作区均采用双缓冲区,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90,问:进程从外设读入并分析2个数据块的最短时间是多少?

    解:

    $T_1+T_2+M_2+C_2$=100+100+5+90=295us

    例:已知有包括10个数据块的文件用双缓冲进行数据处理,其中从磁盘输入到缓冲区的时间是15us;再从缓冲区传送到内存时间为5us,最后对数据块执行时间为1us

    解:

    $T_1+T \times 9 +M_{10}+C_{10}$=150+6=156us

SPOOLing技术

  1. 引入的原因

    1. 脱机:外围机,磁盘
    2. 联机:CPU,内存
  2. 假脱机:$脱机 \rightarrow 联机$

    定义:在主机的直接控制下,实现脱机输入,输出功能,此时的外围操作与CPU对数据的处理同时进行。

  3. 组成

    1. 磁盘:输入井和输出井(大量磁盘空间)

      一个暂时存放输入和输出的数据

    2. 内存,输入buffer和输出buffer(少量内存)

    3. 两道程序(进程):输入/输出进程(多到程序设计技术)

  4. 操作

    1. 输入:I/O设备$\rightarrow$ 输出buffer$\rightarrow$输出井
    2. 输出:输入井$\rightarrow$输出buffer$\rightarrow$I/O设备
  5. 应用

    打印机:独占设备$\rightarrow$共享设备

  6. 特点

    1. 提高I/O速度:

      对低速设备操作——>变为对输入/出#操作。

    2. 将独占设备改造为共享设备

      分配设备的实质时分配输入/出#

    3. 实现了虚拟设备功能

磁盘存储器

硬件特性

空间分配(第六章:文件管理)

  1. 存储

    盘片(柱面)$\rightarrow$扇区$\rightarrow$数据块

  2. 以磁头设置划分

    1. 固定头
    2. 移动头
  3. 移动头磁盘访问时间

    1. 寻道时间($T_s$)
    2. 寻找扇区的时间($T_r$)
    3. 传输时间($T_t$)

    $T_r$,$T_t$磁盘的机械特性

磁盘调度算法

  1. 先来先服务FCFS

    访问要求:从已知磁头所在的磁道开始按照进程访问的顺序依次读取

  2. 最短寻道时间优先SSTF

    访问要求:离当前的磁头距离最近的磁道先进行访问

  3. 扫描(SCAN)算法

    规定访问方向:从里到外(磁盘号增加)或从外到里(磁盘号减少)

    访问要求:

    1. 访问方向(来访问)
    2. 再探究反方向访问剩下的磁道
  4. 循环扫描(CSCAN)算法

    访问要求:只有一个方向

例:磁盘请求服务队列中要访问的磁道分别为38、6、37、100、14、124、65、67,磁头上次访问了20磁道,当前处于30磁道上,试采用FCFS、SSTF和SCAN调度算法,分别计算磁头移动的磁道数

https://cdn.jsdelivr.net/gh/adan-ning/images/202405081700410.png