I/O存取方式的形象比喻

I/O存取有三种方式:可编程I/O、中断驱动I/O、DMA,分别可理解如下:

下面以老师向班里同学收发作业来类比I/O存取,办公室表示内存,即,I操作表示:老师向学生收作业,然后存放到办公室里;O操作表示:老师从办公室拿出作业本,然后发给对应的人。

1、可编程I/O:最简单的一种。老师需要收取某个人或某些人的作业时,就会不断询问这个人或这些人准备好“交作业”了没?如果准备好,则收起来,然后存放到办公室中;老师需要发放某个人或某些人作业时,就从办公室取出对应的作业本,然后不断询问这个人或这些人准备好“接受作业本”了没?若准备好,则发作业本给他。

2、中断驱动I/O:不用询问需要收取或发放的这个人或这些人的准备状态。老师需要收取某个人或某些人的作业时,就会发出收作业的通知,然后就可以去做自己的其他事情,等到对应的人做好了作业,准备好上交的时候,这个人就向老师发出中断信号,老师响应他然后将作业收起来,然后存放到办公室中;老师需要发放某个人或某些人作业时,就会发出发放作业的通知,然后就可以去做自己的其他事情,等到对应的人准备好接受作业本的时候,这个人就向老师发出中断信号,老师响应他然后从办公室取出对应的作业本,作业发给他。

3、DMA方式:老师干脆设置了一个代理班长(班长对应DMA控制器),减轻了老师的负担,不用自己亲自去发放或收取作业本,直接授权给班长去办理。具体如下:当老师需要收取某个人或某些人的作业时,就会告诉班长要收取谁的作业、收取多少本等等信息,然后班长就会去完成收取作业这个动作(收取对应的人的作业本,然后存放到办公室),完成后班长就会向老师汇报完成情况;老师需要发放某个人或某些人作业时,就会告诉班长要方法谁的作业、发放多少本等等信息,然后班长就会去完成发放作业这个动作(从办公室取出对应的作业本,发放到取对应的人),完成后班长就会向老师汇报完成情况。

DMA方式在班长做发放或收取作业这个动作的时候,老师是不能够访问办公室里的作业本的,否则班长将可能弄混作业本或者找不到作业本。也就是说班长存取作业本的优先级要高于老师存取作业本,以避免数据丢失。所以老师如果现在改作业本的话,将会被挂起,改作业的这个的速度也会慢一点。

posted @ 2014-01-01 10:09  mo_wang  阅读(313)  评论(0编辑  收藏  举报