linux基础之IO

一、IO

一次read操作:

(1)等待数据准备好:从磁盘到内核内存
(2)从内核内存复制到进程内存

示意图如下:

I/O类型:

 同步和异步:synchronous,asynchronous

   关注的是消息通知机制

  同步: 调用发出之后不会立即返回,但一旦返回,则返回的是最终结果
  异步: 调用发出之后,被调用方立即返回消息,但返回的并非最终结果;被调用者通过状态、通知机制等来通知调用者,或通过回调函数来处理结果
阻塞和非阻塞: block, nonblock
   关注的是调用者等待被调用者返回结果时的状态
  阻塞: 调用结果返回之前,调用者会被挂起;调用者只有在得到返回结果之后才能继续   非阻塞: 调用者在结果返回之前,不会被挂起,即调用不会阻塞调用者

I/O模型:  

blocking IO: 阻塞式IO
nonblocking IO: 非阻塞式IO
IO multiplexing: 复用型IO
   select(),poll() signal driven IO: 事件驱动式IO
  通知:
    水平触发: 多次通知
    边缘触发: 只通知一次 asynchronous IO: 异步IO

猜你喜欢

转载自www.cnblogs.com/ckh2014/p/10847843.html