IO模型——进程工作的方式

I/O模型

模型:阻塞型、非阻塞型、复用型、信号驱动型、异步

同步/异步:

关注消息通知机制

    

消息通知:

         同步:等待对方返回消息

         异步:被调用者通过状态、通知或回调机制通知调用者被调用者的运行状态

一次IO请求,都会由两阶段组成:

第一步:等待数据,即数据从磁盘到内核内存

第二步:复制数据,即数据内核内存到进程内存

阻塞/非阻塞:

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

    

阻塞:blocking,调用结果返回之前,调用者被挂起

IO模型——进程工作的方式

    

非阻塞:nonblocking,调用结果返回之前,调用者不会被挂起

IO模型——进程工作的方式

复用型IO调用:

select():最大只支持1024个连接,http的prefork和work都是此模型

poll():

3.jpg

event-driven:<信号驱动型>

epoll(Linux):libevent

Kqueue(BSD):

Solaris:/dev/poll

4.jpg

异步IO模型:

 当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者的输入输出操作

5.jpg

5个I/O模型的比较:

6.jpg

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/55510

(1)
megedugaomegedugao
上一篇 2016-10-25 11:08
下一篇 2016-10-25 16:27

相关推荐

  • 用户创建及权限管理

    1.列出当前系统上所有已经登录的用户的用户名,注:同一个用户登录多次,则只显示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u [root@localhost ~]# who danry :0 2017-07-16 23:20 (:0) danry pts/0 2017-07-16 23:23 (192.168…

    Linux干货 2017-07-17
  • Python函数式编程指南(四):生成器

    转自 http://www.cnblogs.com/huxi/archive/2011/07/14/2106863.html 生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。 这是函数式编程指南的最后一篇,似乎拖了一个星期才写好,嗯…… 转载请注明原作者和原文地…

    Linux干货 2015-03-09
  • MySQL常用命令

    本文大纲 MySQL命令             (0%) 交互式CLI工具     服务端命令 mysqld服务器程序 数据类型 DDL语句                 &n…

    Linux干货 2017-02-16
  • 文本三剑客之sed用法总结

    描述:    sed是Stream EDitor(行编辑器)的简写,是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你…

    Linux干货 2016-08-10
  • 计算机基础

    计算机基础知识简单介绍

    2018-03-28
  • Linux基础知识之压缩、解压、归档工具

    压缩、解压、归档工具     压缩格式:gz,bz2,xz,zip,Z 压缩算法不同,压缩比也会不同     1.compress/uncompress (.Z) compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于 -c: 结果输出至标准输出, 不删除原…

    Linux干货 2016-08-19