操作系统之IO设备详解

操作系统之IO设备详解

一、I/O设备的概念和分类

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

操作系统之IO设备详解_第1张图片

二、什么是I/O设备

  • “I/O" 就是”输入/输出“(Input/Output)
  • I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外设,属于计算机中的硬件部分。

操作系统之IO设备详解_第2张图片
操作系统之IO设备详解_第3张图片

三、I/O设备的分类–按使用特性

操作系统之IO设备详解_第4张图片

四、I/O设备的分类–按传输速率分类

操作系统之IO设备详解_第5张图片

五、I/O设备的分类–按信息交换的单位分类

操作系统之IO设备详解_第6张图片

六、知识回顾

操作系统之IO设备详解_第7张图片

二、I/O控制器

一、知识总览

操作系统之IO设备详解_第8张图片

二、I/O设备的机械部件

  • I/O设备的机械部件主要用来执行具体I/O操作。
  • 如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面。
  • I/O设备的电子部件通常以一块插入主板扩充槽的印刷电路板。

三、I/O设备的电子部件(I/O控制器)

  • CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。
  • 这个电子部件就是I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件。
    操作系统之IO设备详解_第9张图片

四、I/O控制器的组成

操作系统之IO设备详解_第10张图片

  • 值得注意的小细节:
    • 一个I/O控制器可能会对应多个设备;
    • 数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址。

五、内存映像 I/O VS 寄存器独立编址

操作系统之IO设备详解_第11张图片

六、知识回顾

操作系统之IO设备详解_第12张图片

三、I/O控制方式

一、知识总览

操作系统之IO设备详解_第13张图片

  • 需要注意的问题:
    • 完成一次读/写操作的流程
    • CPU干预的频率
    • 数据传送的单位
    • 数据的流向
    • 主要缺点和主要优点。

二、程序直接控制方式

操作系统之IO设备详解_第14张图片

操作系统之IO设备详解_第15张图片
操作系统之IO设备详解_第16张图片

三、中断驱动方式

操作系统之IO设备详解_第17张图片
操作系统之IO设备详解_第18张图片

四、DMA方式

  • 与“中断驱动方式”相比,DMA方式(Direct Memory Access, 直接存储器存取。主要用于块设备的I/O控制),有这样几个改进:
    • 数据的传送单位是“块”, 不再是一个字、一个字的传送。
    • 数据的流向是从设备直接放入内存,或者从内存直接到设备。不再需要CPU作为“快递小哥”。
    • 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。
      操作系统之IO设备详解_第19张图片

五、DMA控制器

操作系统之IO设备详解_第20张图片

六、DMA方式

操作系统之IO设备详解_第21张图片

七、通道控制方式

  • 通道:一种硬件,可以理解为是“弱鸡版的CPU”。通道可以识别并执行一系列通道指令。

操作系统之IO设备详解_第22张图片
操作系统之IO设备详解_第23张图片

八、知识回顾

操作系统之IO设备详解_第24张图片

四、I/O软件层级结构

一、知识总览

操作系统之IO设备详解_第25张图片

二、用户层软件

操作系统之IO设备详解_第26张图片

三、设备独立性软件

  • 设备独立性软件,又称设备无关性软件。与设备的硬件特性无关的功能几乎都是在这一层实现。

  • 主要实现功能:

    • 向上层提供统一的调用接口(如read/write 系统调用)

    • 设备的保护。原理与文件保护类似。设备被看做是一种特殊的文件,不同用户对各个文件的访问权限是不一样的,同理,对设备的访问权限是不一样的。

    • 差错处理。设备独立性软件需要对一些设备的错误进行处理。

    • 设备的分配与回收。

    • 数据缓冲区管理。可以通过缓冲技术屏蔽设备之间数据交换单位大小和传输速度的差异。

    • 建立逻辑设备名到物理设备名的映射关系;根据设备类型选择调用相应的驱动程序。

      • 用户或用户层软件发出I/O操作相关的系统调用时,需要指出此次要操作的I/O设备的逻辑设备名。(eg:去学校打印店打印时,需要徐泽打印机1/打印机2/打印机3,其实这些都是逻辑设备名)
      • 设备独立性软件需要通过“逻辑设备表(LUT,Logical Unit Table)”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序。

