I/O存取方式的形象比喻
I/O存取有三种方式:可编程I/O、中断驱动I/O、DMA,分别可理解如下:
下面以老师向班里同学收发作业来类比I/O存取,办公室表示内存,即,I操作表示:老师向学生收作业,然后存放到办公室里;O操作表示:老师从办公室拿出作业本,然后发给对应的人。
1、可编程I/O:最简单的一种。老师需要收取某个人或某些人的作业时,就会不断询问这个人或这些人准备好“交作业”了没?如果准备好,则收起来,然后存放到办公室中;老师需要发放某个人或某些人作业时,就从办公室取出对应的作业本,然后不断询问这个人或这些人准备好“接受作业本”了没?若准备好,则发作业本给他。
2、中断驱动I/O:不用询问需要收取或发放的这个人或这些人的准备状态。老师需要收取某个人或某些人的作业时,就会发出收作业的通知,然后就可以去做自己的其他事情,等到对应的人做好了作业,准备好上交的时候,这个人就向老师发出中断信号,老师响应他然后将作业收起来,然后存放到办公室中;老师需要发放某个人或某些人作业时,就会发出发放作业的通知,然后就可以去做自己的其他事情,等到对应的人准备好接受作业本的时候,这个人就向老师发出中断信号,老师响应他然后从办公室取出对应的作业本,作业发给他。
3、DMA方式:老师干脆设置了一个代理班长(班长对应DMA控制器),减轻了老师的负担,不用自己亲自去发放或收取作业本,直接授权给班长去办理。具体如下:当老师需要收取某个人或某些人的作业时,就会告诉班长要收取谁的作业、收取多少本等等信息,然后班长就会去完成收取作业这个动作(收取对应的人的作业本,然后存放到办公室),完成后班长就会向老师汇报完成情况;老师需要发放某个人或某些人作业时,就会告诉班长要方法谁的作业、发放多少本等等信息,然后班长就会去完成发放作业这个动作(从办公室取出对应的作业本,发放到取对应的人),完成后班长就会向老师汇报完成情况。
DMA方式在班长做发放或收取作业这个动作的时候,老师是不能够访问办公室里的作业本的,否则班长将可能弄混作业本或者找不到作业本。也就是说班长存取作业本的优先级要高于老师存取作业本,以避免数据丢失。所以老师如果现在改作业本的话,将会被挂起,改作业的这个的速度也会慢一点。
I/O存取方式的形象比喻的更多相关文章
- Winform消息与并行的形象比喻
有一次我给同事讲述跨线程调用时使用了高速行驶的并行列车来比喻,感觉比较形象. 线程列车 多线程就像多个并行的列车,每个线程在各自的轨道上不断向前行驶.主界面所在的线程称为UI线程,也叫主线程,主线程依 ...
- 大数据技术生态圈形象比喻(Hadoop、Hive、Spark 关系)
[摘要] 知乎上一篇很不错的科普文章,介绍大数据技术生态圈(Hadoop.Hive.Spark )的关系. 链接地址:https://www.zhihu.com/question/27974418 [ ...
- ajax获取数据的形象比喻,助于理解记忆
过程 创建对象(打开浏览器) 连接服务器(输入网址) 发送请求(按下回车) 服务器接收并返回数据(显示对应的网址网站内容) 原理
- 加密解密(5)SSL形象比喻
转自: http://blog.csdn.net/cloverphp/article/details/11737433 前言: 关于公钥,私钥请看前几篇文章 SSL 协议既用到了公钥加密技术(握手 ...
- NIO与传统IO的区别(形象比喻)[转]
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大.使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数 ...
- BIO、NIO、AIO的形象比喻
BIO (Blocking I/O):同步阻塞I/O模式. NIO (New I/O):同步非阻塞模式. AIO (Asynchronous I/O):异步非阻塞I/O模型. 先看阻塞和非阻塞的区别, ...
- 前端学HTTP之实体和编码
前面的话 每天都有各种媒体对象经由HTTP传送,如图像.文本.影片以及软件程序等.HTTP要确保它的报文被正确传送,识别.提取以及适当处理.为了实现这些目标,HTTP使用了完善的标签来描述承载内容的实 ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- 【iOS 单例设计模式】底层解析与运用
[iOS 单例设计模式]底层解析与运用 一.单例设计名词解释: (官方解释)单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例.(形象比喻)程序 — 公司 单例实例 - 管理 ...
随机推荐
- 8659 Mine Sweeping
时间限制:500MS 内存限制:65535K提交次数:37 通过次数:15 题型: 编程题 语言: G++;GCC Description The opening ceremony of the ...
- document.images、document.forms、doucument.links——>HTMLCollection
由于历史原因,HTMLDocument类定义了一些快捷属性来访问各种各样的节点.例如,images.forms.links等属性指向香味类似只读数组的<img>.<form>. ...
- EF框架step by step(3)—Code-First
CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法. 本文采用的示例仍然是前两篇采用的博客用户的示例. ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- Struts2上传大小限制
Struts中报错 the request was rejected because its size (***) exceeds the configured maximum (2097152) 最 ...
- 【原】iOS学习之PCH文件
1. PCH文件概述 PCH文件是一种预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是 ...
- BZOJ2629 : binomial
根据Lucas定理,等价于在$P$进制下每一位分别求组合数最后乘积模$P$. 因为答案为$0$的并不好算,所以可以考虑用$n+1$减去其它所有的答案. 那么每一位的组合数都不能是$0$,那么这就保证了 ...
- [linux]ubuntu 下安装RMySQL包
http://downloads.mysql.com/docs/connector-odbc-en.pdf http://blog.csdn.net/ixidof/article/details/59 ...
- 【转】ssh登录慢,等待输入密码时间长的解决办法
http://youhuiba.net/2013/06/09/520.html 有时候在ssh远程登录到其他主机上时发现登录时间太长,要等待很久才会出现输入密码的提示,google了一下,发现主要有两 ...
- android 自定义 view 和 ViewGroup
---恢复内容开始--- ViewGroup的职能为:给childView计算出建议的宽和高和测量模式 :决定childView的位置:为什么只是建议的宽和高,而不是直接确定呢,别忘了childVie ...