王道操作系统课代表 - 考研计算机 第五章 输入输出管理 究极精华总结笔记

这篇博客是作者考研期间对操作系统中输入输出管理的全面总结,包括I/O基础、设备独立软件、控制方式、软件层次结构和磁盘管理等。重点强调了I/O接口、中断处理、DMA、SPOOLing技术和磁盘调度算法。适合计算机考研者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!!
 
关于对 输入输出管理 章节知识点总结的十分全面,涵括了《操作系统》课程里的全部要点本人来来回回过了三遍视频),其中还陆陆续续补充了许多内容,所以读者可以相信本篇博客对于考研操作系统 “输入输出管理” 章节知识点的正确性与全面性
但如果还有自主命题的学校,还需额外读者自行再观看对应学校的自主命题材料
 
操作系统 笔记导航🚥🚥🚥

  1. 🥬 第一章 计算机概述
  2. 🥕 第二章 进程与线程
  3. 🥪 第三章 内存管理
  4. 🍊 第四章 文件管理
  5. 🍒 第五章 输入输出管理 ⇦当前位置🪂
  6. 🍔 操作系统 复试精简笔记 (未完成)
  7. 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍
     

如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏 👏、求关注!👀
你必考上研究生!我说的,耶稣来了也拦不住!😀😀😀

在这里插入图片描述

 

食用说明书:
第一遍学习王道课程时,我的笔记只有标题和截图,后来复习发现看只看图片,并不能很快的了解截图中要重点表达的知识点。
在第二遍复习中,我给每一张截图中 标记了重点,以及 每张图片上方总结了该图片 对应的知识点 以及自己的 思考
最后第三遍,查漏补缺。
所以 ,我把目录放在博客的前面,就是希望读者可以结合目录结构去更好的学习知识点,之后冲刺复习阶段脑海里可以浮现出该知识结构,做到对每一个知识点熟稔于心!
请读者放心!目录展示的知识点结构是十分合理的,可以放心使用该结构去记忆学习!
注意(⊙o⊙)!,每张图片上面的文字,都是该图对应的知识点总结,方便读者更快理解图片内容。

 


《操作系统》第5章 输入输出管理

【考纲内容】 王道 297
 
(一) I/O管理基础

​ 网课耗时:1.5 h

  • 设备 :设备的基础概念,设备的分类,I/O接口;
  • I/O控制方式:轮询方式,中断方式,DMA方式;
  • I/O软件层次结构:中断处理程序,驱动程序,设备独立性软件,用户层I/O软件;
  • 输入/输出应用程序接口:字符设备接口,块设备接口,网设备接口,阻塞/非阻塞IO;
     

(二) 设备独立软件

​ 网课耗时:1 h

  • 缓冲区管理
  • 设备分配与回收
  • 假脱机技术(SPOOLing)
  • 设备驱动程序接口
     

(三) 外存管理

​ 网课耗时:1 h

  • 磁盘 :磁盘结构,格式化,分区,磁盘调度方法;
  • 固态硬盘 :读写性能特性,磨损均衡;
     

【复习提示】
 
本章的内容较为分散,重点掌握:
 
I/O接口、IO软件、三种IO控制方式、高速缓存与缓冲区、SPOOLing 技术,磁盘特性和调度算法
 
​ 本章很多知识点与硬件高度相关,建议与计算机组成原理的对应章节结合复习;
 
​ 本章内容在历年统考真题中所占的比重不大,若统考中出现本章的题目,则基本上可以断定一定非常简单;

 

5.1 I/O管理概述

5.1.1 I/O设备

​ 本节介绍 I/O 设备管理 的对象 - I/O 设备

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5Qy8U7N-1677640081649)(《操作系统》第5章 输入输出管理.assets/image-20220902152526968.png)]

 

1. 什么是IO设备 ?

​ 将数据输入到计算机中,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件;

在这里插入图片描述

 

2. 按使用特性分类

在这里插入图片描述

 

3. 按传输速率分类

