There are five different type IO model under Linux , they are respectively

*Blocking IO
*NonBlocking IO
*IO Multiplexing
*Signal-Driven
*Asynchornours IO
I am going to illustrate the Read function to explain these types of IO model.

1.Blocking IO

alt text

2.Nonblocking IO

alt text

3.IO Multiplexing (select and poll)

alt text

4.Signal-Driven IO (SIGIO)

alt text

5.Asynchornours IO (the POSIX aio_functions)

alt text