操作系统学习笔记(6. IO管理)

个人用书:操作系统教程 第五版 费翔林
学习视频: 王道计算机考研 操作系统.

目录

    • I/O设备的基本概念和分类
      • i/o设备的分类:按使用特性
      • i/o设备的分类:按速度
      • i/o设备分类:按信息交换的单位
    • I/O控制器
      • i/o控制器的组成
      • 内存映像i/o vs 寄存器独立编址
    • I/O控制方式
      • 中断驱动方式
      • DMA方式(直接存储器存取)
      • 通道控制方式
    • I/O软件层次结构
      • 用户层
      • 设备独立性软件
      • 设备驱动程序
      • 中断处理程序
    • I/O核心子系统
    • SPOOLing技术(假脱机技术)
      • 共享打印机原理分析

I/O设备的基本概念和分类

I/O代表输入输出。

I/O设备就是可以将数据输入到计算机,或者接收数据的外部设备。(鼠标,键盘,显示器,u盘)

UNIX系统把外部设备抽象为文件,用户可以使用与文件操作相同的方式操作外部设备。eg:显示器read 键盘write

i/o设备的分类:按使用特性

  • 人机交互外部设备:数据传输慢
  • 存储设备:数据传输速度快
  • 网络通信设备:数据传输介于上述二者之间

i/o设备的分类:按速度

  • 低速:鼠标键盘,每秒几个到几百字节
  • 中速:打印机,每秒数千数万字节
  • 高速:磁盘等,每秒数千到千兆字节

i/o设备分类:按信息交换的单位

  • 块设备:磁盘等,速率高,可以寻址
  • 字符设备:鼠标键盘,速度低,不可寻址

I/O控制器

  • I/O设备的机械部件主要用来执行具体I/O操作。
  • I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板。

CPU无法直接控制机械部件,因此需要一个 电子部件 作为中介。这个电子部件就是 i/o控制器 又叫 设备控制器。

i/o控制器的功能:

  1. 接收和识别CPU发出的命令,由控制寄存器存放命令和参数
  2. 向CPU报告设备的状态,状态寄存器记录设备状态
  3. 数据交换,数据寄存器
  4. 地址识别,根据内存的地址,为了区分设备控制器中的各个寄存器,需要给每个寄存器设置一个特定的地址。i/o设备通过cpu提供的地址判断cpu要读写的是哪个寄存器

i/o控制器的组成

  • CPU与控制器的接口:实现CPU与设备的直接的通信。控制线发出命令,地址线指明设备,数据线输入输出数据。
  • I/O逻辑:负责接收和识别CPU的各种命令,并负责对设别发出命令。
  • 控制器与设备的接口:实现控制器和设备直之间的通信。

几个细节:

  1. 一个i/o控制器可能对应多个设备。
  2. 数据,控制,状态寄存器可能有多个。有的计算机让这些寄存器占用内存地址的一部分,称为内存映像I/O,另一些计算机采用I/O专用地址,寄存器独立编址

内存映像i/o vs 寄存器独立编址

内存映像:控制器中的寄存器与内存地址统一编址

寄存器独立编址:控制器中的寄存器单独编址。这个时候需要专门的指令实现对控制器的操作,需要指明寄存器编址和设备的编号。

I/O控制方式

注意以下:

  1. 完成一次读写操作的流程
  2. CPU干预的频率
  3. 数据传送的单位
  4. 数据的流向
  5. 缺点和优点

###程序直接控制方式
Key word:轮询

流程:

  1. CPU向控制器发出读指令,设备启动,状态寄存器设置1(未就绪)
  2. CPU不断的循环检查,若状态一直是1,则没准备好
  3. 输入设备准备好数据传给控制器报告状态
  4. 控制器把数据放入数据寄存器,状态寄存器设置0
  5. CPU发现设备已经就绪,将数据寄存器里面的内容读入CPU,如何放入内存

CPU干预的频率:很频繁,从I/O开始到完成CPU要一直轮询检查

数据传输每次一个字

数据流向:

  • 读:I/O设备——CPU——内存

  • 写:内存——CPU——I/O设备

    优点:实现简单
    缺点:只能CPU和io设备只能串行工作

中断驱动方式

