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

news2024/9/29 3:32:10

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381474.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于.NET 7 + iView 的前后端分离的通用后台管理系统开源框架

更多开源项目请查看:一个专注推荐.Net开源项目的榜单 今天给大家推荐一套前后端分离通用后台管理系统开源框架。 项目简介 这是基于.Net 7 Vue.js开发的、前后端分离框架,前端UI框架采用iView,该项目只有基础功能模块,不包含具…

VMware虚拟机安装centos(超详细图文教程)

1、centos下载 Ubuntu下载地址:点这里 下载不成功的也可关注公众号获取:待更新 2、打开VMware VMware安装过程:待更新 2.1 创建新的虚拟机 2.2 一般情况都会选择典型(如果这里有需要选择自定义的一般也不会看教程了&#xff…

【Spark分布式内存计算框架——Spark Streaming】10. 应用案例:百度搜索风云榜(中)实时数据ETL存储

5.3 实时数据ETL存储 实时从Kafka Topic消费数据,提取ip地址字段,调用【ip2Region】库解析为省份和城市,存储到HDFS文件中,设置批处理时间间隔BatchInterval为10秒,完整代码如下: package cn.itcast.spar…

华为机试题:HJ94 记票统计(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

linux和windows中安装emqx消息服务器

大家好,我是雄雄,欢迎关注微信公众号雄雄的小课堂 现在是:2023年3月1日21:53:55 前言 最近几天看了下mqtt,通过不断的搜索资料,也将mqtt集成到项目中,跑了个demo运行,和预想中的差不多&#x…

Altair 宣布将于3月举办 Future.Industry 2023 全球虚拟大会

Altair(纳斯达克股票代码:ALTR)近日宣布将于 2023 年 3 月 8 - 9 日 举办年度全球虚拟大会 Future.Industry 2023。旨在探索影响全球未来的新趋势,并深入探讨仿真、高性能计算 (HPC)、人工智能(AI)和数据分…

使用jenkins+nginx自动化部署前后端项目并打包备份

前言:因为之前使用docker拉取的jenkins无法检测到本地服务器安装的jdk和maven,所以我在本地服务器直接拉取了jenkins,使用8090端口与docker拉取的jenkins进行对比,可以检测到本地服务器安装的jdk和maven,前端和后端分开…

ETHDenver 2023

ETHDenver是全球最大、持续时间最长的以太坊活动之一,今年的活动定于2月24日至3月5日在美国科罗拉多州丹佛市盛大举行。这次活动将面向以太坊和其他区块链协议爱好者、设计者和开发人员。Moonbeam作为ETHDenver 2023的Meta赞助商,将在本次活动中展示令人…

如何使用crAPI学习保护API的安全

关于crAPI crAPI是一个针对API安全的学习和研究平台,在该工具的帮助下,广大研究人员可以轻松学习和了解排名前十的关键API安全风险。因此,crAPI在设计上故意遗留了大量安全漏洞,我们可以通过 crAPI学习和研究API安全。 crAPI采用…

如何把照片的底色修改为想要的颜色

如何给照片更换底色?其实有可以一键给照片更换底色的 APP ,但是几乎都要收费。如果想要免费的给照片更换底色的话,分享两种简单便捷的方法给你。掌握了这项技能,以后就不用店花钱处理啦!1、免费!线上快速 给…

【SpringBoot教程】SpringBoot入门

SpringBoot介绍 SpringBoot简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手&…

Rancher Prime 为平台工程提供面向 K8s 的弹性能力

作者简介 张应罗,SUSE 资深架构师,拥有 16 年架构咨询工作经验,专注于 SUSE Enterprise Container Management 相关的产品落地方案及咨询方案设计。 平台工程 “DevOps 已死,平台工程才是未来!” 去年,知名软件工程师…

原来JS可以这么实现继承

当我们在编写代码的时候,有一些对象内部会有一些方法(函数),如果将这些函数在构造函数内部声明会导致内存的浪费,因为实例化构造函数得到不同的实例对象,其内部都有同一个方法,但是占据了不同的…

【unity】开发rts 4 放置建筑进地图;创建单位;单位移动;单位生产者

一 放置建筑进地图 1 GameManage,slot faction阵营插槽, 新建筑拖进secne,便于管理,在实例栏将建筑放在factions下 inital faction entitys,(也可带上cam look at) 添加新建筑上 此时测试&a…

大专生学云计算,工作好找吗?

当然可以找到工作。云计算行业整体是处理高速成长期,市场规模以每年30%的速度增长,市场的扩张意味着需要更多的技术人才支撑,据统计云计算未来五年人才缺口将达到150万。 目前企业对于学历的要求并不高,基本大专及以上都可以的。…

基于神经网络(RBF)补偿的双关节机械手臂自适应控制

目录 前言 1.双关节机械手臂模型 1.1 实际模型 1.2 名义模型 2. 控制律设计 3. 神经网络补偿自适应律设计 3.1自适应律① 3.2自适应律② 4. 仿真分析 4.1仿真模型 4.2 仿真结果 4.3 小结 5学习问题 前言 所谓的补偿可以简单的理解为:将扰动的模型估计出…

【C++】开散列实现unordered_map与unordered_set的封装

本文主要介绍unordered_map与unordered_set的封装,此次封装主要用上文所说到的开散列,通过开散列的一些改造来实现unordered_map与unordered_set的封装 文章目录一、模板参数二、string的特化三、正向迭代器四、构造与析构五、[]的实现六、unordered_map的实现七、u…

MySQL安装教程

目录 一、认识MySQL 二、为什么要选用MySQL 三、关于MySQL8.0 四、安装步骤 一、认识MySQL 1、MySQL是一个开放源码的关系型数据库管理系统,将数据保存再不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 …

【java基础】接口(interface)

文章目录基础介绍接口的定义关于接口字段和方法的说明使用接口抽象类和接口接口方法冲突的一些说明方法相同名称和参数,返回值相同方法名称相同,参数不同,返回值相同方法返回值不同,名称参数相同方法完全相同,一个有默…

中文预训练大模型—文心Ernie技术原理

文心Ernie技术原理 一、背景技术 Ernie是基于Bert模型进行改进,基本模型是Transformer,Bert完成的预训练任务是:完形填空(通过基本语言单元掩码);上下句预测。 Bert模型的缺陷是:只能捕获局部…