chap5 I/O管理

2024-05-12 23:04
文章标签 管理 chap5

本文主要是介绍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) 缓冲池

这篇关于chap5 I/O管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983985

相关文章

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动