破解NIO

作者: 想太多的猫 | 来源:发表于2018-01-07 22:50 被阅读7次

计算机组成结构(概念模型)

CPU(ALU +CU),MEMORY,IO设备三大抽象组件。计算机可以简单抽象为取指执行自动模型机,指令位置存于内存中,而指令一般由操作符和操作数构成,而操作符可以理解为何种操作(比如加法操作 add),操作数一般为立即数,寄存器,内存地址。从CPU的指令,可以看出IO设备要能够被CPU所访问,必须要有自己的内存地址,IO设备要进行编址。
IO设备如何与CPU设备进行交换,最先想到就是CPU主动去每个IO设备的内存中看看是否有相关数据,有没有数据其实IO设备是最清楚。于是,主动轮询演化成了被动通知到CPU,通知的方式统称为Interrupt(中断)。

操作系统

编程模型

编写程序,说白了就是操作计算机,计算机这么多硬件,如何最方便且安全的操作,那我们需要一个统一管理者,那它就是操作系统,它给我们一个编程的基本环境。基本环境:逻辑代码和系统调用组成。IO操作为最为频繁操作,如何进行IO操作?那就是通过系统调用。一般的IO操作,都是阻塞的系统调用,操作系统这个时候会进行进程的切换,便于对计算资源的最大利用。

IO模型

  • 同步IO和异步IO
    这是用户线程和操作系统内核交互来讲:
    对于同步IO:当用户发出IO请求操作后,如果数据没有就绪,需要通过用户线程或者内核不断地去轮询数据是否就绪,当数据就绪时,再将数据从内核拷贝到用户线程;
    而异步IO:只有IO请求操作的发出是由用户线程来进行的,IO操作的两个阶段都是由内核自动完成,然后发送通知告知用户线程IO操作已经完成。也就是说在异步IO中,不会对用户线程产生任何阻塞。
  • 阻塞与非阻塞

TCP状态机

操作TCP状态机

相关文章

  • 破解NIO

    计算机组成结构(概念模型) CPU(ALU +CU),MEMORY,IO设备三大抽象组件。计算机可以简单抽象为取指...

  • 图解Java NIO

    目录: NIO结构 NIO与传统IO异同 NIO使用步骤 NIO代码 ByteBuffer难点解析 1:NIO结构...

  • nio

    参考文章 Java Nio Java NIO学习笔记 - NIO客户端时序图 Java NIO学习笔记 - NIO...

  • NIO(二、Buffer)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Bu...

  • NIO(四、Selector)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Se...

  • NIO(三、Channel)

    目录 NIO(一、概述)NIO(二、Buffer)NIO(三、Channel)NIO(四、Selector) Ch...

  • 大厂面试系列(二)::NIO和Netty

    NIO和Netty面试题 NIO 阐述 NIO原理? BIO/NIO/AIO有什么区别?有那些实现? 讲讲NIO的...

  • 大厂面试系列(二)::NIO和Netty

    NIO和Netty面试题 NIO 阐述 NIO原理? BIO/NIO/AIO有什么区别?有那些实现? 讲讲NIO的...

  • NIO教程 ——检视阅读(上)

    NIO教程 ——检视阅读 参考 BIO,NIO,AIO 总结 Java NIO浅析 Java NIO 教程——极客...

  • Java Nio 之Buffer

    Java Nio 系列Java Nio 之BufferJava Nio 之直接内存Java Nio 之高级搬砖工(...

网友评论

      本文标题:破解NIO

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