当前位置: 首页 > news >正文

【操作系统】设备管理

设备管理

  • 一、I/O设备
    • 1.1 I/O设备的概念和分类
    • 1.2 I/O控制器
    • 1.3 I/O控制方式
      • 1.3.1 程序直接控制方式
      • 1.3.2 中断驱动方式
      • 1.3.3 DMA方式
      • 1.3.4 通道控制方式
  • 二、I/O软件层次结构
    • 2.1 用户层软件(假脱机技术SPOOLing)
    • 2.2 设备独立性软件(I/O调度和设备保护)
    • 2.3 设备驱动程序
    • 2.4 中断处理程序
  • 三、磁盘
    • 3.1 磁盘的结构
    • 3.2 磁盘调度算法
      • 3.2.1 先来先服务FCFS
      • 3.2.2 最短寻找时间优先SSTF
      • 3.2.3 扫描算法SCAN
      • 3.2.4 LOOK调度
    • 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的进程(或其他进程)的运行环境,然后继续执行。
说明
完成一次读/写操作的流程见右图,Key word:中断
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方式

在这里插入图片描述

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

1.3.4 通道控制方式

在这里插入图片描述

内容说明
完成一次读/写操作的流程见右图,Key word: 中断
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 减少磁盘延迟时间的方法

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 多机多卡训练和单机多卡训练速度对比
  • VTP协议故障排除——三层交换机
  • MySQL零基础教程15—简单的表连接(join)
  • Windows系统还原详解
  • 51单片机使用DS18B20温度传感器
  • day27 第八章 贪心算法 part01
  • 深度学习R8周:RNN实现阿尔兹海默症(pytorch)
  • 补丁供应链案例:CVE-2024-7254. Protobuf. Google
  • FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解)
  • FastGPT 引申:如何基于 LLM 判断知识库的好坏
  • cesium+vue3自定义HTML实体弹窗、加高德路网、防实体漂浮、让用户画圆、鹰眼
  • 51c自动驾驶~合集53
  • 从建筑设计到施工工具:软件体系结构与框架的协同之道
  • el-input 设置类型为number时,输入中文后光标会上移,并且会出现上下箭头
  • RK3568平台(GPIO篇)libgpiod的使用
  • 为AI聊天工具添加一个知识系统 之133 详细设计之74通用编程语言 之4 架构及其核心
  • AI学习笔记:LM studio大模型加载参数说明
  • Hutool一个类型转换工具类 `Convert`,
  • Redis——缓存穿透、击穿、雪崩
  • 力扣-动态规划-115 不同子序列
  • 做公司网站需要准备什么/想做推广哪个平台好
  • 洛可可设计/抖音seo源码搭建
  • 免费源码资源源码站go/google adwords关键词工具
  • 鹤山市城乡住房建设部网站/日本比分算1:1
  • 做外贸仿牌网站/做网页多少钱一个页面
  • 建设银行网站入口/seo视频教程汇总