当前位置: 首页 > news >正文

操作系统-笔记-第五章-输入输出管理

目录

五、第五章——输入输出管理

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 

http://www.lryc.cn/news/135881.html

相关文章:

  • 感觉自己效率不高吗?学习实现目标的六个关键步骤,让你做任何事都事半功倍!
  • 【高级IO】- 五种 IO 模型 | 多路转接 - select
  • 在Linux搭建GitLab私有仓库配置实现远程访问私有仓库Gitlab ——【内网穿透】
  • ChatGPT应用于高职教育的四大潜在风险
  • uni-app在组件中内嵌webView,实现自定义webView的大小,并处理页面中有webview时其他元素点击事件失效的问题
  • 档案开发:增加查询和打卡按钮
  • redis基础细心讲解,一篇了解常用的缓存技术!
  • Three.js之几何体、高光材质、渲染器设置、gui
  • UE4如何连接dmx---摇头矩阵灯具的创建
  • 网络聊天室
  • ChatGPT只是玩具:生成式人工智能在不同行业的应用
  • RestFul的风格是什么
  • 【自制C/C++小项目JuLongEditor】使用Windows控制台API来制作一个简单的文本编辑器
  • 中国芯,寻找新赛道迫在眉睫
  • C++ 好用的格式化库--fmt
  • 微信小程序教学系列(3)
  • ORB-SLAM系列算法演进
  • solidity0.8.0的应用案例11:透明代理合约
  • 最新消息:谷歌将在Chromebook上运用UWB技术,无线通信更上一层
  • php+echarts实现数据可视化实例3
  • ubuntu下安装Sphinx,编译pdf
  • vue2.x项目从0到1(七)之用户权限
  • 上传镜像到阿里云的ACR
  • ahooks.js:一款强大的React Hooks库及其API使用教程(五)
  • MySQL TCL 事务控制
  • 【Ubuntu】从Graylog到Grafana Loki:构建更强大的网络设备管理和监控系统
  • [JavaWeb]【八】web后端开发-Mybatis
  • Flink源码之Checkpoint执行流程
  • 【工具使用】Git的使用
  • 无涯教程-PHP Installation on Windows NT/2000/XP with IIS函数