chap5 I/O管理

目录

一、I/O设备基本概念和分类 304

1.concept

2.classification

(1)根据信息交换单位(可能考)

1)字符设备

2)块设备

(2)传输速率(以下了解即可)

(3)使用特性

(4)共享资源

二、I/O控制器(I/O接口) 305

1.function

(1)接受和识别命令(控制寄存器)

(2)数据交换(数据寄存器)

(3)标识和向CPU报告设备状态(状态寄存器)

(4)地址识别(由I/O逻辑实现)

2.construction

(1)CPU和控制器接口

(2)I/O逻辑

(3)控制器和设备接口

3.两种寄存器编码方式

(1)内存映像 

(2)寄存器独立编址

三、I/O控制方法 307

1.程序直接控制方式

(1)cpu干涉率

(2)data流向(将I/O设备理解为disk)

2.中断驱动方式

(1)cpu干涉率

(2)data流向(将I/O设备理解为disk)

3.DMA方式(直接存储器方式)(Direct Memory Access)

(1)cpu干涉率

(2)data流向(将I/O设备理解为disk)

4.通道控制方式

(1)cpu干涉率

(2)data流向(将I/O设备理解为disk)

四、I/O软件层次结构 309

​编辑

1.用户层软件

2.设备独立性软件

(1)主要功能

3.设备驱动程序

4.中断处理程序

5.考点

(1)次序

(2)每层是干嘛的

五、I/O管理 311

1.应用程序I/O接口

(1)字符设备接口

(2)块设备接口

(3)网络设备接口(网络套接字Socket接口)

(4)阻塞I/O vs 非阻塞I/O

2.设备驱动程序接口

六、设备独立性软件 318

​编辑

1.假脱机技术(SPOOLing技术) 324

(1)脱机技术(源自OS的批处理阶段)

(2)假脱机技术

(3)application

2.设备分配与回收 322

(1)应考虑的因素

(2)静态分配和动态分配

(3)设备分配管理中的DS

(4)设备分配的step

分配设备、分配控制器、分配通道

(5)分配的step改进

3.缓冲区管理(高速缓存与缓冲区) 319

(1)缓冲区concept

(2)缓冲区function

(3)单缓冲

(4) 双缓冲

(5) 循环缓冲

(6) 缓冲池


一、I/O设备基本概念和分类 304

1.concept

进行输入输出data的设备,eg:disk、打印机

2.classification

(1)根据信息交换单位(可能考)

1)字符设备

以字符为data传输单位,传输速率低,不可寻址(不能确定是从哪开始读or写)

eg:从键盘中获取data,只能从头开始

2)块设备

以数据块为data传输单位,传输速率高,可寻址

eg:使用read or write() 函数参数为file_name,从哪开始读,读多少长度 

(2)传输速率(以下了解即可)

(3)使用特性

(4)共享资源

二、I/O控制器(I/O接口) 305

进行data传输的东西

1.function

(1)接受和识别命令(控制寄存器)

CPU发布命令,控制寄存器接受命令

(2)数据交换(数据寄存器)

CPU和I/O设备速度差距较大,为了减缓差距,先将data放在数据寄存器中

(3)标识和向CPU报告设备状态(状态寄存器)

空闲/忙碌/故障

(4)地址识别(由I/O逻辑实现)

识别文件的地址

2.construction

(1)CPU和控制器接口

(2)I/O逻辑

(3)控制器和设备接口

3.两种寄存器编码方式

(1)内存映像 

与内存中地址接着一块编码

(2)寄存器独立编址

自己编号,每个控制器的寄存器重新开始

disa:如果需要指明寄存器的时候,需指明设备管理器号和寄存器号

三、I/O控制方法 307

怎么进行data读写

1.程序直接控制方式

cpu发布命令之后,轮询的问是否完成

(1)cpu干涉率

一直干涉

(2)data流向(将I/O设备理解为disk)

读:I/O设备->cpu(的寄存器)->内存

写:内存->cpu(的寄存器)->I/O设备

disa:cpu一直占用,不能处理其他任务

2.中断驱动方式

cpu发出命令之后,就去处理别的任务,当命令完成之后,发回一个中断信号告诉cpu完成了

(1)cpu干涉率

cpu发任务和处理中断

(2)data流向(将I/O设备理解为disk)

同程序直接控制方式

3.DMA方式(直接存储器方式)(Direct Memory Access)

在I/O和内存间开辟通道,解放cpu

(1)cpu干涉率

传输一个块or多个块的开始和结束的时候才需cpu干涉

ATTn:如果每次传输的data块是一块,可以在物理上是离散的

if 传输的是连续的块,则在物理上也得是连续的

(2)data流向(将I/O设备理解为disk)

读:I/O设备->内存

写:内存->I/O设备

so 如果是多个1块1快的,则需要多次I/O

4.通道控制方式

建立通道,"弱鸡版CPU",cpu只需发命令和处理中断即可,data传输是一组块

(1)cpu干涉率

cpu只需发命令和处理中断即可

(2)data流向(将I/O设备理解为disk)