在这里插入图片描述

4. 按信息交换的单位分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FNAGEuda-1677640081652)(《操作系统》第5章 输入输出管理.assets/image-20220902152810674.png)]

小结

在这里插入图片描述


5.1.2 I/O控制器

在这里插入图片描述

1. 机械部件

在这里插入图片描述

2. 电子部件

I/O接口 是指辅助 CPU 控制 I/O 设备机械部件的电子部件,也称 设备控制器 或 I/O控制器

I/O端口 是指设备控制器中可被CPU直接访问的 寄存器

​ I/O控制器的功能(下图中对各功能的解释了解即可):

  • ① 接受和识别CPU发出命令;
  • ② 向CPU报告设备的状态;
  • ③ 数据交换;
  • ④ 地址识别;
  • ⑤ 数据缓冲;
  • ⑥ 差错控制;

在这里插入图片描述

I/O控制器的组成 (三个主要部分)

  • 设备控制器与CPU的接口;
  • 设备控制器与设备的接口;
  • I/O逻辑单元;

在这里插入图片描述
在这里插入图片描述

I/O端口 是指设备控制器中可被CPU直接访问的 ==寄存器,==包括:

  • 数据寄存器:实现CPU与外设之间的数据缓冲;
  • 状态寄存器:获取执行结构和设备的状态信息,以让CPU知道是否准备好;
  • 控制寄存器:由CPU写入,以便启动命令或更改设备模式;

在这里插入图片描述

​ 为了实现 CPU 与 I/O端口 进行通信,有两种方法:

​ ① 独立编制

​ 为每个端口分配一个 ==I/O端口号,==所有I/O端口形成I/O端口空间;

​ 普通用户程序不能对其访问,只有操作系统使用特殊的I/O指令才能访问端口;

​ ② 统一编制(内存映射I/O)

​ 每个端口被分配唯一的 ==内存地址,==且不会有内存被分配这一地址,通常分配给端口的地址靠近地址空间的开端;

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.1.3 I/O控制方式

本节内容对标 《计算机组成原理》7.3 I/O方式,两个之间配合学习;

​ 设备管理的主要任务之一是 控制设备和 内存或CPU 之间的数据传输

外围设备 和 内存 之间的输入/输出控制方式有以下四种:

在这里插入图片描述

在这里插入图片描述

1. 程序直接控制方式

在这里插入图片描述

在这里插入图片描述

​ 程序直接控制方式的小结 ⭐

在这里插入图片描述

2. 中断驱动方式

在这里插入图片描述

在这里插入图片描述

3. DMA方式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 通道控制方式 *

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.1.4 I/O软件层次结构

​ 为了更好地设计 I/O 软件,采用 层次式结构 的 I/O 软件;

在这里插入图片描述

1. 用户层软件

在这里插入图片描述

2. 设备独立性软件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 设备驱动程序
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 中断处理程序

在这里插入图片描述

硬件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


5.1.4 I/O应用程序接口 与 设备驱动程序接口

在这里插入图片描述

1. I/O应用程序接口

​ 在I/O系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口:

  • 字符设备接口
  • 块设备接口
  • 网络设备接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

【补充】OS的I/O接口还涉及两种模式:阻塞 / 非阻塞

在这里插入图片描述

2. 设备驱动程序接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 设备独立性软件

5.2.1 IO核心子系统

I/O 系统 = 设备独立性软件层 + 设备驱动程序层 + 中断处理程序;

​ 考研重点关注的技术:

  • I/O调度;
  • 设备保护;
  • 假脱机技术;
  • 设备分配与回收;
  • 缓冲区管理;

在这里插入图片描述

​ 和 硬件无关 层次实现的功能:

  • 用户层软件 - 假脱机技术;
  • 设备独立性软件 - I/O调度、设备保护、设备分配与回收、缓冲区管理;

​ 和 硬件相关 的事情,由设备驱动程序、中断处理程序负责;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.2.2 假脱机技术(SPOOLing技术)

