美文网首页手机移动程序开发程序员
JAVA-NIO学习之I/O选择与控制方式

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

作者: CatherYan | 来源:发表于2017-01-30 22:07 被阅读0次

前言

迎着最近闲暇时间,看了一些关于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方式
特点
  • I/O设备在进行传输时无需
  • 仅当传输一个数据时,CPU才花费极短的时间去做些中断处理
  • CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量
问题

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

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

特点
  • 数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块
  • 数据传送是从设备直接送入内存的,或者相反
  • 仅仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成。

附上各个流程图片:

222.png

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

I/O通道控制方式

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

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

相关文章

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

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

  • 设备管理(一)

    目录 5.1 I/O硬件原理 I/O系统 I/O控制方式 设备控制器 5.2 I/O软件原理 I/O软件设计目标和...

  • 数字I/O

    控制Arduino的方式可大致分为数字I/O和模拟I/O两种,我们先学习数字I/O。首先,字典中对“数字”的...

  • I/O控制方式

    设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。外围设备和内存的输入/输出控制方式有4种,即本文的内...

  • i/o控制方式

    I/O控制方式主要有程序查询方式、中断方式、DMA方式和通信方式。 1、程序查询方式 程序查询方式也称为程序轮询...

  • 系统分析师-第二章(计算机组成与体系结构 B)

    输入输出(I/O)接口 I/O系统的工作方式程序控制:CPU使用I/O指令编程控制,需要不停的查询I/O系统是否完...

  • Java-NIO(2)

    Java-NIO(2) 缓冲区 常规I/O操作存在很大缺点,主要是因为它们是阻塞的,而NIO正是为了解决常规I/O...

  • 19 I/O控制方式

    设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分...

  • 内联汇编控制PC蜂鸣器

    有了《初识Linux汇编》和《I/O映射之I/O端口》两篇文章的基础学习后,我们对控制PC蜂鸣器的操作改为使用内联...

  • 第六章 输入输出接口

    6.1 I/O接口概述 I/O接口是位于基本系统与外设间实现两者数据交换的控制电路。 6.1.1 I/O接口的典型...

网友评论

    本文标题:JAVA-NIO学习之I/O选择与控制方式

    本文链接:https://www.haomeiwen.com/subject/njphittx.html