同DMA

四、I/O软件层次结构 309

1.用户层软件

实现与用户交互的接口,包括库函数,对设备进行操作

2.设备独立性软件

提供与设备硬件功能无关的功能

(1)主要功能

书+补充

1)将逻辑设备名映射为物理设备名,根据设备类型选择调用相应的驱动程序

利用逻辑设备表(LUT) 324

3.设备驱动程序

eg:打印机

4.中断处理程序

用于保留中断的进程的CPU环境

5.考点

(1)次序

(2)每层是干嘛的

五、I/O管理 311

1.应用程序I/O接口

(1)字符设备接口

(2)块设备接口

(3)网络设备接口(网络套接字Socket接口)

bind:将Socket绑定到某个本地接口

connect:将Socket连接到远程地址

read/write:从Socket中读/写data

(4)阻塞I/O vs 非阻塞I/O

在进行I/O操作时,进行就被阻塞 eg:从键盘中输入字符,没有回车之前都在阻塞

在进行I/O操作时,进行不会被阻塞,cpu每隔一段时间就问询是否完成

2.设备驱动程序接口

OS规定好设备驱动程序的接口标准,各厂商必须按照要求开发设备的驱动程序接口

六、设备独立性软件 318

1.假脱机技术(SPOOLing技术) 324

(1)脱机技术(源自OS的批处理阶段)

使用外围控制器+高速设备缓冲区缓解CPU和I/O设备间速度的差距,实现预输入,缓输出

(2)假脱机技术

而假脱机技术利用程序实现脱机,从而称为假脱机技术

输入井 and 输出井、输入缓冲区 and 输出缓冲区、输入进程 and 输出进程、井管理程序

(3)application

使用SPOOLing技术将独占设备打印机实现共享

2.设备分配与回收 322

(1)应考虑的因素

(2)静态分配和动态分配

静态分配:进行运行前为其分配所有的所需资源,运行结束之后归还

破坏了"请求和保持"条件,不会“死锁”

动态分配:在执行过程中动态申请设备资源

(3)设备分配管理中的DS

多个通道,通道:控制器=1:多,控制器:设备=1:多

设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、系统控制表(SCT)

(4)设备分配的step

分配设备、分配控制器、分配通道

disa:①用户变成是使用物理设备名,底层细节对用户不透明,不方便编程

②if更换物理设备,则程序无法执行

③设备分配使用的是设备的物理名称,那么即使有同类的设备空闲,也会造成阻塞

(5)分配的step改进

将物理设备名映射为逻辑设备名,使用LUT

3.缓冲区管理(高速缓存与缓冲区) 319

(1)缓冲区concept

(2)缓冲区function

(3)单缓冲

ATTn:①缓冲区非空时不能再冲入data,只能冲出

②缓冲区冲满之后才能取data

初始条件:工作区满,缓冲区空

Summary:max(C,T)+M

ATTn:只有工作区空且缓冲区满才能从缓冲区冲入工作区

(4) 双缓冲

初始状态:工作区空,缓冲区一空一满

SUmmary:Max(T,C+M)

T<C+M时,找不到完全与初始状态完全相同的时刻,但是多几个回合之后发现每C+M的时间就处理完一次,so avgT = C+M

(5) 循环缓冲

(6) 缓冲池

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言数据分析案例-股票可视化分析

一、数据整合的对象 # Loading necessary libraries library(readxl) library(dplyr)# Reading the data from Excel files data_1 <- read_excel("云南白药.xlsx") data_2 <- read_excel("冰山.xlsx")二、数据整合的代码 # Reading the data from…

OBS插件--音频采集

音频采集 音频采集是一款 源 插件,类似于OBS的win-capture/game-capture&#xff0c;允许从特定应用程序捕获音频&#xff0c;而不是捕获整个系统的音频。避免了因为特定音频的采集而需要引入第三方软件&#xff0c;而且时延也非常低。 下面截图演示下操作步骤&#xff1a; 首…

【顺序程序设计-谭浩强适配】(适合专升本、考研)

无偿分享学习资料&#xff0c;需要的小伙伴评论区或私信dd。。。 无偿分享学习资料&#xff0c;需要的小伙伴评论区或私信dd。。。 无偿分享学习资料&#xff0c;需要的小伙伴评论区或私信dd。。。 完整资料如下&#xff1a;纯干货、纯干货、纯干货&#xff01;&#xff01;…

WEB后端复习——监听器、过滤器

Listener监听器 是Servlet规范中定义的一种特殊类&#xff0c;它用于监听web应用程序中的ServletContext, HttpSession和ServletRequest等域对象的创建与销毁事件&#xff0c;以及监听这些域对象中的属性发生修改的事件。 注解WebListener 1.ServletContextListener 监听Serv…

U盘文件遇损?拯救“文件或目录损坏且无法读取”的秘籍!

在数字化时代&#xff0c;U盘已成为我们日常生活与工作中不可或缺的数据存储和传输工具。然而&#xff0c;有时我们可能会遇到一个非常令人沮丧的问题——U盘中的文件或目录突然损坏且无法读取。这种突发状况往往让人措手不及&#xff0c;甚至可能引发数据丢失的严重后果。那么…

