UNIX 网络编程学习(二)I/O模型

UNIX下有五种I/O模型

  1. 阻塞I/O模型
  2. 非阻塞I/O模型
  3. I/O复用(select和poll)
  4. 信号驱动I/O
  5. 异步I/O
第1种:阻塞I/O模型
请求的I/O操作阻塞进程,直到I/O操作完成。如下图:

第2种:非阻塞I/O模型

当请求I/O操作非得让进程阻塞不能完成时,不让进程阻塞,而应返回一个错误。如下图:


第3种:I/O复用模型

调用select或poll,在这两个系统调用中的某一个上阻塞,而不是阻塞于真正的I/O系统调用。如下图:


第4种:信号驱动I/O模型

对I/O操作接口进行信号驱动处理,并通过系统调用sigaction安装一个信号处理程序。系统调用立即返回,进程继续执行,非阻塞。当数据准备好时会产生SIGIO信号,我们随时可调用信号处理程序处理。如下图:


第5种:异步I/O模型

让内核启动操作,并在整个操作完成之后通知我们。与信号驱动I/O的主要区别在于:信号驱动I/O是内核通知我们何时完成可以启动一个I/O操作,而异步I/O模型是由内核通知我们I/O操作何时完成。如下图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值