假设幼儿园一个阿姨带N个孩子,要给每个孩子分M块水果糖,糖放在自己的糖果包里面。假设孩子们把M块糖都吃完,那么她采用什么方法呢?
1、她先从糖果包里面给孩子甲一块糖,盯着甲吃完,然后再给第二块,等吃完第二块又给第三 块,吃完第三块又给第四块。接着给孩子乙,其过程与孩子甲完全一样。依次类推,直至到 第10个孩子发完四块糖。看来这种方法效率太低,重要之点还在于孩子们吃糖时她一直在守 候,什么事也不能干。
程序控制:CPU完全控制,CPU必须实时查询I/O的设备状态。
2、每人她先从糖果包里面拿一块糖发给每个小朋友去吃,并约定谁吃完后就 向她举手报告,再发第二块。看来这种新方法提高了工作效率,而且在未接到孩子们吃完糖 的 报告以前,她还可以腾出时间给孩子们改作业。
程序中断:I/O设备以中断方式通知CPU,定期查询状态。
以上是程序控制
----------------------------------------------------------------------------------------------------------------------------------
以下是硬件控制
3、找一个人过来帮忙看下,每个小孩是不是都从包包里面拿了M块糖。发完后,找来的那个人向阿姨报告下。
DMA方式:使用DMA控制器(DMAC)来控制和管理数据传输。
4、找N个人过来,每一个人负责分给一个小朋友。负责发放的人没有自己的糖果包。
通道:专门处理器控制I/O功能(只有处理器,没有内存)
5、找几个专门发糖的阿姨来发糖,每个阿姨都有一个糖果包。
I/O处理机:不仅有处理机,还有本地内存。