目录

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相关推荐

  1. 操作系统:第五章 磁盘管理 - I/O控制,缓冲区管理

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  2. 《操作系统》第五章课堂小测

    <操作系统>第05章课堂小测 例题1 设有4个作业同时到达,每个作业的执行时间均为 2h,它们在一台处理器上按单道式运行,则平均周 转时间为(  B  ). A. 1h          ...

  3. 操作系统原理第五章:CPU调度

    目录 1 CPU调度基本概念 1.1 基本概念 1.2 CPU调度的时机 1.3 CPU调度方案 2 CPU调度算法 2.1 先来先服务(FCFS) 2.2 短作业优先(SJF) 2.3 优先级 2. ...

  4. 现代操作系统: 第五章 输入/输出

    除了提供抽象之外(进程.地址空间和文件),操作系统还要控制计算机的所有I/O(输入和输出)设备. 5.1 I/O硬件原理 对于电子工程师来言,I/O硬件就是芯片.导线.电源.电机和其他组成硬件的物理部 ...

  5. 操作系统原理——第五章:虚拟内存

    文章目录 1. 起因 2. 覆盖技术 3. 交换技术 4. 虚存技术 4.1 目标 4.2 程序局部性原理 4.3 基本概念 4.4 基本特征 4.5 虚拟页式内存管理 1. 起因 增长迅速的存储需求 ...

  6. 操作系统安全-第五章-安全策略与安全模型

    5.1 安全策略 安全策略:一种声明,系统分安全状态集合(已授权状态集合)和不安全状态集合(未授权状态集合) 安全系统:初始于一个安全状态,在状态转换函数执行后,不会进入不安全状态. 有限状态机实例 ...

  7. 【操作系统】第五章——虚拟内存技术

    一.起因

  8. 操作系统_第五章文件管理_磁盘存储空间的管理

    如何实现存储空间的分配和回收取决于对空闲块的管理方法. 下面介绍几种常用的管理方法: 一  位示图法 注意,记住这几句话:每个盘面里面有扇区, 扇区里有磁盘组,                     ...

  9. 操作系统笔记(王道考研) 第五章:输入输出(I/O)管理

    大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,后续又根据2023年考研的大纲增加了一些内容,主要有操作系统引导.虚拟机.多级队列调度算法.互斥锁.调度器和闲逛进程.内存映射文件. ...

  10. 操作系统王道考研复习——第一章(计算机系统概述)

    操作系统王道考研复习--第一章(计算机系统概述) 计算机系统概述 1.1操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1. 并发 2. 共享 3. 虚拟 4. 异步 1. ...

最新文章

  1. 201621123075作业12-流与文件
  2. ISLR_Power
  3. JavaScript对数组的处理(一)
  4. WordPress 已过时?创始人与新架构拥护者开战
  5. 30张不明觉厉的照片,看几遍终于看懂了
  6. 10.27模拟 总结
  7. tf.metrics._将指标标签与MicroProfile Metrics 2.0一起使用
  8. c语言程序设计顺序结构题目,C语言编程 顺序结构编程练习题目
  9. C/C++ getchar函数 - C语言零基础入门教程
  10. SAP License:SAP 清帐介绍
  11. sublime text 64位_Python学习第一步 - 用Sublime搭建Python运行环境
  12. 汇编语言:基本指令详解
  13. 陕西2020行政区划调整_陕西2020行政区划调整
  14. 2.1 对称密钥的生成及以对象序列化方式保存
  15. 【安信可IDE 1.5模板专题2】安信可windows一体化环境IDE V1.5 ESP8266 SDK二次开发直连阿里云飞燕平台,天猫精灵语音控制;
  16. dell服务器显示器fre,戴尔全新 Freesync 显示器,专门针对游戏玩家
  17. java 求梯形面积
  18. Least Angel Regression
  19. RPG Maker mv框架代码解析之窗口文字显示
  20. PADS-VX入门到精通实战项目讲解(下)—layout部分-覃小刚-专题视频课程

热门文章

  1. (7)全民小视频引流脚本模块化开发01-关注用户By飞云脚本学院
  2. 分享一个 集外文论文检索、文字识别、翻译、文章管理于一体的软件
  3. 学习心得 Tianmao 篇 RecyclerView.Adapter 我自己的使用理解(类组合模式)
  4. 详析百度“原创保护”使用规范,及如何推送原创文章链接?
  5. android音乐播放器flac,无损高保真音乐播放器app
  6. ubuntu 网易云音乐安装
  7. cdr圆形渐变填充怎么设置_CDR渐变填充实例教程
  8. conda install 安装慢,或者直接卡死,这么解决
  9. 小技巧 - Chrome 浏览器绕过“请在微信客户端打开链接”
  10. 利用文本挖掘技术来找出《天龙八部》中的“小鲜词”