操作系统 - 王道 - 第五章 I/O
目录
5.1.1 I/O设备基本概念和分类
5.1.2 I/O控制器
一、什么是 I/O控制器
二、I/O控制器の功能
三、I/O控制器の组成
♥值得注意的小细节:
(1)内存映射I/O
(2)寄存器独立编址
5.1.3 I/O控制方式
一、程序直接控制方式
二、中断驱动方式
三、直接存储器存取DMA
四、通道控制方式
5.1.4 I/O软件层次结构
一、用户层软件
二、设备独立性软件 / 设备无关性软件
三、设备驱动程序
四、中断处理程序
5.1.5 I/O核心子系统
5.1.6 假脱机技术SPOOLing
一、脱机技术
二、假脱机技术SPOOLing
1、输入井、输出井 --- 模拟磁带
2、输入进程、输出进程
3、输入缓冲区、输出缓冲区
三、假脱机技术的应用 --- 共享打印机
5.1.7 设备的分配与回收
5.1.1 I/O设备基本概念和分类
一、什么是 I/O设备
I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备
属于计算机中的硬件部件
二、按使用特性分类
(1)人机交互类外部设备(鼠标、键盘、打印机):数据传输速度慢
(2)存储设备(光盘) :数据传输速度快
(3)网络通信设备(调制解调器) :数据传输速度中
三、按信息交换的单位分类
(1)块设备(磁盘):数据传输的基本单位是“块”
传输速率较高,可寻址,即对它可随机地读/写任一块
(2)字符设备(鼠标、键盘):数据传输的基本单位是字符
传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式
5.1.2 I/O控制器
一、什么是 I/O控制器
(1)I/O设备分为机械部件and电子部件,CPU无法直接控制l/O设备的机械部件
(2)因此I/O设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,实现CPU对设备的控制
(3)这个电子部件就是l/O控制器/设备控制器
CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件
二、I/O控制器の功能
1、接受、识别CPU发出的命令
如CPU发来的read/write命令,I/O控制器中会有相应的控制寄存器来存放命令和参数
2、向CPU报告设备的状态
I/O控制器中会有相应的状态寄存器,用于记录l/O设备的当前状态; 如:1表示空闲,0表示忙碌
3、数据交换
I/O控制器中会设置相应的数据寄存器
输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备
输入时,数据寄存器用于暂存设备发来的数据,之后CPU从数据寄存器中取走数据
4、地址识别
类似于内存的地址,为了区分设备控制器中的各个寄存器,也需要给各个寄存器设置一个特定的“地址”
I/O控制器通过CPU提供的“地址”来判断CPU要读/写的是哪个寄存器
三、I/O控制器の组成
♥值得注意的小细节:
1、一个I/O控制器可能会对应多个设备
2、数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备),
且这些寄存器都要有相应的地址,才能方便CPU操作
(1)有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像l/O
(2)另一些计算机则采用I/O专用地址,即寄存器独立编址
(1)内存映射I/O
控制器中的寄存器与内存地址统一编址
优点:简化指令,可以采用对内存进行操作的指令来对控制器操作
(2)寄存器独立编址
缺点:需要设置专门的指令对控制器进行操作,不仅要指明寄存器的地址,还要指明控制器的编号
5.1.3 I/O控制方式
一、程序直接控制方式
1、完成一次 读/写 操作的流程(以“读”指令为例)
(1)CPU向控制器发出“读”指令,设备启动,状态寄存器设为1(未就绪)
(2)CPU轮询检查控制器的状态(循环检查状态位,若为1表示设备还没准备好要输入的数据)
(3)输入设备准备好数据后将数据传给控制器,并且报告自身状态
(4)控制器将输入的数据放入数据寄存器,并将状态改为0(已就绪)
(5)CPU发现设备已经就绪,将数据寄存器中的内容读入CPU寄存器,再把CPU寄存器中的内容放入内存
(6)若还要继续读入数据,则CPU继续发出读指令
2、CPU干预的频率:很频繁
I/O操作开始之前、完成之后需要CPU介入,并且在等待l/O完成的过程中CPU需要不断地轮询检查
3、数据传送的单位:每次读/写一个字
4、数据的流向
(1)读操作(数据输入) : I/O设备 → CPU寄存器 → 内存
(2)写操作(数据输出) : 内存 → CPU寄存器 → I/O设备
每个字的读/写都需要CPU的帮助
5、主要缺点和主要优点
(1)优点:实现简单
在读/写指令之后,加上实现循环检查的一系列指令即可(因此才称为“程序直接控制方式”)
(2)缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状态,CPU利用率低
二、中断驱动方式
1、完成一次 读/写 操作的流程
(1)由于I/O设备速度很慢,因此在CPU发出读/写命令后, 可将等待I/O的进程阻塞,先切换到别的进程执行 (2)当I/O完成后,控制器会向CPU发出一个中断信号, CPU检测到中断信号后,会保存当前进程的运行环境信息, 转去执行中断处理程序处理该中断 (3)处理中断的过程中,CPU从I/O控制器读一个字的数据传送 到CPU寄存器,再写入主存 (4)接着,CPU恢复等待I/O的进程(或其他进程)的运行环境, 然后继续执行 ☺注意:(1)CPU会在每个指令周期的末尾检查中断; (2)中断处理过程中需要保存、恢复进程的运行环境, 这个过程是需要一定时间开销的 可见,如果中断发生的频率太高,也会降低系统性能 |
2、CPU干预的频率
每次I/O操作开始之前、完成之后需要CPU介入
等待l/O完成的过程中CPU可以切换到别的进程执行
3、数据传送的单位:每次读/写一个字
4、数据的流向
(1)读操作(数据输入) : I/O设备 → CPU寄存器 → 内存
(2)写操作(数据输出) : 内存 → CPU寄存器 → I/O设备
5、主要缺点、主要优点
(1)优点:与“程序直接控制方式”相比,在“中断驱动方式”中,I/O控制器会通过中断信号主动报告I/0已
完成,CPU不再需要不停地轮询
CPU和I/O设备可并行工作,CPU利用率得到明显提升
(2)缺点:每个字在I/O设备与内存之间的传输,都需要经过CPU
而频繁的中断处理会消耗较多的CPU时间
三、直接存储器存取DMA
1、与“中断驱动方式”相比,DMA方式有这样几个改进:
(1)数据的传送单位是“块”;不再是一个字、一个字的传送
(2)数据的流向是从设备直接放入内存,或者从内存直接到设备;不再需要CPu作为“中介”
(3)仅在传送一个或多个数据块的开始和结束时,才需要CPU干预
2、DMA控制器
3、CPU干预的频率
仅在传送一个或多个数据块的开始和结束时,才需要CPU干预
4、数据传送的单位
每次读/写一个或多个块(注意:每次读写的只能是连续的多个块,且这些块读入内存后在内存中也
必须是连续的)
5、数据的流向(不再需要经过CPU)
读操作(数据输入): I/O设备 → 内存
写操作(数据输出) :内存 → I/O设备
6、主要缺点and主要优点
(1)优点:数据传输以“块”为单位,CPU介入频率进一步降低
数据的传输不再需要先经过CPU再写入内存,数据传输效率进一步增加
CPU和I/O设备的并行性得到提升
(2)缺点:CPU每发出一条l/O指令,只能读/写一个或多个连续的数据块
如果要读/写多个离散存储的数据块,或者要将数据分别写到不同的内存区域时,
CPU要分别发出多条I/O指令,进行多次中断处理才能完成
四、通道控制方式
与CPU相比,通道可以执行的指令很单一,并且通道程序是放在主机内存中的
1、通道:一种硬件,可以理解为是“弱鸡版的CPU”;可以识别并执行一系列通道指令
2、完成一次I/O操作的流程
(1)CPU向通道发出I/O指令,指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备
之后CPU就切换到其他进程执行了
任务清单
(2)通道执行内存中的通道程序(其中指明了要读入/写出多少数据,读/写的数据应放在内存的什么位置等)
(3)通道执行完规定的任务后,向CPU发出中断信号,之后CPU对中断进行处理
3、CPU干预的频率
极低,通道会根据CPU的指示执行相应的通道程序,
只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预
4、数据传送的单位
每次读/写一组数据块
5、数据的流向(在通道的控制下进行)
读操作(数据输入):I/o设备 → 内存
写操作(数据输出):内存 → I/o设备
6、主要缺点and主要优点
(1)缺点:实现复杂,需要专门的通道硬件支持
(2)优点:CPU、通道、I/O设备可并行工作,资源利用率很高
5.1.4 I/O软件层次结构
理解并记住I/O软件各个层次之间的顺序,要能够推理判断某个处理应该是在哪个层次完成的
(最常考的是设备独立性软件、设备驱动程序这两层
只需理解一个特点即可:直接涉及到硬件具体细节、且与中断无关的操作肯定是在设备驱动程序层完成的;
没有涉及硬件的、对各种设备都需要进行的管理工作都是在设备独立性软件层完成的)
一、用户层软件
1、实现了与用户交互的接口,用户可以使用该层提供的、与I/O操作相关的库函数对设备进行操作(如printf)
2、用户层软件将用户请求翻译成格式化的I/O请求,并通过“系统调用”请求操作系统内核的服务
二、设备独立性软件 / 设备无关性软件
1、与设备的硬件特性无关的功能几乎都在该层实现
2、主要实现的功能
(1)向上一层(用户层)提供统一的调用接口(如read/write系统调用)
(2)实现对设备的保护
设备被看做是一种特殊的文件,不同用户对各个文件的访问权限是不一样的,
同理,对设备的访问权限也不一样
(3)差错处理
(4)设备的分配与回收
(5)数据缓冲区管理
(6)建立逻辑设备名到物理设备名的映射关系 ; 根据设备类型选择调用相应的驱动程序
Δ1、用户或用户层软件发出I/O操作相关系统调用的系统调用时,需要指明此次要操作的I/O设备的逻辑设备名
(eg:去学校打印店打印时,需要选择打印机1/打印机2/打印机3,其实这些都是逻辑设备名)
Δ2、设备独立性软件需要通过“逻辑设备表”来确定逻辑设备对应的物理设备,并找到该设备对应的设备驱动程序
三、设备驱动程序
为什么不同的设备需要不同的设备驱动程序?
(1)不同设备的I/O控制器、内部硬件特性可能不同,所以厂家需要提供与设备对应的驱动程序
(2)设备驱动程序主要负责对硬件设备的具体控制,将上层发出的一系列命令(如read/write)转化成特定
设备“能听得懂”的一系列操作
包括设置设备寄存器:检查设备状态等
四、中断处理程序
5.1.5 I/O核心子系统
假脱机技术需要请求“磁盘设备”的设备独立性软件的服务,因此一般来说假脱机技术是在用户层软件实现的
但是408大纲又将假脱机技术归为“I/o核心子系统”的功能,因此考试时还是以大纲为准
I/O调度:用某种算法确定一个好的顺序来处理各个I/O请求
操作系统需要实现文件保护功能,不同的用户对各个文件有不同的访问权限(如:只读、读和写等)
在UNIX系统中,设备被看做是一种特殊的文件,每个设备也会有对应的FCB
当用户请求访问某个设备时,系统根据FCB中记录的信息来判断该用户是否有相应的访问权限,
以此实现“设备保护”的功能(参考“文件保护”小节)
设备的分配与回收 详见5.1.7
缓冲区管理 详见5.1.8
5.1.6 假脱机技术SPOOLing
一、脱机技术
脱机技术:脱离主机控制而进行的I/O操作
二、假脱机技术SPOOLing
用软件的方式模拟脱机技术
1、输入井、输出井 --- 模拟磁带
2、输入进程、输出进程
3、输入缓冲区、输出缓冲区
三、假脱机技术的应用 --- 共享打印机
1、回顾概念
(1)独占式设备:只允许各个进程串行使用的设备,一段时间内只能满足一个进程的请求
(2)共享设备 :允许多个进程“同时”使用的设备(宏观上同时使用,微观上可能是交替使用)
可以同时满足多个进程的使用请求
2、打印机是种“独占式设备”,但是可以用假脱机技术改造成“共享设备”
3、原理
当多个用户进程提出输出打印的请求时,系统会答应它们的请求,但是并不是真正把打印机分配给他们,
而是由假脱机管理进程为每个进程做两件事:
(1)在磁盘输出井中为进程申请一个空闲缓冲区(这个缓冲区是在磁盘上的),并将要打印的数据送入其中;
(2)为用户进程申请一张空白的打印请求表,并将用户的打印请求填入表中(其实就是用来说明用户的打印数据
存放位置等信息的),再将该表挂到假脱机文件队列上
当打印机空闲时,输出进程会从文件队列的队头取出一张打印请求表,并根据表中的要求将要打印的数据从输出井传送到输出缓冲区,再输出到打印机进行打印
用这种方式可依次处理完全部的打印任务
虽然系统中只有一个台打印机,但每个进程提出打印请求时,系统都会为在输出井中为其分配一个存储区
(相当于分配了一个逻辑设备),使每个用户进程都觉得自己在独占一台打印机,从而实现对打印机的共享
假脱机技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备
5.1.7 设备的分配与回收
待更新
操作系统 - 王道 - 第五章 I/O相关推荐
- 操作系统:第五章 磁盘管理 - I/O控制,缓冲区管理
本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...
- 《操作系统》第五章课堂小测
<操作系统>第05章课堂小测 例题1 设有4个作业同时到达,每个作业的执行时间均为 2h,它们在一台处理器上按单道式运行,则平均周 转时间为( B ). A. 1h ...
- 操作系统原理第五章:CPU调度
目录 1 CPU调度基本概念 1.1 基本概念 1.2 CPU调度的时机 1.3 CPU调度方案 2 CPU调度算法 2.1 先来先服务(FCFS) 2.2 短作业优先(SJF) 2.3 优先级 2. ...
- 现代操作系统: 第五章 输入/输出
除了提供抽象之外(进程.地址空间和文件),操作系统还要控制计算机的所有I/O(输入和输出)设备. 5.1 I/O硬件原理 对于电子工程师来言,I/O硬件就是芯片.导线.电源.电机和其他组成硬件的物理部 ...
- 操作系统原理——第五章:虚拟内存
文章目录 1. 起因 2. 覆盖技术 3. 交换技术 4. 虚存技术 4.1 目标 4.2 程序局部性原理 4.3 基本概念 4.4 基本特征 4.5 虚拟页式内存管理 1. 起因 增长迅速的存储需求 ...
- 操作系统安全-第五章-安全策略与安全模型
5.1 安全策略 安全策略:一种声明,系统分安全状态集合(已授权状态集合)和不安全状态集合(未授权状态集合) 安全系统:初始于一个安全状态,在状态转换函数执行后,不会进入不安全状态. 有限状态机实例 ...
- 【操作系统】第五章——虚拟内存技术
一.起因
- 操作系统_第五章文件管理_磁盘存储空间的管理
如何实现存储空间的分配和回收取决于对空闲块的管理方法. 下面介绍几种常用的管理方法: 一 位示图法 注意,记住这几句话:每个盘面里面有扇区, 扇区里有磁盘组, ...
- 操作系统笔记(王道考研) 第五章:输入输出(I/O)管理
大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,后续又根据2023年考研的大纲增加了一些内容,主要有操作系统引导.虚拟机.多级队列调度算法.互斥锁.调度器和闲逛进程.内存映射文件. ...
- 操作系统王道考研复习——第一章(计算机系统概述)
操作系统王道考研复习--第一章(计算机系统概述) 计算机系统概述 1.1操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1. 并发 2. 共享 3. 虚拟 4. 异步 1. ...
最新文章
- 201621123075作业12-流与文件
- ISLR_Power
- JavaScript对数组的处理(一)
- WordPress 已过时?创始人与新架构拥护者开战
- 30张不明觉厉的照片,看几遍终于看懂了
- 10.27模拟 总结
- tf.metrics._将指标标签与MicroProfile Metrics 2.0一起使用
- c语言程序设计顺序结构题目,C语言编程 顺序结构编程练习题目
- C/C++ getchar函数 - C语言零基础入门教程
- SAP License:SAP 清帐介绍
- sublime text 64位_Python学习第一步 - 用Sublime搭建Python运行环境
- 汇编语言:基本指令详解
- 陕西2020行政区划调整_陕西2020行政区划调整
- 2.1 对称密钥的生成及以对象序列化方式保存
- 【安信可IDE 1.5模板专题2】安信可windows一体化环境IDE V1.5 ESP8266 SDK二次开发直连阿里云飞燕平台,天猫精灵语音控制;
- dell服务器显示器fre,戴尔全新 Freesync 显示器,专门针对游戏玩家
- java 求梯形面积
- Least Angel Regression
- RPG Maker mv框架代码解析之窗口文字显示
- PADS-VX入门到精通实战项目讲解(下)—layout部分-覃小刚-专题视频课程
热门文章
- (7)全民小视频引流脚本模块化开发01-关注用户By飞云脚本学院
- 分享一个 集外文论文检索、文字识别、翻译、文章管理于一体的软件
- 学习心得 Tianmao 篇 RecyclerView.Adapter 我自己的使用理解(类组合模式)
- 详析百度“原创保护”使用规范,及如何推送原创文章链接?
- android音乐播放器flac,无损高保真音乐播放器app
- ubuntu 网易云音乐安装
- cdr圆形渐变填充怎么设置_CDR渐变填充实例教程
- conda install 安装慢,或者直接卡死,这么解决
- 小技巧 - Chrome 浏览器绕过“请在微信客户端打开链接”
- 利用文本挖掘技术来找出《天龙八部》中的“小鲜词”