关于DMA和spooling技术的疑问。

向大家请教两个问题,希望大家多多指教。

第一:DMA(存储器直接访问)技术可以使得外部设备不通过CPU而直接与系统内存交换数据,在传输数据过程中,DMA使用了数据总线,那么cpu没办法从内存读取数据来计算,那么cpu不就是空闲了吗,这样的话怎么提高了cpu的效率?

第二:spooling技术,先将作业读取到内存的输入缓冲区,再保存在外存的输入井,然后cpu从输入井读取任务到内存执行,任务执行完以后保存到外存的输出井,然后再从输出井读取到内存的输出缓冲区,最后从输入缓冲区传输到外部设备。
这样的过程怎么能省时间呢?我觉得这技术还不如直接从外部设备读取到内存然后执行最后输出。
谢谢各位!
#题解#
全部评论
cpu,dma交替吧
点赞 回复
分享
发布于 2018-11-07 23:02
第一个问题,你的描述有问题呀,“cpu没办法从内存读取数据来计算”,通过DMA技术从外部设备读到内存中,传输过程不就是不需要CPU干预了吗
点赞 回复
分享
发布于 2018-11-08 10:03
联易融
校招火热招聘中
官网直投
dma不是直接从内存到内存么?如果是cup读写的的话应该是cpu读a寄存器的数据然后写入到b,dma的话就是直接从a到b不用经过cpu,cpu可以做其他的工作啊
点赞 回复
分享
发布于 2018-11-08 12:48

相关推荐

点赞 评论 收藏
转发
头像
不愿透露姓名的神秘牛友
03-13 14:57
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务