操作系统基础之设备管理

设备管理

设备管理的主要对象是I/O设备以及设备控制器和I/O通道,主要任务是:完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率,主要功能是:缓冲区管理、设备分配、设备处理、虚拟设备以及实现设备独立性等

I/O系统

  • I/O设备的类型
    • 按照设备使用特性分类
      • 存储设备
      • 输入输出设备
    • 按照速率分类
      • 低速设备:键盘、鼠标、语音的输入输出等
      • 中速设备:行式打印机、激光打印机
      • 高速设备:磁带机、磁盘机、光盘机
    • 按照信息交换的单位分类
      • 块设备:信息存取总是以块为单位
      • 字符设备:信息存取以字符为单位
    • 按照设备的共享属性
      • 独占设备:需要互斥访问
      • 共享设备:可寻址、可随机访问
      • 虚拟设备
  • 设备与控制器之间的接口
    • 设备一般不是与CPU直接通信,而是通过设备控制器通信
    • 数据信号线
    • 控制信号线
    • 状态信号线
  • 设备控制器:CPU和I/O设备之间的接口,接收从CPU发来的命令,并且控制I/O设备进行工作
    • 责职:控制一个或者多个I/O设备,以实现I/O设备和计算机之间的数据交换
    • 基本功能
      • 接收和识别命令:接收识别CPU发出的命令
      • 数据交换:实现CPU与控制器之间,控制器与设备之间的数据交换
      • 标识和报告设备的状态:记下设备的状态供CPU了解
      • 地址识别:识别所控制的每个设备的地址
      • 数据缓冲
      • 差错控制
    • 组成
      • 设备控制器与处理机接口:用于实现CPU与设备控制器之间的通信
      • 设备控制器与设备的接口:一个接口对应一个设备
      • I/O逻辑:用于实现对设备的控制
  • I/O通道
    • 作用:介于CPU和设备控制器之间,建立独立的I/O操作,使数据的传送能独立于CPU
    • 本质:一种特殊的处理机,具有执行I/O指令的能力,并通过通道程序控制I/O操作,但与CPU共享内存
    • 类型
      • 字节多路通道
      • 数组选择通道
      • 数组多路通道
  • 总线系统
    • 计算机系统中的各个部件之间的联系,都是通过总线来实现的

I/O控制方式

宗旨:尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来

  • 程序I/O方式:不断去查看是否已经完成
  • 中断驱动I/O方式:以字节为单位
  • 直接存储器访问(DMA)I/O控制方式
    • 基本单位是数据库
    • 传送的数据直接从设备送入内存,或者相反
    • 仅在传送一个或者多个数据块的开始和结束时,才需要CPU的干预
  • DMA控制器的组成

缓冲管理

  • 单缓冲
  • 双缓冲
  • 循环缓冲
  • 缓冲池

I/O软件

  • I/O软件的设计目标和原则
    • 与具体设备无关
    • 统一命名
    • 对于错误的处理
    • 缓冲技术
    • 设备的分配和释放
    • I/O控制方式
  • 四个层次
    • 用户层软件
    • 设备独立性软件
    • 设备驱动程序
    • 中断处理程序
      • 唤醒被阻塞的驱动程序
      • 保护被中断进程的的CPU环境
      • 转入相应的设备处理程序
      • 中断处理
      • 恢复被中断进程的现场

设备分配

系统设备不允许用户自行使用,必须由系统统一分配

  • 设备分配中的数据结构
    • 设备控制表(DCT):每个设备均有,记录本设备的情况
    • 控制器控制表、通道控制表、系统设备表
  • 设备分配时考虑的因素
    • 设备的固有属性
      • 独占设备
      • 共享设备
      • 虚拟设备
    • 设备分配算法
      • 先来先服务
      • 高优先级优先
    • 设备分配中的安全性
      • 安全分配方式:发出请求后阻塞,CPU与I/O是串行工作
      • 不安全分配方式:仅当所请求的设备被占用时才阻塞,应该进行安全性计算
  • 独占设备的分配程序
    • 基本的设备分配程序
      1. 分配设备
      2. 分配控制器
      3. 分配通道
    • 设备分配程序的改进
      • 增加设备的独立性
      • 考虑多通路情况
  • SPOLLing技术
    • 原理:在联机情况下实现的同时外围操作或者称为假脱机操作(利用多道技术,来模拟脱机输入、输出时的外围控制机功能),其实就是通过程序模拟硬件,其中磁盘用于模拟设备,进程用于模拟处理器,缓冲区用于缓冲
    • 系统组成
      • 输入井和输出井:在磁盘上开辟的两大存储空间,用于模拟脱机输入输出时的磁盘设备,用于暂存I/O设备的数据
      • 输入缓冲区和输出缓冲区:在内存上开辟的两大缓冲区,用于暂存输入输出设备的数据
      • 输入进程SPi和输出进程SPo:用两个进程来模拟脱机I/O时的外围控制机,等到设备真正空闲时,再讲数据传输过去
    • 共享打印机:接收请求,然后送到打印机列表
    • 特点
      • 提高了I/O速度
      • 将独占设备改造为共享设备
      • 实现了虚拟设备功能

磁盘存储器的管理

  • 磁盘性能简介
    • 数据组织形式和格式
      • 磁道、扇区、...
    • 磁盘类型
      • 固定磁头:每个磁道都有一个读写头
      • 移动磁头:每个盘面仅由一个读写头,需要寻道等操作
    • 磁盘访问时间
      • 寻道时间:Ts = m * n + s // s:启动磁臂时间,n:移动n个磁道的时间,m与磁盘驱动器速度有关的常数
      • 旋转延迟时间:指定扇区移动到磁头下面所需要的时间
      • 传输时间:t = b/(r*N)
  • 磁盘调度
    • 目标:使磁盘的平均寻道时间最小
    • 先来先服务(FCFS)
      • 根据进程请求访问磁盘的先后顺序进行调度
    • 最短寻道时间优先(SSTF Shortest Seek Time First)
      • 思想:选择与当前磁头距离最近的磁道,使得每次寻道时间最短,但不保证平均寻道时间最短
      • 缺点:可能导致饥饿现象,也就是某个进程得不到资源
    • 扫描算法(SCAN)
      • 思想:从一个方向访问直到尽头,再反方向(1 - 2 -3 -4 -3 -2 -1 )
    • 循环扫描算法(CSCAN)
      • 思想:(1 - 2 -3 -4 -1 -2 -3- 4)
    • NStepSCAN算法
      • 思想:将请求的进程队列分成若干个长度为N的子队列,每个队列按照SCAN算法执行
    • FSCAN算法
      • 思想:只将队列分成两个子队列,一个保存当前的进程,另一个保存扫描过程中出现的进程
  • 磁盘高速缓存
    • 利用内存中的存储空间作为磁盘的高速缓存,实际上并不存在一个设备称之为磁盘高速缓存
    • 数据交付方式
      • 数据交付:直接将高速缓存中的数据传送到请求者进程的内存工作区
      • 指针交付:将指向高速缓存区中某个区域的指针交给请求者进程
    • 置换算法
      • 最近最久未使用
      • 访问频率
      • 可预见性
      • 数据一致性
    • 周期性写回磁盘
  • 提高磁盘效率的其他方法
    • 提前读
    • 延迟写
    • 优化物理块的分配
    • 虚拟盘
  • 廉价磁盘冗余阵列(RAID)

你可能感兴趣的:(操作系统基础之设备管理)