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

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



🧲1 I/O控制器

⛸️1.1 什么是IO控制器?

⛸️1.2 IO控制器的功能

⛸️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 总体示意图

🎄1.3.5 注意

🎄1.3.6 编址方式

(1)内存映像编址

①解释

内存映射 I/O。控制器中的寄 存器与内存地址统一编址

②优点

简化了指令。可以采用对内存进行操作的指令来对控制器进行操作

(2)寄存器独立编址

①解释

寄存器独立编制。 控制器中的寄存器使用单独的地址

②缺点

需要设置专门的指令来实现对控制器的操作,不仅要指明寄存器的地址,还要指明控制器的编号

⛸️1.4 总结

🧲2 I/O控制方式

⛸️2.1 总览

⛸️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 完成一次读写操作的流程

🎉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控制器的基本组成

DR、MAR、DC、CR都是操作系统中的寄存器:

🏉2.4.2 DMA方式的工作流程

以键盘键入数据为例:

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

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

🏉2.4.4 CPU干预的频率

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

🏉2.4.5 数据传送的单位

🏉2.4.6 数据的流向

不再经过CPU

🏉2.4.7 主要优缺点

🏉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 通道程序的基本组成

在通道程序中,CPU可以指派一堆任务,同时读/写的数据也不必是连续的,只要指定了内存中的位置就可以。这是对DMA控制方式的改进。

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

🏸2.5.4 CPU干预的频率

🏸2.5.5 数据传送的单位

每次读/写一组数据块

🏸2.5.6 数据的流向

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

🏸2.5.7 优缺点

⛸️2.6 总结

🧲3 总结

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

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

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

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

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

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

相关文章
|
7月前
|
Unix C语言
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
|
7月前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
158 0
|
7月前
|
算法 Shell Linux
操作系统概述
操作系统概述
71 0
|
6月前
|
Python
Python的`os`模块核心功能概述:通过`os.getcwd()`获取
【6月更文挑战第23天】Python的`os`模块核心功能概述:通过`os.getcwd()`获取、`os.chdir()`改变工作目录;使用`os.mkdir()`, `os.makedirs()`创建目录,`os.rmdir()`, `os.removedirs()`删除;`os.rename()`, `os.renames()`重命名文件或目录;`os.remove()`删除文件;`os.listdir()`列出目录内容;`os.path.exists()`, `os.path.isfile()`, `os.path.isdir()`检查路径;`os.stat()`获取文件属性。
100 4
|
5月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
7月前
|
移动开发 前端开发 JavaScript
uniapp中IO模块(管理本地文件系统)的常用功能封装
uniapp中IO模块(管理本地文件系统)的常用功能封装
716 1
|
7月前
|
存储 API 芯片
1.操作系统概述
1.操作系统概述
|
7月前
|
程序员 Linux 调度
《操作系统》——计算机系统概述
《操作系统》——计算机系统概述
289 3
|
7月前
|
安全 Unix Linux
第一章 操作系统概述
第一章 操作系统概述
223 0
|
7月前
|
存储 算法 安全
非常详细!操作系统【IO核心子系统】
非常详细!操作系统【IO核心子系统】