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、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 # cp -a /etc/skel /home/tuser1 # chmod -R go= /home/tuser1 2、编辑/etc/group文件,添加组hadoop #vim /etc/group #hadoop:x:5…

    Linux干货 2017-10-21
  • 马哥教育网络班21期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录及文件命令 pwd:打印当前工作路径(绝对路径),并且有相应的环境变量PWD表示。 cd:切换目录 ~用户家目录 ..当前目录的父目录 .当前目录 -上次所在的目录。 ls:查看目录下内容,常用选项 -a 列出目录下所有文件和目录;-d 只显示目录本身属性信息;-h 文件大小单…

    Linux干货 2016-07-17
  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   cp -r /etc/skel /home/tuser1    chmod -R go=— /home/tuser1 2、编辑/etc/group文件,添加组hadoo…

    Linux干货 2016-09-19
  • 文本处理和正则表达式练习(0805)

    1、找出ifconfig命令结果中本机的所有IPv4地址     1.1 Centos7     1.2 Centos6 2、查出分区空间使用率的最大百分比值,取各分区利用率的数值 取出各分区数值 取出最大百分比 3、查出用户UID最大值的用户名、 UID及shell类型 4、查出/tmp…

    Linux干货 2016-08-06
  • 马哥教育网络班21期+第17周课程练习

    1、结合图形描述LVS的工作原理; lvs是基于内核的虚拟主机用来做四层的负载均衡,工作在netfilter框架的INPUT链上,有四种模式,上图为lvs-nat lvs-nat:有DNAT功能,支持端口映射,请求报文和响应报文都需要经过Director 请求过程:cip–>vip,Director,cip–>rip 响应…

    Linux干货 2016-12-26
  • nginx提供web服务——虚拟主机

    练习:定义四个虚拟主机,混合使用三种类型的虚拟主机;   仅开放给来自于本地网络中的主机访问; [root@node1 ~]# vim /etc/nginx/nginx.conf user           …

    Linux干货 2016-10-23