计算机操作系统:输入输出管理知识点汇总(简化版)

说明

  1. 博客作为笔记备份,不定时更新
  2. 参考内容为王道考研《计算机操作系统考研复习指导2023》
  3. 简化版仅进行了知识点汇总,详细知识点没有记录,主要用来搭知识体系框架
  4. 思维导图为文字版导出的,可将文字内容粘贴到思维导图软件自动生成。如果是用obsidian并安装了mindmap插件的话,可在文件开头写上以下内容,生成导图:
---
mindmap-plugin : basic
---

文章目录

  • 思维导图版
  • 文字版
  • 输入输出管理
    • I/O设备
    • 设备独立性软件
    • 磁盘Disk和固态硬盘SSD

思维导图版

计算机操作系统:输入输出管理知识点汇总(简化版)_第1张图片

文字版

输入输出管理

I/O设备

  • I/O设备分类
    • 块设备
    • 字符设备
    • 低速/中速/高速设备
  • I/O接口(位于CPU与设备之间)
    • 设备控制器与I/O设备的接口
    • 设备控制器与CPU的接口
    • I/O逻辑
  • I/O端口
    • 三种
      • 数据寄存器
      • 状态寄存器
      • 控制寄存器
    • 编址方式
      • 统一编制
      • 独立编址
  • I/O控制方式
    • 程序直接控制方式
    • 中断驱动方式
    • DMA方式
      • 特点
        • 以块为单位传送
        • 设备直接与内存进行数据交换(不通过CPU的寄存器)
        • 仅在传送开始和结束时需要CPU的干预
      • 4类寄存器
        • 命令/状态寄存器
        • 内存地址寄存器
        • 数据寄存器
        • 数据计数器
    • 通道
      • 通道程序位于内存中
      • 在传输过程中,控制权在通道
        • 与DMA不同的是,由通道决定传输数据的大小,以及传送的内存地址
        • 通道可控制多台设备与内存的数据交换
      • 开始时,CPU发出一条I/O指令,启动通道;传输结束,通道向CPU发出中断请求
  • I/O软件层次
    • 用户层I/O软件
    • 设备无关性软件
    • 设备驱动程序
    • 中断处理程序
    • 硬件
  • 应用程序I/O接口
    • 字符设备接口
    • 块设备接口
    • 网络设备接口
    • 阻塞/非阻塞接口
  • I/O管理(要做的四件事)
    • 状态跟踪:跟踪外设状态
    • 设备存取:实现对外设的存取
    • 设备分配
    • 设备控制

设备独立性软件

  • 与设备无关的软件
    • 是I/O系统最高层软件
    • 执行所有设备公有操作的软件
  • 高速缓存和缓冲区
    • 高速缓存
      • 在内存的两种形式
        • 磁盘高速缓存
          • 内存中开辟的单独空间,大小固定
          • 逻辑上属于磁盘,物理上属于内存
        • 缓冲池
          • 将空闲的内存空间作为一个缓冲池
    • 缓冲区
      • 单缓冲
        • 处理每块数据耗时: m a x { C , T } + M max\{C,T\}+M max{C,T}+M
        • T:设备将数据输入缓冲区的时间
        • M:系统从缓冲区中取走数据的时间
        • C:CPU处理数据的时间
        • 结合流水线的时空图理解
      • 双缓冲
        • 处理每块数据的时间: m a x { C + M , T } max\{C+M,T\} max{C+M,T}
      • 循环缓冲
      • 缓冲池
    • 高速缓存和缓冲区的比较
  • 设备分配与回收
    • 分类
      • 独占设备
      • 共享设备
      • 虚拟设备(借助SPOOLing技术实现)
    • 分配过程
      • 数据结构
        • 系统设备表 SDT
        • 设备控制表 DCT
        • 控制器控制表 COCT
        • 通道控制表 CHCT
      • 先后访问的数据结构: S D T → D C T → C O C T → C H C T SDT\rightarrow DCT\rightarrow COCT\rightarrow CHCT SDTDCTCOCTCHCT
      • 成功分配一个设备要满足的条件(缺一不可)
        • 设备可用
        • 控制器可用
        • 通道可用
    • 分配策略
      • 分配方式
        • 静态分配方式(一次性)
        • 动态分配方式(根据设备的请求)
      • 分配算法
    • 设备分配的安全性
      • 安全分配
        • 进程请求I/O后进入阻塞状态,直至I/O操作完成
        • 在进程阻塞时,其不再请求其他资源,并不保持任何资源:即破坏了“请求保持”条件
        • CPU和I/O设备串行工作
      • 不安全分配
        • 进程发出I/O请求后继续运行,并可继续发出I/O请求
        • 只有进程请求的I/O设备被其他进程占用时才进入阻塞态
    • 逻辑到物理的映射
      • LUT表
      • 设置LUT的两种方式
        • 一个系统只有一张
        • 每个用户一张
  • SPOOLing技术
    • SPOOLing系统组成
      • 内存中
        • 输入/输出进程
        • 输入/输出缓冲区
      • 磁盘中
        • 输入井
        • 输出井
    • 特点
      • 提高I/O速度
      • 改独占为共享
      • 实现了虚拟设备功能

磁盘Disk和固态硬盘SSD

  • 磁盘
    • 地址:柱面号·盘面号·扇区号
    • 管理
      • 初始化
        • 低级格式化(物理格式化):将磁盘分为扇区
        • 低级格式化用特殊数据结构填充磁盘
      • 分区
        • 两步
            1. 将磁盘分为一个或多个柱面组成的扇区
            1. 对物理分区进行逻辑格式化(创建文件系统)
        • 簇(Linux中称为块)
          • 多个相邻的扇区组成为簇
          • 文件占用的空间只能为簇的整数倍
      • 引导块
        • 初始化程序(自举程序)
          • 计算机启动时运行初始化程序
          • 自举程序一小部分位于ROM中,完整功能的引导程序位于磁盘的启动块
        • 启动过程
          • ROM中的代码指示磁盘控制器将引导块读入内存后执行
          • 例子:Windows启动过程
    • 磁盘调度算法
      • 几个指标
        • 寻道时间
        • 旋转延迟时间: T r = 1 2 r T_r=\frac{1}{2r} Tr=2r1,r为磁盘转速
        • 传输时间: T t = b r N T_t=\frac{b}{rN} Tt=rNb,b为每次读/写的字节数;N为一个磁道上的字节数
      • 先来先服务算法FCFS
      • 最短寻找时间优先算法SSTF
      • 扫描算法SCAN(又称电梯调度算法)
      • 循环扫描算法C-SCAN
    • 交替编号、错位命名:可以减少延迟时间
    • 提高磁盘I/O速度的方法
      • 提前读:提前将磁盘块读入内存缓冲区
      • 延后写:要写入磁盘的数据先写入缓冲区,当其他进程申请此缓冲区时再写入磁盘
      • 虚拟盘:使用内存空间去仿真磁盘(又称为RAM盘)
  • 固态硬盘SSD
    • 以页为读写单位
    • 擦除
      • 只有一页所在的一块全被擦除后,才能写这一页
      • 一旦擦除一块,可直接再对块中的每一页写一次
    • 随机读较快,随机写较慢(涉及擦除)
    • 磨损均衡
      • 动态磨损均衡:写入时自动选择较新的闪块
      • 静态磨损均衡:没有数据写入时,SSD自动监测并进行数据分配

你可能感兴趣的:(课程笔记,计算机操作系统,输入输出管理)