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 单例设计模式]底层解析与运用 一.单例设计名词解释: (官方解释)单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例.(形象比喻)程序 — 公司 单例实例 - 管理 ...
随机推荐
- hdu1114 完全背包
题意:给出钱罐的重量,然后是每种钱的价值和重量,问钱罐里最少可能有多少钱. 完全背包. 代码: #include<iostream> #include<cstdio> #inc ...
- nefu558 bfs
Description AC小公主很喜欢设计迷宫,她设计的迷宫只有两个口,一个入口,一个出口.但小公主有时候很调皮,她会让挑战者走不出迷宫.现在给你AC小公主的迷宫请你判断挑战者能否成功从出口走出迷宫 ...
- 解决Myeclipse10 Building Workspace速度慢的问题
解决方法如下: 选择项目,选择Project -> Properties -> Builders,取消JavaScript Validator,validation或者其它你认为没必要的选 ...
- 解决eclipse报PermGen space内存溢出异常的问题
异常问题如下所示: 1.点击Eclipse->Window->Preferences,如下所示: 2.点击Server->Runtime Environments,选择Apache ...
- linux 添加新硬盘的方法
在服务器上把硬盘接好,启动linux,以root登陆. 比如我新加一块SCSI硬盘,需要将其分成三个区: #fdisk /dev/sdb 进入fdisk模式: Command (m for help) ...
- json日期格式问题的办法
//json日期转换 格式(2015-01-01) <input class="easyui-datebox" name="sbdj_txtShebaoka_Lin ...
- Mariadb 数据库写入中文乱码问题
从其他表里面导入数据,出现中文乱码错误.之前操作时并没有碰到类似问题,有些不得其解. 在网上搜了下,最后参考这篇文章,在执行insert前,先执行 set names gbk; 然后成功插入. 链接: ...
- Leetcode Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- ACM: HDU 1285 确定比赛名次 - 拓扑排序
HDU 1285 确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- 【BZOJ】2675: Bomb
题意: 给n个点,任选其中3个点(一个点只能取一次),求选出三个点的最大曼哈顿距离之和与最小曼哈顿距离之和(n<=10^5). 题解: 最大曼哈顿距离之和很好求,就是能包围所有点的经过三个点的矩 ...