系统I/O模型

同步/异步
关注的是事件处理的消息通信机制,在等待一件事情的处理结果时,被调用者是否提供完成通知

  • 同步
    调用者等待被调用者返回消息后才能继续执行,如果被调用者不提供消息返回则为同步,同步需要调用者主动询问事件是否完成
    进程发出请求后,内核不提供通知机制,即文件完成IO不通知进程,需要进程主动询问内核

  • 异步
    被调用者通过状态、通知和回调机制主动通知调用者,即异步会主动返回被调用者状态给调用者
    进程发出请求后,内核会在调用处理完成后返回调用结果给进程

阻塞/非阻塞
关注调用者在等待结果返回之前所处的状态

  • 阻塞
    指IO操作需要彻底完成后才返回到用户空间,调用结果返回之前,调用者被挂起
  • 非阻塞
    指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成,最终的调用结果返回之前,调用者不被挂起,可以继续处理其他事件
posted @ 2022-04-16 11:43  在半空頫視地球╰☆╮  阅读(12)  评论(0编辑  收藏  举报