5 I/O Models in Linux

  • Hans Huang
  • 4 Minutes
  • August 16, 2019

As we know, in Java there are 3 I/O modes: Block IO, Non-block IO, Async IO. The IO mode in programming language is actually underlying the OS level implementation.
In Linux(Unix) there are 5 IO modes:

  1. Blocking IO
  2. Nonblocking IO
  3. IO Multiplexing
  4. Signal driven IO
  5. Asynchronous IO

Before talk about the IO modes, let’s review the concept of IO. THe IO is short of Input/Output from CPU’s perspective: read/write data from local device (HDD, USB device…), remove device (the network). To simplify, let’s see the example that read/write a file from local HDD.

Blocking IO

Nonblocking IO

IO Multiplexing

Signal driven IO

Asynchronous IO