计算机操作系统笔记(6)

第六章 输入输出系统

6.1 I/O系统的功能、模型和接口

I/O系统的基本功能

  1. 方便用户使用I/O设备:
    隐藏物理设备的细节(用户使用逻辑设备名)
    使用与设备无关的软件
  2. 提高CPU和I/O设备的利用率
    提高CPU和I/O的利用率(CPU与I/O并行)
    对设备进行控制(CPU对I/O的干预)
  3. 方便用户共享设备
    确保设备正确共享(共享/独占)
    错误处理(错误底层处理)

I/O系统的层次结构、模型和接口

  • 层次结构:
     (1)用户层软件
     (2)设备独立性软件
     (3)设备驱动程序
     (4)中断处理程序
  • 模型:
     (1)I/O系统的上、下接口
     (2)I/O系统的分层
  • 接口:
     (1)块设备接口
     (2)流设备接口
     (3)网络通信接口

6.2I/O设备和设备控制器

I/O设备

类型:

  • 按使用特性分:
     (1)存储设备(磁盘)
     (2)I/O设备(键盘)
  • 按速度分:
     (1)低速(键盘)
     (2)中速(打印机)
     (3)高速(磁盘)

设备与控制器之间的接口:

  1. 数据信号:双向、有缓存
  2. 控制信号:控制器发给设备,要求其完成相关操作
  3. 状态信号:设备发给控制器

设备控制器

基本功能:接收CPU命令,控制I/O设备工作,解放CPU
*

  1. 接收和识别命令
  2. 数据交换:数据寄存器
  3. 设备状态的了解和报告:状态寄存器
  4. 地址识别
  5. *数据缓冲
  6. *差错控制

组成:

  1. 接口:与CPU、与设备的接口
  2. 各类寄存器:数据、状态
  3. 信号线:数据线、地址线、控制线
  4. I/O逻辑:完成与CPU、设备的通信

内存映像

数据从内存到控制器的两种方法:

  1. 利用特定的I/0指令
    访问内存和访问控制器需要两种不同的指令
  2. 内存映像
    统一内存和控制器的访问方法

I/O通道

概念:一种特殊的执行I/O指令的处理机,与CPU共享内存
引入目的:解脱CPU对I/O的组织、管理
功能过程:CPU发I/O指令给通道,通道建立并执行通道程序完成I/O任务

三种类型通道:

  1. 字节多路通道
    各子通道以时间片轮转方式共享主通道(适用低、中速设备)
  2. 数组选择通道
    仅有主通道,某时间由某设备独占(适用高速设备)
    缺点:信道利用率低
  3. 数组多路通道
    类似字节多路通道,不过分配是按需分配(结合前两种的优点)

瓶颈问题:

  1. 有瓶颈的单通路I/O系统:
    瓶颈原因:通道不足
  2. 解决瓶颈的多通路I/O系统:

总线系统

微机I/O系统:

  • CPU-设备控制器-设备
  • 设备控制器与设备是一对多的关系
  • 缺点:有总线瓶颈、CPU瓶颈

主机I/O系统

  • 计算机-I/O通道-I/O控制器-设备
    I/O通道相当于对总线的扩展,且具有一定的智能性

6.3中断机构和中断处理程序

中断机制

两种中断:

  1. 中断(外中断):CPU对I/O设备发来的中断信号的一种响应
  2. 陷入(内中断):CPU内部事件所引起的中断

中断处理流程:

6.4设备驱动程序

设备驱动程序概述

设备驱动程序功能:让设备开始运转
*

  1. 将I/O进程的命令的抽象要求转具体要求
  2. 传递参数,设置设备的工作方式
  3. 启动I/O设备
  4. 调用相应的中断处理程序
  5. 构成通道程序

设备驱动程序特点:

  1. 是请求I/O进程和设备控制器之间的通信和转换程序
  2. 与设备控制器以及I/O设备的硬件特性紧密相关
  3. 与I/O设备采用的I/O控制方式密切相关
  4. 汇编语言编写

*设备处理方式:

  1. 不专设进程
  2. 一设备管一进程
  3. 一进程管多设备

*设备驱动程序的处理过程:

  1. 抽象要求转具体要求
  2. 检查I/O请求的合法性
  3. 读出和检车设备的状态
  4. 传送必要的参数
  5. 工作方式的设置
  6. 启动I/O设备

对I/O设备的控制方式

四个阶段:程序I/O——中断I/O——DMA控制——通道控制
趋势:减少CPU对I/O操作的干预程度,提高并行度

程序I/O方式:

  • 过程:CPU不断查询I/O状态
  • 特点:CPU资源浪费极大
  • CPU干预:CPU完全干预I/O

中断I/O方式:

  • 过程:
    向I/O发命令——返回——执行其它任务
    I/O中断产生——CPU转相应中断处理程序
  • CPU干预:CPU以字节为单位干预

DMA方式:

  • 过程:由DMA控制器直接控制总线传递数据块。(DMA控制器完成从I/O到内存的传输)
  • 特点:主要用在块设备中
  • CPU干预:CPU以块为单位干预I/O(仅在传送一个或多个块的开始和结束时才干预)
  • DMA控制器的组成:一组寄存器+控制逻辑
  • DMA的工作过程:

通道方式:

  • 过程:CPU给出通道程序首址和要访问的I/O设备,通道程序完成一组块操作
  • CPU干预:COU以一组数据块为单位干预I/O