操作系统之IO设备详解_第27张图片

四、为何不同的设备需要不同的设备驱动程序

  • 各式各样的设备,外形不同,其内部的电子部件(I/O控制器)也有可能不同。

操作系统之IO设备详解_第28张图片
操作系统之IO设备详解_第29张图片

五、设备驱动程序

操作系统之IO设备详解_第30张图片

驱动程序一般会以一个独立进程的方式存在。

六、中断处理程序

操作系统之IO设备详解_第31张图片

七、知识回顾

操作系统之IO设备详解_第32张图片
操作系统之IO设备详解_第33张图片

五、核心子系统

一、知识总览

操作系统之IO设备详解_第34张图片

二、这个功能要在哪个层次实现

操作系统之IO设备详解_第35张图片

三、I/O调度

操作系统之IO设备详解_第36张图片

四、设备保护

操作系统之IO设备详解_第37张图片

六、假脱机技术(SPOOLing技术)

一、什么是脱机技术

操作系统之IO设备详解_第38张图片

  • 手工操作阶段:主机直接从I/O设备获得数据,由于设备速度慢,主机速度很快。人机速度矛盾明显,主要浪费很多时间来等待设备。

操作系统之IO设备详解_第39张图片

二、假脱机技术–输入井和输出井

  • “假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。SPOOLing系统的组成如下:
    操作系统之IO设备详解_第40张图片
    操作系统之IO设备详解_第41张图片
    操作系统之IO设备详解_第42张图片

操作系统之IO设备详解_第43张图片

三、共享打印机原理分析

  • 独占是设备–只允许各个进程串行使用的设备。一段时间内只能满足一个进程的请求。
  • 共享设备–运行多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)。可以同时满足多个进程的请求。
  • 操作系统之IO设备详解_第44张图片

操作系统之IO设备详解_第45张图片
操作系统之IO设备详解_第46张图片

四、知识总览

操作系统之IO设备详解_第47张图片

七、设备的分配与回收

一、知识总览

操作系统之IO设备详解_第48张图片

二、设备分配是应考虑的因素

操作系统之IO设备详解_第49张图片

  • 设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。
  • 独占设备–一个时段只能分配给一个进程(如打印机)
  • 共享设备–可同时分配给多个进程使用(如磁盘),各进程往往是宏观上同时共享使用设备,而微观上交替使用。
  • 虚拟设备–采用SPOOLing技术将独占设备改造成虚拟的共享设备,可同时分配给多个进程使用(如采用SPOOLing技术实现的共享打印)
  • 设备的分配算法:
    • 先来先服务
    • 优先级高者优先
    • 短任务优先
  • 从进程运行的安全性考虑,设备分配有两种方式:
    • 安全分配方式:为进程分配一个设备后就将进程阻塞,本次I/O完成后才将进程唤醒。(eg:考虑进程请求打印机打印输出的例子)
      • 一个时段内每个进程只能使用一个设备
      • 优点:破坏了“请求和保持”条件,不会死锁
      • 缺点:对于一个进程来说,CPU和I/O设备只能串行工作
    • 不安全分配方式:进程发出I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求。只有某个I/O请求得不到满足时才将进程阻塞。
      • 一个进程可以同时使用多个设备
      • 优点:进程的计算任务和I/O任务可以并行处理,使进程迅速推进
      • 缺点:有可能发生死锁(死锁避免、死锁的检测和解除)

三、静态分配和动态分配

  • 静态分配:进程运行前为其分配全部所需资源,进行结束后归还资源
    • 破坏了“请求和保持”条件,不会发生死锁
  • 动态分配:进程运行过程中动态申请设备资源