相比于 程序直接控制方式 ,增加了中断机制。在CPU发出命令后,让I/O进程阻塞,等到I/O完成后控制器发出中断信号,CPU开始I/O进程的运行。

CPU干预:低了很多,在开始和完成后介入

数据流向:

  • 读:I/O设备——CPU——内存

  • 写:内存——CPU——I/O设备

    优点:CPU和I/O可以并行操作,CPU利用率提升
    缺点:数据传输必须经过CPU,频繁的中断处理会消耗较多的CPU时间

DMA方式(直接存储器存取)

与中断驱动相比有以下改进:

  1. 数据传输单位是 块,不再是一个字
  2. 数据的流向是设备直接进入内存,不需要经过CPU
  3. 只在传送一个或多个数据块开始或结束才需要CPU

DMA控制器:由 主机控制器接口,I/O逻辑,块设备-控制器接口。

CPU干预:很少

数据传送单位:块

数据流向:

  • 读:I/O设备——内存

  • 写:内存——I/O设备

    优点:CPU介入频率进一步降低,数据以块为单位
    缺点:CPU每发出一条指令,只能读取一个或多个连续块

通道控制方式

通道:一种硬件,弱鸡版的CPU。通道可以识别一系列通道指令。

与CPU相比,通道执行的指令单一,通道放在主机内存中,与CPU共享内存。

流程:

  1. CPU向通道发出I/O指令,指明通道程序在内存中的位置,指明要操作的是哪个I/O设备,CPU可以切换到其他进程
  2. 通道执行内存中的通道程序(读写多少数据,内存位置)
  3. 执行完后向CPU发出中断指令

CPU干预频率:很低

数据传送单位:块

数据流向:

  • 读:I/O设备——内存

  • 写:内存——I/O设备

    优点:CPU,通道,I/O设备并行
    缺点:实现复杂,需要专门的通道硬件支持

I/O软件层次结构

越上的层次越接近用户,某层会利用其下层提供的服务,实现某些功能屏蔽细节。

用户层

实现了与用户交互的接口,用户可以直接使用该层提供的,与i/o操作相关的库函数对设备进行操作

设备独立性软件

用户层软件将用户请求翻译成格式化的I/O请求,并通过系统调用请求OS服务

设备独立性软件:又称设备无关性软件。
主要实现的功能:

  1. 向上层提供系统调用
  2. 设备的保护
  3. 差错处理
  4. 设备的分配与回收
  5. 数据缓冲区管理
  6. 建立逻辑设备名到物理设备名的映射关系,根据设备类型选择调用相应的驱动程序

设备驱动程序

主要负责对硬件设备的具体控制,将上层发出的一系列命令转换成特定设备的一系列操作。

中断处理程序

当I/O任务完成时,I/O控制器会发出一个中断信号,系统根据中断信号类型找到相应的中断处理程序并执。

I/O核心子系统

设备独立性软件+设备驱动程序+中断处理程序

属于OS的内核部分,称为I/O核心子系统。需要提供的功能:

  1. I/O调度
  2. 设备保护
  3. 设备分配与回收

以上都有讲过

SPOOLing技术(假脱机技术)

脱机技术:脱离主机的控制进行的I/O操作

引入了脱机技术后,缓解了CPU与慢速I/O设备的速度矛盾。即使CPU忙碌,也可以将数据输入到磁带。

假脱机技术,也称SPOOLing技术,用软件的方式模拟脱机技术。

  • 输入缓冲区:暂时存从输入设备输入的数据
  • 输出缓冲区:暂存从输出井传来的数据

输入缓冲区 和 输出缓冲区 是在内存中的缓冲区。

共享打印机原理分析

  • 独占式设备——只允许各个进程串行使用的设备。
  • 共享设备——允许多个进程同时使用(微观上可能是交替的)。

当多个用户提出输出打印的要求,系统会答应请求,但是不是真的分配打印机。脱机管理程序会做两件事:

  1. 在磁盘输出井申请空闲缓冲区,把数据放入
  2. 为用户进程申请空白打印请求表,把用户的打印请求填入,表单挂到脱机队列

虽然只有一个打印机,但是每个进程提出请求,系统都会分配存储器,使每个进程都觉得自己使用了打印机。

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