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
下一篇 2016-10-25

相关推荐

  • 用户和组相关的配置文件总结

    前言: 在用户管理,组管理过程中,最基本的四个文件就是/etc下面的passwd,shadow,group,gshadow。他们记录了与用户和组相关的信息。是学习和深入了解用户,组的基本。 除了这些基本的配置文件 还有与初始化相关的配置文件。定义用户添加时初始状态的配置文件/etc/default/useradd。 以及用户家目录的内容文件参考目录/etc/…

    Linux干货 2016-10-24
  • 自建repo软件仓库

    近期主要使用的aliyun的源,主要会用到centos6、zabbix、epel和xen等,由于网络质量不佳,考虑到自建软件仓库 第一步,删除系统自导的源,新建ali.repo,将常用的几个源地址加入 # rm /etc/yum.repos.d/*.repo -fr # vim /etc/yum.repos.…

    Linux干货 2016-05-19
  • iptables

    Evernote Export   基于本机服务器的iptables: 创建、重命名、删除自定义chain ~]# iptables -N testchain ~]# iptables -nL Chain INPUT (policy ACCEPT) target     prot opt source    …

    Linux干货 2016-11-20
  • 第11天:网络基础,属性配置

    http://note.youdao.com/noteshare?id=bf6e776e7271953bffe1bdf949df4e8f

    Linux干货 2016-09-06
  • linux常用命令实战练习–第一周作业

    1、使用date命令,显示前10天的年月日,显示后20天的年月日。 [root@chen ~]# date  Fri Jul 22 20:26:02 CST 2016 [root@chen ~]# date -d -10day &…

    Linux干货 2016-07-22
  • N21-第五周

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep "^[[:space:]]\+" /etc/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # grep&nbs…

    Linux干货 2016-08-15