操作系统---IO设备
- 操作系统—IO设备
- IO设备
- IO控制方式
- 1、程序中断控制方法
- 2、中断驱动方法
- 3、DMA
- 4、通道控制方法
- 举例子分析
- IO子系统的层次结构
- 举个例子
操作系统—IO设备
IO设备
按使用特性分类
- 人机交互类外设:键盘、鼠标
- 存储设备:磁盘
- 网络通讯设备:网络接口啥的
按传输速率分类
- 低速设备:每秒一个或几个字节,如键盘等等
- 中速设备:每秒数千个字节,如打印机等等
- 高速设备:几千兆字节,如磁带机
按信息交换的单位分类
- 块设备:如磁盘,其特征是传输效率高,以及可寻址,即可以随机读写任意一块,换句话说类似数组随机读取指定索引
- 字符设备:如打印机,效率低下,不可寻址,输入输出采用中断机制
IO控制方式
1、程序中断控制方法
cpu发起io指令,cpu一直等着io读取完毕,数据没准备好需要空等,也就是阻塞,数据准备好了也需要cpu去搬运,很明显,cpu和io的效率是天差地别,这个时候cpu利用率很低
2、中断驱动方法
cpu发起读命令,保存当前运气程序的上下文,转而去执行其他程序,每个指令末尾,cpu检查下中断是否发生
如果有那么保存现在执行程序的上下文,去执行之前那个程序。
虽然比程序中断法牛逼了点,在数据没有准备好,cpu不会空等,但由于每个字在存储器和IO设备之间传输都要经过cpu,即把数据传输进内存也是要cpu控制,每个指令还需要查看中断其实还是效率不高
3、DMA
首先DMA由这几个部分组成
- 命令/状态寄存器:接收cpu发来的控制信息,或设备状态
- 内存地址寄存器:输入时候,存放数据放入内存的起始地址
- 数据寄存器:暂存设备到内存,内存到设备的数据
- 数据计数器:存放本次传送的字节数
DMA方式的特点
- 按块传输
- 设备到内存,内存到设备
- 一个或多个数据块开始,结束才需要cpu干预,块的传输是在DMA控制下
cpu发起io请求,把这个io请求给DMA,然后继续工作,DMA在内存和设备之间传输数据,不需要cpu参与,传输完成后给中断信号,只有开始和结束cpu才需要参与,而且传输数据无需cpu参与
4、通道控制方法
通道和DMA主要区别是,DMA需要cpu控制传输数据块大小,内存位置,而通道控制方法中都是由通道控制
一个通道可以控制多台设备,DMA只能一个
通道可以一次性读取一组数据块,DMA是一个数据块
举例子分析
程序控制:cpu轮询的去io这边看下,是否准备好数据
中断控制:io每次准备好一部分数据,就给cpu一个中断信号,然后让cpu从它哪里拿到内存中去
DMA:cpu找了个仆人DMA,交代好数据放在内存哪里,这次要传输的数据块大小,io把数据准备好就通知DMA,让DMA去拿到内存中去,每次处理好这次数据就给cpu一个信号
通道控制:cpu的这个仆人更加牛逼了,他能绝定数据放内存哪里,一次传输多少数据,报告时间也由它觉得,是传输了20%报告还是100%报告随它。而且它可以与多个设备交换
IO子系统的层次结构
用户层IO软件 |
---|
设备独立软件 |
设备驱动软件 |
中断处理软件 |
硬件 |
- 用户io软件:实现和用户交换接口
- 设备独立软件:实现用户程序和设备驱动器的统一接口,设备命令,设备保护及设备分配与释放
- 设备驱动软件:和硬件相关,负责具体实现系统对设备发出的操作指令
- 中断处理软件;用于处理中断相关
- 硬件设备:包括一个机械部件(设备本身)和一个电子部件(控制器)
举个例子
上面太抽象了,得来个具体例子
当Java读取文件的时候,会通过操作系统系统的read命令接口,这就是用户层
操作系统的接口是统一接口,不管事socket还是文件系统read都能通过这个接口调用,首先通过设备独立层进行解析,这层类似于分发的作用,分发给不同的设备驱动软件
因为是操作磁盘读取,那么磁盘接收read和socket(网卡)接收read是会做出不同动作的,这层就是设备驱动层
然后就是执行read命令,需要中断指令,这就是中断处理软件
最后到了硬件也就是磁盘,硬件设备的控制器按照上层传达的命令操控硬件完成功能,这里是硬件层
操作系统---IO设备相关推荐
- 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理
文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...
- 【操作系统】IO设备
第五章 IO设备 文章目录 第五章 IO设备 I/O设备的基本概念和分类 I/O控制器 I/O软件层次结构 I/O核心子系统 假脱机技术(SPOOLing技术) 设备的分配与回收 缓冲区管理 I/O设 ...
- IO设备在OS中的权衡
IO设备是操作系统的中断源之一,IO设备包括磁盘,时钟,中断源,显示器,按照数据传送的基本单元分为块设备和字符设备.本文从磁盘这一个IO设备来归纳操作系统中IO设备从硬件到软件的工作方式. 硬件水平观 ...
- Linux内核:IO设备通信的控制方式
IO设备与主机(CPU.内存)之间的通信不是直接的,而是通过设备控制器,设备控制器是IO设备和主机之间的中介.IO设备和进程之间的数据传送方式主要有4种: 1.程序控制方式:又被称为"忙等& ...
- KVM中的网络IO设备虚拟化方式
在KVM虚拟化的架构里,对CPU的虚拟化采用的是硬件辅助的方式(Intel VT-x,AMD-V),效率比较高,内存的虚拟化有Intel EPT技术的支持,效率也没有问题:那么对于像磁盘驱动器,网卡等 ...
- 【操作系统】设备驱动
本文为学习李治军老师<操作系统原理.实现与实践>第八章的总结,主要讲述显示器.键盘设备驱动. 参考资料: 哈工大李治军老师操作系统mooc视频: 实践项目解析. 第八章 设备驱动 设备驱动 ...
- 移动磁盘由于IO设备错误,要怎样寻回文件
J盘打不开由于IO设备错误,是因为这个I盘的文件系统内部结构损坏导致的.要恢复里面的数据就必须要注意,这个盘不能格式化,否则数据会进一步损坏.具体的恢复方法看正文 工具/软件:流星数据恢复软件 步骤1 ...
- 如何找回由于IO设备错误移动磁盘的文件
由于IO设备错误说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文了解(不格式化的恢 ...
- 移动硬盘由于IO设备错误,无法运行此项请求文件怎样恢复
由于IO设备错误,无法运行此项请求说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文 ...
- 5.1.1 IO设备的概念与分类
目录 思维导图 什么是IO设备 按使用特性分类 按传输速率分类 按信息交换的单位分类 思维导图 什么是IO设备 按使用特性分类 按传输速率分类 按信息交换的单位分类
最新文章
- [转]Java中常用的集合—初学者的你不可错过的精编整理
- dx9 lock unlock效率太低_巧用“动作经济原则”,员工不累,效率加倍!
- mysql查询2020年之前_2020年成人高考成绩如何查询?2020年成考录取结果如何查询?...
- 音视频技术开发周刊 | 204
- LightOJ-1220 Mysterious Bacteria (素数打表+欧几里得算法+唯一分解定理)给出x,求x=a^p,最大的指数
- extjs grid 整行变颜色_EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色...
- 关闭线程 C语言,如何用C语言实现多线程
- flutter initializing gradle终极解决方案
- 八、面向对象三大特征(二)—— 继承
- 通过 SiteServer CMS 推进政府网站集约化、集群化建设
- \t\t中国历代皇帝列表,中国皇帝列表,中国历代时间表,中国各朝代列表
- 如何构建创新文化——技术视角
- 什么是计算机剪贴板(粘贴板)?
- 荣耀智慧屏x1和小米4a哪个好?
- 软测(三)测试用例基本介绍
- 运筹学作业——社会网络中的信息传播优化问题
- 掘金总点赞量前 5000 排行发布 | 掘金总关注量前 5000 排行
- Laravel实现dingo+JWT api接口之实战篇
- echarts 随屏幕大小改变大小chart.resize()
- go语言编程入门_Go编程入门