操作系统基础:IO管理概述【下】

在这里插入图片描述

在这里插入图片描述

个人主页:godspeed_lucip
系列专栏:OS从基础到进阶

本文完整PDF源文件请翻阅至文章底部下载。


  • 1 I/O控制器
    • ⛸️1.1 什么是IO控制器?
    • ⛸️1.2 IO控制器的功能
    • ⛸️1.3 IO控制器的组成
      • 1.3.1 CPU与控制器的接口
      • 1.3.2 IO逻辑
      • 1.3.3 控制器与设备机器设备的接口
      • 1.3.4 总体示意图
      • 1.3.5 注意
      • 1.3.6 编址方式
    • ⛸️1.4 总结
  • 2 I/O控制方式
    • ⛸️2.1 总览
    • ⛸️2.2 程序直接控制方式
      • 2.2.1 什么是程序直接控制方式?
      • 2.2.2 完成一次读写操作的流程
      • 2.2.3 CPU干预的频率
      • 2.2.4 数据传送的单位?
      • 2.2.5 数据的流向?
      • 2.2.6 优缺点
    • ⛸️2.3 中断驱动方式
      • ️2.3.1 什么是中断驱动方式
      • ️2.3.2 注意
      • ️2.3.3 完成一次读写操作的流程
      • ️2.3.4 CPU干预的频率
      • ️2.3.5 数据传送的单位
      • ️2.3.6 数据的流向
      • ️2.3.7 主要优缺点
    • ⛸️2.4 DMA控制器方式
      • 2.4.1 DMA控制器的基本组成
      • 2.4.2 DMA方式的工作流程
      • 2.4.3 完成一次读/写操作的流程
      • 2.4.4 CPU干预的频率
      • 2.4.5 数据传送的单位
      • 2.4.6 数据的流向
      • 2.4.7 主要优缺点
      • 2.4.8 注意
    • ⛸️2.5 通道控制方式
      • 2.5.1 基本工作流程
      • 2.5.2 通道程序的基本组成
      • 2.5.3 完成一次读/写操作的流程
      • 2.5.4 CPU干预的频率
      • 2.5.5 数据传送的单位
      • 2.5.6 数据的流向
      • 2.5.7 优缺点
    • ⛸️2.6 总结
  • 3 总结


1 I/O控制器

⛸️1.1 什么是IO控制器?

image1

⛸️1.2 IO控制器的功能

操作系统基础:IO管理概述【下】_第1张图片

⛸️1.3 IO控制器的组成

1.3.1 CPU与控制器的接口

(1)该部分实现的功能
用于实现CPU与控制器之间的通信。CPU通过控制线发出命令;通过地址线指明要操作的设备;通过数据线来取出(输 入)数据,或放入(输出)数据
(2)基本组成
①数据寄存器
当设备输入时,存放设备输入的数据(比如键盘键入的字符);当CPU对设备输出时,存放CPU输入的数据。是双向的。

②控制寄存器
CPU发出的IO指令中可能包含一些其他的参数,放在控制寄存器中。是单向的。

③状态寄存器
存放各设备的状态,比如1表示空闲,0表示忙碌,CPU从其中读取。是单向的。

1.3.2 IO逻辑

(1)该部分实现的功能
负责接收和识别CPU 的各种命令(如地址译码),并负责对设备发出命令

1.3.3 控制器与设备机器设备的接口

(1)该部分实现的功能
用于实现控制器与设备之间的通信
(2)基本组成
①与各设备连接的接口
各接口都要实现传输
Ⅰ 数据信息(传送输入/ 输出数据)
Ⅱ 状态信息(设备向控制器反馈自己的状态)
Ⅲ 控制信息(控制器向设备发出控制信息)。

1.3.4 总体示意图

操作系统基础:IO管理概述【下】_第2张图片

1.3.5 注意

image4

1.3.6 编址方式

(1)内存映像编址
①解释
内存映射 I/O。控制器中的寄 存器与内存地址统一编址
操作系统基础:IO管理概述【下】_第3张图片
②优点
简化了指令。可以采用对内存进行操作的指令来对控制器进行操作

(2)寄存器独立编址
①解释
寄存器独立编制。 控制器中的寄存器使用单独的地址
操作系统基础:IO管理概述【下】_第4张图片
②缺点
需要设置专门的指令来实现对控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号

⛸️1.4 总结