6.5与设备无关的I/O软件

基本概念

别称:设备独立性软件
功能/含义:执行所有设备的共有操作、向用户层软件提供统一接口
相关概念:物理设备名、逻辑设备名、逻辑设备表
逻辑设备表:

设备分配

内容:

  • 3种分配:包括对设备、设备控制器、通道的分配
  • 4张表:数据结构包括了系统表、设备表、控制器表、通道表
  • *大致分配流程:
    根据I/O请求,在系统设备表查找设备,
    根据对应的设备表状态,得知其是否忙,不忙则分配设备给I/O进程,
    分配后,根据对应的控制器表状态,得知其是否忙,不忙则分配控制器给进程,
    最后根据通道的状态,得知其是否忙,不忙则分配通道给进程,然后即可启动该I/O设备进行数据传送

设备独立性的实现

概念:设备独立性的实现,即是逻辑设备名到物理设备名映射的实现
查找流程:逻辑设备表->系统表->设备表->控制表->通道表(->执行通道程序完成传输)

设备独立性的优点:

  1. 设备分配更灵活
  2. 易于实现I/O重定向

独占设备的分配程序

基本分配程序:分配设备->分配控制器->分配通道
分配程序的改进:增加设备的独立性,考虑多通路情况

6.6用户层的I/O软件

SPOOLing技术

SPOOLing技术即假脱机技术
作用:缓和CPU的高速性与I/O设备低速性间的矛盾,使其具有并发性

组成:

工作原理:

  • 包括四大部分:输入/出井、输入/出缓冲区、输入/出进程、井管理程序

共享打印机:

  • 假脱机打印系统的构成:磁盘缓冲区、打印缓冲区、假脱机管理进程和假脱机打印进程

SPOOLing系统的特点:

  1. 提高了I/O的速度
  2. 将独占设备改造为共享设备
  3. 实现了虚拟设备功能

6.7缓冲处理

缓冲管理:组织管理、分配、释放buffer

缓冲的引入

引入原因:

  1. 缓和CPU和I/O设备间速度不匹配的矛盾
  2. 减少对CPU的中断频率
  3. 提高CPU和I/O并行性

单、双缓冲区

单缓冲区:

  • 并行:T与C并行
  • 处理时间:每块处理时间为Max(C,T)+M
  • 阻塞:
    I/O输入到缓冲区时,进程挂起
    进程输出到缓冲区时,若缓冲区数据未被I/O提取完毕会发生阻塞

双缓冲区:

  • 并行:T与M并行、T与C并行
  • 处理时间:每块处理时间为Max(C,T)
  • 特点:
    *效率提高,更平滑传输峰值
    收发可双向同时传送

循环多缓冲区:

  • 使用:
    nextg:指示下一个应取数据的buf
    nexti:知识下一个空buf
    Getbuf:取nextg缓冲区使用,然后置nextg为空;取nexti缓冲区使用,然后置nexti为满
    Releasebuf:C满则改为G;C空则改为R
  • 同步问题:
    nexti追上nextg:输入速度>输出速度,阻塞输入进程
    nextg追上nexti:输出速度>输入速度,阻塞输出进程

共用缓冲池:

  • 缓冲池:系统提供的公用缓冲,由OS统一管理
  • 组成:
    三个队列:
     空缓冲队列emq
     输入队列inq
     输出队列outq
    4个工作缓冲区:
     收容输入数据hin
     提取输入数据sin
     收容输出数据hout
     提取输出数据sout
  • 工作方式:1收容输入、2提取输入、3收容输出、4提取输出(可不按序同时发生)
  • Getbuf和Putbuf过程
    RS:缓冲池资源信号量
    MS:缓冲池的互斥信号量

6.8磁盘存储器的性能

磁盘性能简述

数据的组织和格式:

  • 盘面、扇区、磁道、磁道间隔、扇区间隔
  • 格式化:每个扇区包括两个字段:标识符字段、数据字段

磁盘的类型:

  • 固定头磁盘:每条磁道都有磁头,磁盘I/O速度较高、主用于大容量磁盘上
  • 移动头磁盘:每个盘面仅有一个磁头,磁盘I/O速度较低,主用于中小型磁盘设备

磁盘访问时间:

  • 寻道时间Ts:把磁头移动到指定磁道上经历的时间(Ts
  • 旋转延迟时间Tτ:扇区移动到磁头下面所经历的时间
  • 传输时间Tt:把数据从磁盘读出或向磁盘写入数据所经历的时间(Tt=brN
    (磁盘访问时间Ta=Ts+12r+brN

磁盘调度

先来先服务FCFS:根据进程请求访问磁盘的先后次序进行调度
最短寻道时间优先SSTF:每次选择与当前磁头距离最近的磁道进行调度

扫描算法SCAN(电梯调度算法):在最短寻道时间优先算法基础上,更优先考虑当前磁头的移动方向
循环扫描算法CSCAN:在扫描算法的基础上,规定了磁头单向移动(比如由里到外后,再直接回到里)

N步SCAN算法(NStepSCAN算法):将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法一次处理这些子队列(避免中途插队,避免粘着现象)
FSCAN算法:是NStepSCAN算法的简化,只将磁盘请求队列分成两个子队列(一个用于处理一个存放新出现的请求)

posted @   kksk43  阅读(326)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示