在这里插入图片描述

1. 什么是脱机技术 ?

在这里插入图片描述

在这里插入图片描述

2. 假脱机技术的实现原理

① 输入井 和 输出井

在这里插入图片描述

在这里插入图片描述

② 输入进程 和 输出进程

在这里插入图片描述

在这里插入图片描述

③ 输入/输出缓冲区

在这里插入图片描述

​ 共享打印机原理分析

在这里插入图片描述

​ 共享打印过程

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.2.3 设备分配与回收

在这里插入图片描述

1. 设备分配时应考虑的因素

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 静态分配 和 动态分配

在这里插入图片描述

3. 设备分配管理中的数据结构

在这里插入图片描述

① 设备控制表 DCT

在这里插入图片描述

② 控制器控制表 COCT

在这里插入图片描述

③ 通道控制表 CHCT

在这里插入图片描述

④ 系统设备表 SDT

在这里插入图片描述

4. 设备分配的步骤

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. 设备分配步骤的改进方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.2.4 缓冲区管理

在这里插入图片描述

1. 缓冲区

在这里插入图片描述

在这里插入图片描述

2. 单缓冲

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 双缓冲

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. 循环缓冲

在这里插入图片描述

5. 缓冲池

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述

5.3 磁盘和固态硬盘

5.3.1 磁盘的结构

在这里插入图片描述

在这里插入图片描述

1. 磁盘、磁道、扇区

在这里插入图片描述

2. 如何在磁盘中读/写数据

在这里插入图片描述

3. 盘面、柱面的概念

在这里插入图片描述

4. 磁盘的物理地址

在这里插入图片描述

5. 磁盘的分类

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.3.2 磁盘调度算法

在这里插入图片描述

1. 一次磁盘读/写操作需要的时间

寻道时间 TS

​ Ts = s + m × n

延迟时间 TR

​ TR = (1/2) × (1/r)

1/r 就是转一圈需要的时间,而找到目标扇区平均需要转半圈;

传输时间 Tt

​ Tt = (1/r) / (b/N)

在这里插入图片描述

在这里插入图片描述

2. 磁盘调度算法

① 先来先服务算法

在这里插入图片描述

② 最短寻找时间优先

在这里插入图片描述

③ 扫描算法

在这里插入图片描述

LOOK调度算法

在这里插入图片描述

④ 循环扫描算法

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


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

在这里插入图片描述

交替编号

在这里插入图片描述

磁盘地址结构的涉及

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

错位命名

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


5.3.4 磁盘的管理

在这里插入图片描述

1. 磁盘初始化

在这里插入图片描述

2. 引导块

在这里插入图片描述

​ 内存中ROM存放的是 自举装入程序 , 而引导块存放的是完整的自举程序;

在这里插入图片描述

3. 坏块的管理

​ 坏块是硬件故障,无法修复;

在这里插入图片描述

小结

在这里插入图片描述


5.3.5 固态硬盘

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.4 常见问题和易混淆知识点

1.设备分配

​ 1)分配设备。首先根据I/O请求中的物理设备名查找系统设备表(SDT),从中找出该设备的 DCT,再根据DCT 中的设备状态字段,可知该设备是否正忙。若忙,便将请求IO进程的PCB挂到设备队列上;若空闲,则按照一定的算法计算设备分配的安全性,若安全则将设备分配给请求进程,否则仍将其PCB挂到设备队列上。

​ 2)分配控制器。系统把设备分配给请求IO的进程后,再到其DCT中找出与该设备连接的
控制器的COCT,从 COCT中的状态字段中可知该控制器是否忙碌。若忙,则将请求IO进程的PCB 挂到该控制器的等待队列上;若空闲,则将控制器分配给进程。

​ 3)分配通道。在该COCT中又可找到与该控制器连接的通道的CHCT,再根据CHCT 内的状态信息,可知该通道是否忙碌。若忙,则将请求TO的进程挂到该通道的等待队列上;若空闲,则将该通道分配给进程。只有在上述三者都分配成功时,这次设备的分配才算成功。然后,便可启动该IO设备进行数据传送。

