【操作系统】设备管理

设备管理

  • 一、I/O设备
    • [1.1 I/O设备的概念和分类](#1.1 I/O设备的概念和分类)
    • [1.2 I/O控制器](#1.2 I/O控制器)
    • [1.3 I/O控制方式](#1.3 I/O控制方式)
      • [1.3.1 程序直接控制方式](#1.3.1 程序直接控制方式)
      • [1.3.2 中断驱动方式](#1.3.2 中断驱动方式)
      • [1.3.3 DMA方式](#1.3.3 DMA方式)
      • [1.3.4 通道控制方式](#1.3.4 通道控制方式)
  • 二、I/O软件层次结构
    • [2.1 用户层软件(假脱机技术SPOOLing)](#2.1 用户层软件(假脱机技术SPOOLing))
    • [2.2 设备独立性软件(I/O调度和设备保护)](#2.2 设备独立性软件(I/O调度和设备保护))
    • [2.3 设备驱动程序](#2.3 设备驱动程序)
    • [2.4 中断处理程序](#2.4 中断处理程序)
  • 三、磁盘
    • [3.1 磁盘的结构](#3.1 磁盘的结构)
    • [3.2 磁盘调度算法](#3.2 磁盘调度算法)
      • [3.2.1 先来先服务FCFS](#3.2.1 先来先服务FCFS)
      • [3.2.2 最短寻找时间优先SSTF](#3.2.2 最短寻找时间优先SSTF)
      • [3.2.3 扫描算法SCAN](#3.2.3 扫描算法SCAN)
      • [3.2.4 LOOK调度](#3.2.4 LOOK调度)
    • [3.3 减少磁盘延迟时间的方法](#3.3 减少磁盘延迟时间的方法)

一、I/O设备

1.1 I/O设备的概念和分类

1.2 I/O控制器

  • I/O设备的机械部件主要用来执行具体I/O操作。如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面。
  • I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板。
  • CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的"中介",用于实现CPU对设备的控制。这个电子部件就是I/O控制器 ,又称设备控制器。


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

1.3 I/O控制方式

1.3.1 程序直接控制方式

内容 说明
完成一次读/写操作的流程
CPU干预的频率 很频繁 ,I/O操作开始之前、完成之后需要CPU介入,并且在等待I/O完成的过程中CPU需要不断地轮询检查。
数据传送的单位 每次读/写一个
数据的流向 读操作(数据输入): I/O设备→CPU→内存 写操作(数据输出): 内存→CPU→I/O设备 每个字的读/写都需要CPU的帮助
主要缺点和主要优点 优点: 实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可(因此才称为"程序直接控制方式") 缺点: CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于"忙等"状态,CPU利用率低。

1.3.2 中断驱动方式

  • 引入中断机制。由于I/O设备速度很慢,因此在CPU发出读/写命令后,可将等待I/O的进程阻塞,先切换到别的进程执行。当I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存。接着,CPU恢复等待I/O的进程(或其他进程)的运行环境,然后继续执行。
说明
完成一次读/写操作的流程
CPU干预的频率 每次I/O操作开始之前、完成之后需要CPU介入 。 等待I/O完成的过程中CPU可以切换到别的进程执行。
数据传送的单位 每次读/写一个
数据的流向 读操作(数据输入):I/O设备→CPU→内存 写操作(数据输出):内存→CPU→I/O设备
主要缺点和主要优点 优点:与"程序直接控制方式"相比,在"中断驱动方式"中,I/O控制器会通过中断信号主动报告I/O已完成,CPU不再需要不停地轮询。 CPU和I/O设备可并行工作,CPU利用率得到明显提升。 缺点:每个在I/O设备和内存之间的传输,都需要经过CPU。而频繁的中断处理会消耗较多的CPU时间。

1.3.3 DMA方式

内容 说明
完成一次读/写操作的流程
CPU干预的频率 仅在传送一个或多个数据块的开始和结束时,才需要CPU干预
数据传送的单位 每次读/写一个或多个(注意:每次读写的只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)
数据的流向 读操作(数据输入):I/O设备→内存 写操作(数据输出):内存→I/O设备
主要缺点和主要优点 优点:数据传输以"块"为单位,CPU介入频率进一步降低。数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步提升。CPU和I/O设备的并行性得到提升。

1.3.4 通道控制方式

内容 说明
完成一次读/写操作的流程
CPU干预的频率 极低,通道会根据CPU的指示执行相应的通道程序,只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预
数据传送的单位 每次读/写一组数据块
数据的流向(在通道的控制下进行) 读操作(数据输入):I/O设备→内存 写操作(数据输出):内存→I/O设备
主要缺点和主要优点 缺点:实现复杂,需要专门的通道硬件支持 优点:CPU、通道、I/O设备可并行工作,资源利用率很高。
完成一次读/写的过程 CPU干预频率 每次 I/O 的数据传输单位 数据流向 优缺点
程序直接控制方式 CPU发出I/O命令后需要不断轮询 极高 设备→CPU→内存内存→CPU→设备
中断驱动方式 CPU发出I/O命令后可以做其他事,本次I/O完成后设备控制器发出中断信号 设备→CPU→内存内存→CPU→设备
DMA方式 CPU发出I/O命令后可以做其他事,本次I/O完成后DMA控制器发出中断信号 设备→内存内存→设备
通道控制方式 CPU发出I/O命令后可以做其他事。通道会执行通道程序以完成I/O,完成后通道向CPU发出中断信号 一组块 设备→内存内存→设备

二、I/O软件层次结构

2.1 用户层软件(假脱机技术SPOOLing)

  • "假脱机技术",又称"SPOOLing技术"是用软件的方式模拟脱机技术。

  • 当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,而是由假脱机管理进程为每个进程做两件事:
    • 在磁盘输出井中为进程申请一个空闲缓冲区(也就是说,这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
    • 为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户
      的打印数据存放位置等信息的),再将该表挂到假脱机文件队列上
  • 当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印。用这种方式可依次处理完全部的打印任务
  • 虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享。

2.2 设备独立性软件(I/O调度和设备保护)

  • I/O调度:用某种算法确定一个好的顺序来处理各个1/O请求。

  • 设备保护:设备被看做是一种特殊的文件,每个设备也会有对应的FCB。当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,以此实现"设备保护"的功能。

2.3 设备驱动程序

2.4 中断处理程序

三、磁盘

3.1 磁盘的结构


  • 可用(柱面号,盘面号,扇区号 )来定位任意一个"磁盘块"。
    ①根据"柱面号"移动磁臂,让磁头指向指定柱面;
    ②激活指定盘面对应的磁头;
    ③磁盘旋转的过程中,指定的扇区会从磁头下面划过,这样就完成了对指定扇区的读/写。

3.2 磁盘调度算法


3.2.1 先来先服务FCFS

  • 根据进程请求访问磁盘的先后顺序进行调度。
  • 优点:公平
  • 缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长

3.2.2 最短寻找时间优先SSTF

  • SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。(其实就是贪心算法的思想,只是选择眼前最优,但是总体未必最优)
  • 优点:性能较好,平均寻道时间短
  • 缺点:可能产生"饥饿"现象

3.2.3 扫描算法SCAN

只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动 。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。

3.2.4 LOOK调度

扫描算法(SCAN)中,只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了。LOOK调度算法就是为了解决这个问题**,如果在磁头移动方向上已经没有别的请求,就可以立即改变磁头移动方向**。(边移动边观察,因此叫LOOK)

3.3 减少磁盘延迟时间的方法

相关推荐
别说我什么都不会14 小时前
鸿蒙轻内核调测-内存调测-内存信息统计
操作系统·harmonyos
vincent_woo2 天前
再学安卓 - binder之驱动函数ioctl
android·操作系统
codists3 天前
《Operating System Concepts》阅读笔记:p177-p178
操作系统
别说我什么都不会6 天前
鸿蒙轻内核A核源码分析系列五 虚实映射(1)基础概念
操作系统·harmonyos
JohnYan6 天前
工作笔记 - 记一次iNode网络连接故障的排查
网络协议·安全·操作系统
csdn5659738506 天前
AI 时代下,操作系统如何进化与重构?
人工智能·重构·操作系统
codists7 天前
《Operating System Concepts》阅读笔记:p147-p158
操作系统
别说我什么都不会8 天前
鸿蒙轻内核A核源码分析系列二 数据结构-位图操作
操作系统·harmonyos
塞尔维亚大汉8 天前
OpenHarmony(鸿蒙南向)——平台驱动开发【SPI】
操作系统·harmonyos