四、设备分配管理中的数据结构

  • 设备、控制器、通道之间的关系:

操作系统之IO设备详解_第50张图片

  • 一个通道可控制多个设备控制器,每个设备控制器可控制多个设备。
  • 设备控制表(DCT):系统为每个设备配置一张DCT,用于记录设备情况。
    操作系统之IO设备详解_第51张图片

“进程管理”章节中增加提到过“系统会根据阻塞原因不同,将进程PCB挂到不同的阻塞队列中”。

  • 控制器控制表(COCT):每个设备控制器都会对应一张COCT。操作设备根据COCT的信息对控制器进行操作和管理。
    操作系统之IO设备详解_第52张图片

  • 通道控制表(CHCT):每个通道都会对应一张CHCT。操作系统根据CHCT的信息对通道进行操作和管理。

操作系统之IO设备详解_第53张图片

  • 系统设备表(SDT):记录了系统中全部设备的情况,每个设备对应一个表目。

操作系统之IO设备详解_第54张图片

五、设备分配的步骤

  • 根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)
  • 根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。
  • 根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。
  • 根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。

操作系统之IO设备详解_第55张图片

注:只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进行数据传送
操作系统之IO设备详解_第56张图片

六、设备分配步骤的改进

  • 根据进程请求的逻辑设备名查找SDT(注:用户编程时提供的逻辑设备名其实就是“设备类型”)。
  • 查找SDT,找到用户进程的指定类型、并且空闲的设备,将其分配给该进程。操作系统再逻辑设备表(LUT)中新增一个表项。
  • 根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。
  • 根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道登录队列中,不忙碌则将通道分配给进程。

操作系统之IO设备详解_第57张图片
操作系统之IO设备详解_第58张图片

七、知识总览

操作系统之IO设备详解_第59张图片

八、缓冲区管理

一、知识总览

操作系统之IO设备详解_第60张图片

二、什么是缓冲区?有什么作用?

  • 缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可以利用内存作为缓冲区。
  • 使用硬件作为缓冲区的成本较高,容量也较少,一般仅用在对速度要求非常高的场合(如寄存器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)
  • 一本情况下,更多的是利用内存作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理好这些缓冲区。

操作系统之IO设备详解_第61张图片

操作系统之IO设备详解_第62张图片

三、单缓冲

  • 假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。
  • 注意:当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

操作系统之IO设备详解_第63张图片

操作系统之IO设备详解_第64张图片
操作系统之IO设备详解_第65张图片
操作系统之IO设备详解_第66张图片

四、双缓冲

  • 假设某用户进程请求某种块设备读入若干的数据。若采用缓冲的策略,操作系统会在主存中为其分配两个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)

操作系统之IO设备详解_第67张图片

操作系统之IO设备详解_第68张图片

五、使用单/双缓冲区在通信时的区别

  • 两台机器之间通信时,可以配置缓冲区用于数据的发送和接受。

操作系统之IO设备详解_第69张图片

显然,若两个相互通信的机器只设置单缓冲区,在任意时刻只能实现数据的单向传输。

操作系统之IO设备详解_第70张图片

  • 若两个相互通信的机器设置双缓冲区,则同一时刻可以实现双向的数据传输。

注:管道通信中的“管道”其实就是缓冲区。要实现数据的双向传输,必须设置两个管道。

六、循环缓冲区

  • 将多个大小相等的缓冲区链接成一个循环队列。
  • 注:以下图示中,橙色表示已充满数据的缓冲区,绿色表示缓冲区。

操作系统之IO设备详解_第71张图片

七、缓冲池

  • 缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可分为:空缓冲队列、装满输入数据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。
  • 另外,根据一个缓冲区在实际运算中扮演的功能的不同,又设置了四种工作缓冲区,用于收容输入数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区(hout)、用于提取输出数据的工作缓冲区(sout)

操作系统之IO设备详解_第72张图片

八、知识总览

操作系统之IO设备详解_第73张图片

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