操作系统基础:IO管理概述【下】_第5张图片

2 I/O控制方式

⛸️2.1 总览

操作系统基础:IO管理概述【下】_第6张图片

⛸️2.2 程序直接控制方式

2.2.1 什么是程序直接控制方式?

已键盘向CPU键入数据为例:

(1)CPU向控制器发出读指令。 于是设备启动,并且状态寄存器设为 1(未就绪)
(2)CPU轮询检查控制器的状态 (其实就是在不断地执行程序的循环,若 状态位一直是 1,说明设备还没准备好要输入的数据, 于是CPU会不断地轮询,知道状态为为0(设备已经完成输入)
(3)输入设备准备好数据后将数据传给控制器,并报告自身状态(已就绪)
(4)控制器将输入的数据放到数据寄存器中, 并将状态改为0 (已就绪)
(5)CPU发现设备已就绪,即可将数据寄存器中的内容读入CPU的寄存器中,再把CPU寄存器中的内容放入内存
(6)若还要继续读入数据,则CPU 继续发出读指令

2.2.2 完成一次读写操作的流程

操作系统基础:IO管理概述【下】_第7张图片

2.2.3 CPU干预的频率

image3

2.2.4 数据传送的单位?

每次读写一个字

2.2.5 数据的流向?

操作系统基础:IO管理概述【下】_第8张图片

2.2.6 优缺点

操作系统基础:IO管理概述【下】_第9张图片

⛸️2.3 中断驱动方式

️2.3.1 什么是中断驱动方式

操作系统基础:IO管理概述【下】_第10张图片

️2.3.2 注意

操作系统基础:IO管理概述【下】_第11张图片

️2.3.3 完成一次读写操作的流程

操作系统基础:IO管理概述【下】_第12张图片

️2.3.4 CPU干预的频率

image9

️2.3.5 数据传送的单位

每次读/写一个字

️2.3.6 数据的流向

与程序直接控制方式类似
image10

️2.3.7 主要优缺点

操作系统基础:IO管理概述【下】_第13张图片

⛸️2.4 DMA控制器方式

2.4.1 DMA控制器的基本组成

操作系统基础:IO管理概述【下】_第14张图片
DR、MAR、DC、CR都是操作系统中的寄存器:
image13

2.4.2 DMA方式的工作流程

以键盘键入数据为例:
CPU将数据存放在内存中的地址存入MAR,DMA负责读取键盘键入的字符,将其存放在DR中,待键入结束后,再将DR中的数据存入MAR中显示的内存地址,并发出中断请求,使CPU进行处理。

2.4.3 完成一次读/写操作的流程

操作系统基础:IO管理概述【下】_第15张图片

2.4.4 CPU干预的频率

仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。

2.4.5 数据传送的单位

image15

2.4.6 数据的流向

不再经过CPU

image16

2.4.7 主要优缺点

image17

2.4.8 注意

(1)DMA读取数据的过程中,是一次读入一个字,再将读取的字存入DR中,但对于CPU来说,好像是一次读入了一块的数据。
(2)每次读写的只可以是连续的块,如果想读写离散的块,就必须发送多次中断。

⛸️2.5 通道控制方式

2.5.1 基本工作流程

(1)CPU向通道发出I/O指令。指明通道程序(可以理解为CPU下派的任务清单)在内存中的位置,并指明要操作的是哪个I/O设备。之后CPU就切换到其他进程执行了。
(2)通道执行内存中的通道程序,它其中指明了要读入/写出多少数据,读/写的数据应放在内存的什么位置等信息
(3)通道执行完规定的任务后,向CPU发出中断信号,之后 CPU对中断进行处理

2.5.2 通道程序的基本组成

操作系统基础:IO管理概述【下】_第16张图片
在通道程序中,CPU可以指派一堆任务,同时读/写的数据也不必是连续的,只要指定了内存中的位置就可以。这是对DMA控制方式的改进。

2.5.3 完成一次读/写操作的流程

操作系统基础:IO管理概述【下】_第17张图片

2.5.4 CPU干预的频率

image20

2.5.5 数据传送的单位

每次读/写一组数据块

2.5.6 数据的流向

数据是在通道的控制下进行的。
image21

2.5.7 优缺点

image22

⛸️2.6 总结

操作系统基础:IO管理概述【下】_第18张图片

3 总结

本文PDF文件下载链接:提取码:ikun

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。

在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(网络,系统架构)