​ 为使独占设备的分配具有更强的灵活性,提高分配的成功率,还可从以下两方面对基本的设备分配程序加以改进:

​ ① 增加设备的独立性。进程使用逻辑设备名请求IO。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,则又查找第二个该类设备的DCT。仅当所有该类设备都忙时,才把进程挂到该类设备的等待队列上;只要有一个该类设备可用,系统便进一步计算分配该设备的安全性。

​ ② 考虑多通路情况。为防止IO系统的“瓶颈”现象,通常采用多通路的TO系统结构。此时对控制器和通道的分配同样要经过几次反复,即若设备(控制器)所连接的第一个控制器(通道)忙时,则应查看其所连接的第二个控制器(通道),仅当所有控制器(通道)都忙时,此次的控制器(通道)分配才算失败,才把进程挂到控制器(通道)的等待队列上。而只要有一个控制器(通道)可用,系统便可将它分配给进程;

​ 设备分配过程中,先后分别访问的数据结构为SDT → DCT → COCT → CHCT。要成功分配一个设备,必须要:

​ ① 设备可用;② 控制器可用;③ 通道可用;所以,“设备分配,要过三关”;

2.提高磁盘I/O速度的方法

1)提前读。在读磁盘当前块时,把下一磁盘块也读入内存缓冲区;

2)延迟写。仅在缓冲区首部设置延迟写标志,然后释放此缓冲区并将其链入空闲缓冲区链表的尾部,当其他进程申请到此缓冲区时,才真正把缓冲区信息写入磁盘块;

3)虚拟盘。是指用内存空间去仿真磁盘,又叫RAM盘。虚拟盘是一种易失性存储器。虚拟盘常用于存放临时文件;

1)I/O管理要完成哪些功能 ?

答:

  • 状态跟踪:要能实时掌握外部设备的状态;
  • 设备存取:要实现对设备的存取操作;
  • 设备分配:在多用户环境下,负责设备的分配与回收;
  • 设备控制:包括设备的驱动、完成和故障的中断处理;

1) 当处理机和外部设备的速度差距较大时,有什么办法可以解决问题 ?

答:

​ 可采用缓冲技术来缓解CPU 与外设速度上的矛盾;

​ 即在某个地方(一般为主存)设立一片缓冲区,外设与CPU的输入/输出都经过缓冲区,这样外设和CPU就都不用互相等待。

2) 什么是设备的独立性 ? 引入设备的独立性有什么好处 ?

答:

​ 设备独立性是指用户在编程序时使用的设备与实际设备无关;

​ 一个程序应独立于分配给它的某类设备的具体设备,即在用户程序中只指明IO使用的设备类型即可;

​ 设备独立性有以下优点:①方便用户编程。②使程序运行不受具体机器环境的限制。③便于程序移植。

1)在磁盘上进行一次读写操作需要哪几部分时间 ?其中哪部分时间最长 ?

​ 在磁盘上进行一次读写操作花费的时间由寻道时间、延迟时间和传输时间决定;

​ 其中寻道时间是将磁头移动到指定磁道所需要的时间,延迟时间是磁头定位到某一磁道的扇区(块号)所需要的时间,传输时间是从磁盘读出或向磁盘写入数据所经历的时间;

​ 一般来说,寻道时间因为要移动磁臂,所以占用时间最长;

2)存储一个文件时,当一个磁道存储不下时,

剩下部分是存在同一个盘面的不同磁道好,还是存在同一一个柱面上的不同盘面好 ?

​ 上一问已经说到,寻道时间对于一次磁盘访问的影响是最大的;

​ 若存在同一个盘面的不同磁道,则磁臂势必要移动,这样会大大增加文件的访问时间,而存在同一个柱面上的不同盘面就不需要移动磁道,所以一般情况下存在同一个柱面上的不同盘面更好;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的clz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值