IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 操作系统第五章:I/O管理 -> 正文阅读

[系统运维]操作系统第五章:I/O管理

这一章看懂就行了,就算考也考的比较简单,只要知道就能做(而且本来内容也简单)

I/O设备的分类和概念

UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

I/O控制器

I/O设备由机械部件和电子部件组成

机械部件主要用来执行具体的I/O操作,如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面

电子部件如印刷电路板,控制器(I/O控制器、设备控制器)。

1.I/O控制器的功能

在这里插入图片描述

2.I/O控制器的组成

在这里插入图片描述
①一个I/O控制器可能会对应多个设备

②数据寄存器、控制寄存器、状态寄存器可能有多个(如:每个控制/状态寄存器对应一个具体的设备〉,且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/O;另一些计算机则采用I/O专用地址,即寄存器独立编址。

3.内存映像 vs 寄存器独立编址

在这里插入图片描述

小结

在这里插入图片描述

I/O控制方式

1.程序直接控制方式

在这里插入图片描述
CPU向控制器发出读指令,设备启动,状态设为未就绪,输入设备准备好数据传给控制器(同时报告状态),控制器把数据放到数据寄存器里,把状态改为就绪(期间CPU一直查询状态,处于一种“忙等的状态”),CPU发现状态为就绪,把数据从数据寄存器拿到CPU寄存器中,再从CPU寄存器挪到内存里去(充当了一个搬运工的角色)。
在这里插入图片描述

2.中断驱动方式

CPU发出命令后把I/O进程阻塞,等I/O设备自己弄,CPU先去搞别的进程,I/O完成后发出中断(控制器发出),CPU保存当前环境然后处理I/O进程,读一个字(每次就只能这么多)到CPU寄存器再写入主存。然后恢复环境继续之前的工作

在这里插入图片描述
注意:
①CPU会在每个指令周期的末尾检查中断;

②中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能。

3.DMA方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每次读写一个或多个块,如果是多个块要是连续的,在内存里也是连续的,因为CPU下命令的时候有说存到哪里(MAR),所以必须是连续的才能一次搞定。

以块为单位,CPU介入的频率更低了,并且直接从设备到内存,不需要CPU做搬运工,传输效率变高了。

4.通道控制方式

CPU发展了副手 通道,整了份任务清单,告诉通道任务清单(通道程序)在哪(给出首地址),操作哪个I/O设备,然后就去执行别的进程了。通道执行通道程序(里面有详细的要做什么,读写多少数据,分别都放在哪),通道按着这个做,就可以实现一次性搞定很多块,完成之后才发起中断叫CPU来处理。

在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

I/O软件层次结构

设备独立性软件,又称设备无关性软件。与设备的硬件特性无关的功能几乎都在这一层实现。
在这里插入图片描述
设备驱动程序,中断处理程序会和硬件直接打交道,设备独立性软件和用户层软件不会。

与中断有关的操作:
①用户通过调用用户层软件提供的库函数发出的I/O请求
②用户层软件通过“系统调用”请求设备独立性软件层的服务
③设备独立性软件层根据LUT调用设备对应的驱动程序
④驱动程序向I/O控制器发出具体命令
⑤等待I/O完成的进程应该被阻塞,因此需要进程切换,而进程切换必然需要中断处理

在这里插入图片描述
逻辑表的作用:
①建立逻辑设备名到物理设备名的映射关系
②根据设备类型选择调用相应的驱动程序(不同的设备内部硬件有区别,所以要提供对应的驱动程序,系统安装设备的驱动程序之后就能知道怎么操作这些设备)
在这里插入图片描述

I/O核心子系统

就是中间三层

假脱机技术为I/O核心子系统的功能(大纲规定)

设备保护和文件保护很类似,把设备看成是特殊的文件就行了
在这里插入图片描述

假脱机技术(SPOOLing)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设备的分配与回收

在这里插入图片描述

设备的分配算法:先来先服务、优先级、短任务优先……
在这里插入图片描述
在这里插入图片描述

1.设备分配管理的数据结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这些表都是由:唯一ID、状态、上一层位置(通道则是找到所有控制器COCT)、等待队列(如果状态为忙就挂在等待队列,分配从队首取,新的插到队尾)
在这里插入图片描述

设备分配的步骤:
①根据进程请求的物理设备名查找SDT(注:物理设备名是进程请求分配设备时提供的参数)
②根据SDT找到DCT,若设备忙碌则将进程PCB挂到设备等待队列中,不忙碌则将设备分配给进程。
③根据DCT找到COCT,若控制器忙碌则将进程PCB挂到控制器等待队列中,不忙碌则将控制器分配给进程。
④根据COCT找到CHCT,若通道忙碌则将进程PCB挂到通道等待队列中,不忙碌则将通道分配给进程。

注∶只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进行数据传送

2.设备分配步骤改进

用户编程时必须使用物理名会很麻烦,所以建立一个逻辑名到物理名的映射
在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述

缓冲区管理

缓冲区可以由硬件也可以用内存

硬件:联想寄存器(快表),这种需要速度很高的时候

一般情况用内存作为缓冲区
在这里插入图片描述

1.单缓冲

在这里插入图片描述

在这里插入图片描述
缓冲区和工作区:取空才能放,放满才能取

T>C,要等缓冲区充满才能从缓冲区弄到工作区

T<C,CPU还没处理完,要处理完才能从缓冲区弄到工作区

2.双缓冲

在这里插入图片描述
在这里插入图片描述
这个不好找到与初始状态一样的情况,注意看周期就行

耗时:MAX(T,C+M)

在这里插入图片描述

单缓冲只能单向传输,双缓冲 能双向
管道其实就是缓冲区,所以要设置两个管道才能双向传输

3.循环缓冲区

在这里插入图片描述

4.缓冲池

在这里插入图片描述
hin:从空队列中取出一块,冲满后挂到输入队列队尾
sin:从输入队列中取出一块,读空后挂到空队列
hout:从空队列取出一块,冲满后挂到输出队列
sout:从输出队列取出一块,读空后挂到空队列

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:37:16  更:2021-08-04 11:39:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 3:37:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计