操作系统(四)

参考资料:

计算机操作系统学习笔记(四):设备管理 — I/O 管理 - 知乎

设备管理(设备管理概念、设备驱动程序)-腾讯云开发者社区-腾讯云

操作系统(15)-----I/O设备管理(万字总结~)(1)-阿里云开发者社区

史上最全计算机操作系统详解(赶紧收藏) - 知乎

目录

操作系统(四)

3.4 设备管理

3.4.1 设备管理概述

1. I/O设备的分类

按传输速率分类

按信息交换单位分类

按共享属性分类

2. I/O软件层次结构

用户层软件

设备独立性软件(逻辑I/O)

设备驱动程序

中断处理程序

3. I/O控制方式

程序直接控制方式(轮询)

中断驱动方式

DMA方式(直接存储器访问)

通道方式

3.4.2 I/O核心子系统

1. 缓冲管理

2. 设备分配与回收

3.4.3 磁盘存储器管理

1. 磁盘结构

2. 磁盘访问时间

3. 磁盘调度算法

先来先服务 (FCFS)

最短寻道时间优先 (SSTF)

扫描算法 (SCAN / 电梯算法)

循环扫描算法 (CSCAN)

3.4.4 虚拟设备与SPOOLing技术

1. SPOOLing技术原理

2. 实现设备虚拟化


3.4 设备管理

3.4.1 设备管理概述

1. I/O设备的分类
按传输速率分类

低速设备:键盘、鼠标。

中速设备:打印机。

高速设备:磁盘、磁带。

按信息交换单位分类

块设备:以数据块为单位传输,可寻址,如磁盘(传输速率高,随机访问)。

字符设备:以字符为单位传输,不可寻址,如键盘、打印机(传输速率低,常采用中断方式)。

按共享属性分类

独占设备:一段时间内只允许一个进程访问(如打印机)。

共享设备:一段时间内允许多个进程交替访问(如磁盘)。

虚拟设备:通过SPOOLing技术将独占设备变为逻辑上的共享设备。

2. I/O软件层次结构

用户层软件

产生I/O请求,解析用户命令(如C语言的printf库函数)。

设备独立性软件(逻辑I/O)

实现“设备独立性”,将逻辑设备名映射为物理设备名;

进行差错控制;提供统一的系统调用接口。

设备驱动程序

直接与硬件相关,将上层命令转换为设备控制器能理解的具体操作(如将“读扇区”转为寄存器读写)。

中断处理程序

最底层软件,当I/O完成时被唤醒,进行善后处理。

3. I/O控制方式

程序直接控制方式(轮询)

CPU不断查询设备状态。

缺点:

CPU与设备串行工作,CPU利用率极低,“忙等”。

中断驱动方式

CPU发出命令后做其他事,I/O完成后发中断信号。

优点:

实现了CPU与I/O并行。

缺点:

数据传输单位小(字/字节),频繁中断消耗CPU时间。

DMA方式(直接存储器访问)

数据传输单位为数据块;

数据直接在内存与设备间传输,无需CPU干预。

仅在传输开始和结束时需要CPU干预。

通道方式

独立的I/O处理器,可执行通道程序。

一个通道可控制多台设备。

优点:

CPU负担最轻,并行性最高。

3.4.2 I/O核心子系统

1. 缓冲管理
目的

缓和CPU与I/O设备速度不匹配的矛盾;减少对CPU的中断频率;解决数据粒度不匹配问题。

单缓冲

设一个缓冲区,CPU处理数据时,设备只能等待。

处理时间约 T + C(T为设备输入时间,C为CPU处理时间)。

双缓冲

设两个缓冲区,交替使用。

若 T < C,处理时间约 C;

若 T > C,处理时间约 T。

循环缓冲

多个缓冲区链接成环,适用于输入/输出速度相差不大的情况。

缓冲池

公用缓冲区集合,由OS管理,既可输入也可输出,利用率最高。

2. 设备分配与回收
设备分配的数据结构
  • DCT(设备控制表):记录设备状态(忙/闲)、等待队列指针。
  • COCT(控制器控制表)。
  • CHCT(通道控制表)。
  • SDT(系统设备表):系统范围内的设备资源表。
设备分配策略

先来先服务。

优先级高者优先。

设备独立性

应用程序使用逻辑设备名请求设备,系统在运行时将其映射为物理设备名。

好处是提高了程序的适应性,不依赖于具体物理设备

3.4.3 磁盘存储器管理

1. 磁盘结构

磁盘由多个盘片组成,每面有磁道,多个盘面对应磁道形成柱面。

扇区:磁盘物理块,最小的读写单位。

2. 磁盘访问时间

3. 磁盘调度算法
先来先服务 (FCFS)

按请求到达顺序服务。

公平,简单,但寻道距离长,效率低。

最短寻道时间优先 (SSTF)

选择距离当前磁头最近的请求。

性能优于FCFS,但可能导致“饥饿”现象(远端请求长时间得不到服务)。

扫描算法 (SCAN / 电梯算法)

磁头沿一个方向移动到底,途中服务所有请求,然后反向移动。

消除了饥饿,性能较好。

循环扫描算法 (CSCAN)

单向移动(如从外向内),到达边缘后直接跳回起点(不服务),重新开始扫描。

消除了SCAN算法中边缘请求响应时间变化大的问题,响应时间更均匀。

3.4.4 虚拟设备与SPOOLing技术

1. SPOOLing技术原理

定义

在磁盘上开辟“输入井”和“输出井”,利用外围处理机(实际上是预输入程序和缓输出程序)实现I/O。

组成

输入井/输出井:磁盘上的缓冲区,模拟物理设备。

输入缓冲区/输出缓冲区:内存缓冲区。

预输入程序/缓输出程序:负责将数据从设备读到井,或从井写到设备。

2. 实现设备虚拟化
工作流程

核心优势

将独占设备(如打印机)改造为共享设备。

实现了I/O操作的“脱机”处理,提高了I/O速度。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