手机移动程序开发程序员

JAVA-NIO学习之I/O选择与控制方式

2017-01-30  本文已影响0人  CatherYan

前言

迎着最近闲暇时间,看了一些关于java nio方面的博客和书籍资料,现在做一些系列总结。

首先在了解NIO之前,先温故下I/O选择方式,因为只有了解这些,才明白出现通道和缓冲区的原因

I/O选择方式

1. 程序I/O方式

特点

CPU要不断地测试I/O设备的状态,没有中断机构,使I/O设备无法向CPU报告它已经完成了一个字符的输入操作。

问题

CPU的高速性能和I/O的低速性能,使CPU绝大部分时间都在等待I/O设备返回消息,这样就造成了CPU的极大浪费。

2. 中断驱动程序I/O方式
特点
问题

由于中断驱动程序的传输单元为一个数据,传输完毕之后依旧需要CPU进行中断处理,依旧花费很多时间,所以引入了DMA传输方式

3. 直接存储器访问(DMA)I/O控制方式

特点

附上各个流程图片:

222.png

由于DMA传输方式采用一个或多个数据块的开始和结束,才需CPU干预,整块数据的传送是在控制器的控制下完成,有效解决了中断驱动程序I/O方式的每个数据传输,都需要CPU进行中断处理的机制。

I/O通道控制方式

I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。

接下来总结下I/O方式缓冲区的概念及其要点。

上一篇 下一篇

猜你喜欢

热点阅读