打印图案(金字塔)头歌作业

题目: 任务描述 本关任务&#xff1a;编写一个程序&#xff0c;输出堆叠式的金字塔图案。 输入n个字符&#xff0c;按以下原则输出&#xff1a;【参考样例】 1)第1个字符为一层金字塔图案&#xff0c;第2个字符为两层金字塔图案&#xff0c;第3个字符为三层金字塔图案&#x…

相同的树——java

给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true示例 2&…

[华为OD] B卷 树状结构查询 200

题目&#xff1a; 通常使用多行的节点、父节点表示一棵树&#xff0c;比如 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后&#xff0c;请打印出来树中他的所有下层节点 输入描述 第一行输入行数&#xff0c;下面是多行数据&#xff0c;每行以空…

C++青少年简明教程:基础知识

C青少年简明教程&#xff1a;基础知识 电脑程序设计&#xff08;Computer programming&#xff09;&#xff0c;或称程序设计&#xff08;programming&#xff09;&#xff0c;是给出解决特定问题程序的过程&#xff0c;程序设计往往以某种程序设计语言为工具&#xff0c;给出这…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…

公有云Linux模拟TCP三次挥手与四次握手(Wireshark抓包验证版)

目录 写在前面环境准备实验步骤1. 安装nc工具2. 使用nc打开一个连接2.1 公有云-安全组放行对应端口&#xff08;可选&#xff09; 3. 打开Wireshark抓包工具4. 新开终端&#xff0c;进行连接5. 查看抓包文件&#xff0c;验证TCP三次握手与四次挥手TCP三次握手数据传输TCP四次挥…

Netty源码分析二NioEventLoop 剖析

剖析方向 NioEventLoop是一个重量级的类&#xff0c;其中涉及到的方法都有很复杂的继承关系&#xff0c;调用链&#xff0c;要想把源码全部过一遍工作量实在是太大了&#xff0c;于是小编就基于下面的这些常见的问题来对NioEventLoop的源码来进行剖析 1.Seletor何时创建 1.1Se…

【408真题】2009-08

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

TMS320F280049 CLB模块--LUT4 OUTLUT(4)

LUT4 示意图如下&#xff1a; OUTLUT 示意图如下&#xff1a; 寄存器 参考文档&#xff1a; TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. G)

【数据结构】图的应用---最小生成树(Prim,Kruskal)、最短路径(BFS,Dijkstra,Floyd)、拓扑排序、关键路径、有向无环图表达式

文章目录 5.图的应用5.1 最小生成树5.1.1 Prim算法5.1.2 Kruskal算法5.1.3 最小生成树代码A.邻接矩阵B.邻接表 5.2 最短路径5.2.1 BFS5.2.2 Dijkstra5.2.3 Floyd5.2.4 三种算法的比较 5.3 有向无环图描述表达式5.4 拓扑排序5.5 关键路径 5.图的应用 5.1 最小生成树 定义 对一个…

模型推导:BG/NBD(预测用户生命周期(CLV)模型)

CLV&#xff08;Customer Lifetime Value&#xff09;指的是客户生命周期价值&#xff0c;用以衡量客户在一段时间内对企业有多大的价值。企业对每个用户的流失与否、在未来时间是否会再次购买&#xff0c;还会再购买多少次才会流失等问题感兴趣&#xff0c;本文中的BG/NBD模型…

Linux|进程控制

进程创建 fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 返回值&#xff1a;子进程中返回0&#xff0c;父进程返回子进程id&#xff0c;出错返回-1 进程调用fork&#xff0c;当…

AVL 树的理解和简单实现

目录 1. AVL 树 1.1. AVL 树的概念 1.2. AVL 树的性质 2. AVL 树的框架如下 2. AVL树的 插入 2.1. 平衡因子的更新 2.2.1. 平衡因子更新的第一种情况 2.2.2. 平衡因子更新的第二种情况 2.2.3. 平衡因子更新的第三种情况 2.2.4. 平衡因子更新的代码框架如下 2.2. AV…

《C++学习笔记---初阶篇6》---string类 上

目录 1. 为什么要学习string类 1.1 C语言中的字符串 2. 标准库中的string类 2.1 string类(了解) 2.2 string类的常用接口说明 2.2.1. string类对象的常见构造 2.2.2. string类对象的容量操作 2.2.3.再次探讨reserve与resize 2.2.4.string类对象的访问及遍历操作 2.2.5…

5KVA电力高频逆变器DU5000HD不间断电源DU3000HD

UPS电力高频逆变器DU3000HD不间断电源模块DU5000HD&#xff0c;单机版2KVA逆变电源DU2000HD&#xff0c;并机版2KVA逆变器DU2000H&#xff0c;3KVA逆变装置DU3000H&#xff0c;DU5000H&#xff0c;IV2000HD-2&#xff0c;IV3000HD-2&#xff0c;IV5000HD-2&#xff0c;IV2000H-…