操作系统-笔记-第五章-输入输出管理
目录
五、第五章——输入输出管理
1、IO设备的概念和分类
(1)IO设备分类——使用特性
(2)IO设备分类——传输速率
(3)IO设备分类——信息交换(块、字符)
2、IO控制器
(1)寄存器编址——(内存映射、寄存器独立编址)
(2)总结
3、IO控制方式
(1)程序直接控制方式(轮询)
(2)中断驱动方式
(3)DMA方式
(4)通道(弱鸡版CPU-硬件)
(5)总结
4、IO软件层次结构
(1)用户层软件
(2)设备独立性软件
(2)为什么一般连接硬件-需要下载(安装)驱动程序?
(3)中断处理程序
(5)总结
5、输入输出应用程序接口
(1)两个主机-通过操作系统-相互通信
(2)阻塞IO & 非阻塞IO
(3)驱动程序
6、IO核心子系统(独立性、驱动、中断)
(1)IO调度
(2)设备保护
7、假脱机技术
(1)脱机技术——诞生
(2)假脱机技术
(3)假脱机技术——应用(共享打印机的实现)
(4)总结
8、设备的分配和回收
(1)设备分配
(2)分配管理——数据结构
(3)设备分配步骤
(4)总结
8、缓冲区管理
(1)缓冲区的作用
(2)单缓冲
(3)双缓冲
(4)双缓冲——用于通信
(5)循环缓冲区——更多的缓冲区
(6)缓冲池
(7)总结
五、第五章——输入输出管理
1、IO设备的概念和分类
(1)IO设备分类——使用特性
(2)IO设备分类——传输速率
(3)IO设备分类——信息交换(块、字符)
2、IO控制器
(1)寄存器编址——(内存映射、寄存器独立编址)
编址方式有很多(这里只是介绍了两种!!!)
下面有这两者的优缺点!!!
(2)总结
3、IO控制方式
(1)程序直接控制方式(轮询)
轮询——占用CPU(CPU利用率低)
(2)中断驱动方式
解决了CPU占用问题,但是太多(太频繁)的中断,也会消费CPU大量时间来处理!
(3)DMA方式
针对【中断方式】,那么就单独加一层,让一个单独的设备来处理中断
目的:给CPU减少负担~(给他加了一个DMA小弟)
单独的设备——【DMA控制器】
DMA也是一个字一个字读取的,只不过他封装好了一个数据包,CPU来读取就完事了!
如果CPU要读取连续的数据(那么DMA也是一个一个的读取出来~)
(4)通道(弱鸡版CPU-硬件)
加强版DMA【工作方式-类似CPU】
(5)总结
这是一个不断发展迭代的过程
轮询—中断—DMA—通道
4、IO软件层次结构
(1)用户层软件
提供用户方便操作的接口(比如:Windows API)
(2)设备独立性软件
类似——文件目录(实现多用户)
(2)为什么一般连接硬件-需要下载(安装)驱动程序?
打印机、鼠标、键盘等等(都可能有自身的特性,需要安装自身提供的程序,供CPU使用)
(3)中断处理程序
(5)总结
用户-独立性-驱动-中断-硬件
5、输入输出应用程序接口
(1)两个主机-通过操作系统-相互通信
(2)阻塞IO & 非阻塞IO
(3)驱动程序
为了方便各自厂商开发自己的硬件,并且能够支持操作系统使用
【操作系统】就会【制定统一的标准】,厂商就会根据这个标准再进行封装一层(驱动程序)
让【操作系统】正常使用【硬件设备】
6、IO核心子系统(独立性、驱动、中断)
(1)IO调度
(2)设备保护
7、假脱机技术
(1)脱机技术——诞生
脱机技术——脱离主机的控制(进行输入,输出的操作)
因为输入和输出的速度不匹配(有矛盾)
先用磁带——预先输入,这样机器就可以畅通无阻的读取啦~
(2)假脱机技术
(3)假脱机技术——应用(共享打印机的实现)
比较low的打印机:只能让一个人用,当打印机在工作时,无法响应其他的请求
高级的(共享版本):加入一个缓冲队列,可以响应多个请求
(不过只是表面上答应,你的需求只是加入打印机的任务队列,还是要排队滴~)
(4)总结
8、设备的分配和回收
(1)设备分配
(2)分配管理——数据结构
(设备控制表、控制器控制表、通道控制表、系统设备表)
(3)设备分配步骤
逻辑设备名——操作系统来找到【具体设备】
逻辑设备名——方便用户编程!!!
表的单张和多张(文件系统那章,也有说过)
单张——用于单用户
多种——用于多用户
(4)总结
8、缓冲区管理
硬件实现的缓冲区——成本高,容量小(速度快!!!)【例:快表】
软件实现的缓冲区——成本低,速度较慢
IO设备和CPU的速度不匹配(需要缓冲区)
(1)缓冲区的作用
(2)单缓冲
缓冲区不为空时——不可加入数据
缓冲区满了——才可以拿取数据
两者速度不匹配的情况(如下图)
(3)双缓冲
(4)双缓冲——用于通信
(5)循环缓冲区——更多的缓冲区
(6)缓冲池
(7)总结
到这里,操作系统就全部学完啦~
这只是一点的结束,也是另外一个新的开始,为了自己的梦想,冲啊!!!
终身学习,丰富自己,满足自身的求知欲,加油!!!相信你一定可以!
时间:2023年8月23日12:48:55
相关文章:
操作系统-笔记-第五章-输入输出管理
目录 五、第五章——输入输出管理 1、IO设备的概念和分类 (1)IO设备分类——使用特性 (2)IO设备分类——传输速率 (3)IO设备分类——信息交换(块、字符) 2、IO控制器 &#x…...
感觉自己效率不高吗?学习实现目标的六个关键步骤,让你做任何事都事半功倍!
概述 是否感觉自己效率不高?做任何事情都提不起来精神?开发的时候要完成的功能很多,却不知该如何下手去做?那么你通过这篇文章可以学习到六个完成工作和学习目标的关键步骤,只要简单重复这六个步骤,就可以很轻松的达到你想做到的任何目标。是不是感觉很神奇,我也是亲测…...
【高级IO】- 五种 IO 模型 | 多路转接 - select
目录 IO的基本概念 什么是高效的IO? 五种IO模型 阻塞IO 非阻塞IO 信号驱动IO IO多路转接 异步IO 同步通信VS异步通信(synchronous communication / asynchronous communication) 同步通信VS同步与互斥 阻塞VS非阻塞 其他高级IO …...
在Linux搭建GitLab私有仓库配置实现远程访问私有仓库Gitlab ——【内网穿透】
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 下载Gitlab2. 安装Gitlab3. 启动Gitlab4. 安装cpolar5. 创建隧道配置访问地址6. 固定GitLab访问地址6.1 保留…...
ChatGPT应用于高职教育的四大潜在风险
目前,ChatGPT还是一种仍未成熟的技术,当其介入高职教育生态后,高职院校师生在享受ChatGPT带来的便利的同时,也应该明白ChatGPT引发的风险也会随之进入高职教育领域,如存在知识信息、伦理意识与学生主体方面的风险与挑战…...
uni-app在组件中内嵌webView,实现自定义webView的大小,并处理页面中有webview时其他元素点击事件失效的问题
uni-app在组件中内嵌webView,实现自定义webView的大小,并处理页面中有webview时其他元素点击事件失效的问题 uni-app在组件中内嵌webView,实现自定义webView的大小 setWebviewTop() {// #ifdef APP-PLUSvar currentWebview this.$scope.$g…...
档案开发:增加查询和打卡按钮
档案开发:增加查询和打卡按钮 和单据开发的不同点 没有单据类型不是右击–>特性–>单据主表/单据子表,而是右击–>特性–>选择想要的接口访问器类型是NCVO不需要映射不是项目右键–>新建–>其他–>主子表单据结点,而是…...
redis基础细心讲解,一篇了解常用的缓存技术!
今日内容 redis 1. 概念 2. 下载安装 3. 命令操作1. 数据结构 4. 持久化操作 5. 使用Java客户端操作redis 6. 在ssm项目中使用缓冲进行CRUD操作Redis 1. 概念 redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅…...
Three.js之几何体、高光材质、渲染器设置、gui
参考资料 阵列立方体和相机适配体验Threejs常见几何体简介…gui.js库(可视化改变三维场景) 知识点 注:基于Three.jsv0.155.0 长方体:oxGeometry球体:SphereGeometry圆柱:CylinderGeometry矩形平面:PlaneGeometry圆…...
UE4如何连接dmx---摇头矩阵灯具的创建
UE4如何连接dmx---摇头矩阵灯具的创建 开始创建库! 然后我们开始创建多少个灯珠(注意了:这是矩阵灯,是看灯珠的) 那么这里我们创建6X6灯珠 下面设置灯珠的属性,灯珠有什么属性呢,只有颜色属性&…...
网络聊天室
一、项目要求 利用UDP协议,实现一套聊天室软件。服务器端记录客户端的地址,客户端发送消息后,服务器群发给各个客户端软件。 问题思考 客户端会不会知道其它客户端地址? UDP客户端不会直接互连,所以不会获知其它客…...
ChatGPT只是玩具:生成式人工智能在不同行业的应用
源自:IT经理网 生成式人工智能的十一个行业用例 打开生成式 AI的正确姿势 声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题&…...
RestFul的风格是什么
RestFul的风格是什么? 当我们谈论RESTful风格时,它指的是一种设计和构建网络应用程序的原则和约定。以下是RESTful风格的一些主要特点: 资源:将应用程序的功能封装为资源,每个资源都有一个唯一的标识符(U…...
【自制C/C++小项目JuLongEditor】使用Windows控制台API来制作一个简单的文本编辑器
2023年8月22日,周二下午 昨天花了一个下午和晚上来制作的, 实现了一些基本的功能, 但由于代码只有130行,所以存在很多不足之处 GitHub:GitHub - JuLongZhiLu/JuLongEditor: C/C小项目,使用Windows控制台…...
中国芯,寻找新赛道迫在眉睫
北京华兴万邦管理咨询有限公司 商瑞 陈皓 近期国内半导体行业的热点可以用两个“有点多”来描述,一个是中国芯群体中上市公司股价闪崩的有点多,另一个是行业和企业的活动有点多。前者说明了许多国内芯片设计企业(fabless商业模式)…...
C++ 好用的格式化库--fmt
背景 fmt 库是一个开源的 C 格式化库,它提供了一种简洁、安全和高效的方式来进行字符串格式化。该库的设计目标是提供与 Python 的字符串格式化语法类似的功能,同时保持 C 的类型安全性和性能。 下载与安装 官网下载 fmt 官网地址:https:…...
微信小程序教学系列(3)
微信小程序教学系列 第三章:小程序高级开发技巧 1. 小程序API的使用 小程序API简介 小程序API是小程序提供的一系列接口,用于实现各种功能和操作。通过调用小程序API,可以实现页面跳转、数据存储、网络请求等功能。 使用小程序API的步骤…...
ORB-SLAM系列算法演进
ORB-SLAM算法是特征点法的代表,当前最新发展的ORB-SLAM3已经将相机模型抽象化,适用范围非常广,虽然ORB-SLAM在算法上的创新并不是很丰富,但是它在工程上的创新确实让人耳目一新,也能更好的为AR、机器人的算法实现落地。…...
solidity0.8.0的应用案例11:透明代理合约
选择器冲突 智能合约中,函数选择器(selector)是函数签名的哈希的前4个字节。例如mint(address account)的选择器为bytes4(keccak256("mint(address)")),也就是0x6a627842. 由于函数选择器仅有4个字节,范围很小,因此两个不同的函数可能会有相同的选择器,例如…...
最新消息:谷歌将在Chromebook上运用UWB技术,无线通信更上一层
超宽带(UWB)技术是一种创新的短距离无线通信技术,具有高速数据传输和精确定位物体位置的优势。尽管该技术已经存在一段时间,但最近开始广泛应用于各种设备中。据最新报道,Pixel Watch 2可能会搭载UWB模块,这…...
php+echarts实现数据可视化实例3
效果 全部代码 <?php include(includes/session.inc); include(includes/SQL_CommonFunctions.inc); ?> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" …...
ubuntu下安装Sphinx,编译pdf
安装WSL2: 以管理员身份打开PowerShellwsl --install 来安装其他 Linux 发行版wsl --list --verbose 查看安装在 Windows 计算机上的 Linux 发行版列表 安装sphinx: sudo apt-get updatesudo apt-get install python3-sphinxsudo apt-get install lat…...
vue2.x项目从0到1(七)之用户权限
此章节偏理论知识 对于小一点的项目 比如说角色都是平级的 那我们直接像之前 vue2.x项目从0到1(二)之后台管理侧边栏(动态渲染路由以及高亮)_vue动态渲染侧边栏_关忆北_的博客-CSDN博客这样渲染就行了 但是一旦项目大了 …...
上传镜像到阿里云的ACR
1、开通阿里云ACR 2、在ACR 中创建命名空间 3、本地安装docker 4、登录到 开通ACR,需要配置访问凭证 [rootmaster ~]# docker login --username***lb registry.cn-beijing.aliyuncs.com Password: 5、给镜像打标签 [rootmaster ~]# docker images REPOSITORY …...
ahooks.js:一款强大的React Hooks库及其API使用教程(五)
一、ahooks.js简介二、ahooks.js安装三、继续ahooks.js API的介绍与使用教程61. useEventTarget62. useExternal63. useFavicon64. useMutationObserver65. useLongPress66. useScroll67. useResponsive68. useFocusWithin69. useControllableValue70. useEventEmitter 一、aho…...
MySQL TCL 事务控制
文章目录 1.事务四大特性2.事务并发问题3.事务隔离级别4.隔离级别查看与设置5.动提交事务5.1 查看自动提交事务5.2 关闭或开启自动提交事务 6.事务执行的基本流程7.设置事务的保存点参考文献 说到事务控制,先说一下数据库的事务是什么以及 MySQL 中我们必知的知识点…...
【Ubuntu】从Graylog到Grafana Loki:构建更强大的网络设备管理和监控系统
在将Graylog部署到生产环境时,我们遇到了一些问题,其中最主要的是无法安装MongoDB并且无法随时重启机器去修改BIOS设置来修复问题 【WARNING: MongoDB 5.0 requires a CPU with AVX support, and your current system does not appear to have that! 】。…...
[JavaWeb]【八】web后端开发-Mybatis
目录 一 介绍 二 Mybatis的入门 2.1 快速入门 2.1.1 准备SpringBoot工程 2.1.2 创建数据库mybatis以及对应库表user 2.1.3 创建User实体类 2.1.4 配置application.properties数据库连接信息 2.1.5 编写sql语句(注解方式) 2.1.6 测试运行 2.1.7 配…...
Flink源码之Checkpoint执行流程
Checkpoint完整流程如上图所示: JobMaster的CheckpointCoordinator向所有SourceTask发送RPC触发一次CheckPointSourceTask向下游广播CheckpointBarrierSouceTask完成状态快照后向JobMaster发送快照结果非SouceTask在Barrier对齐后完成状态快照向JobMaster发送快照结…...
【工具使用】Git的使用
dev代表开发版 1. git clone 命令 通过 git add <name> 对文件进行跟踪,把<name>加入到暂存区 git commit -m XXXXXXX 提交修改并补充XXXXX作为注释 “暂存”状态:出现了一些修改,但是还没有提交 对于Java来说,.cl…...
网站建设论文伯乐在线/公众号推广引流
2019独角兽企业重金招聘Python工程师标准>>> 对于请求头Content-Type,默认application/x-www-form-urlencoded。 1、(可用) CloseableHttpClient client HttpClients.createDefault(); // 实例化一个post对象 Ht…...
济南网站建设求职简历/百度seo收录软件
【log4j:WARN No appenders could be found for logger 解决方案】 【解决】 我们在使用Log4j的时候,总是出现: Java代码log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory). log4j:WARN Please initialize …...
网站备案背景布/站牛网是做什么的
作者:张华 发表于:2016-02-25 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 使用gdb或者crash时需要debug symbols, 可以从http://ddebs.ubuntu.…...
商城小程序开发报价/杭州网站seo
开通禁止移动信息服务器 内容精选换一换通过SmartKit工具可以对Atlas 500 智能小站进行快速批量配置。对Atlas 500 智能小站 1.0.7.SPC100之前版本,SmartKit不支持自动发现设备,只能通过IPSN(序列号)或者IPMAC地址发现设备。PC机和待操作的Atlas 500 智能…...
软件开发培训机构去哪个学校深圳/网络优化工程师前景
梯度爆炸 原因:梯度变得非常大,使得学习过程难以继续 现象:观察log,注意每一轮迭代后的loss。loss随着每轮迭代越来越大,最终超过了浮点型表示的范围,就变成了NaN。 措施: 1. 减小solver.prot…...
wordpress手机主题浮动导航/北京网站优化步
Kendo UI for jQuery R2 2020 SP1试用版下载 Kendo UI目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQuery是创建现代Web应用程序的最完整UI库。 行模板 Kendo UI Grid支持行模板&…...