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

相关推荐

  • 6个变态的C语言Hello World程序

    下面的六个程序片段主要完成这些事情: 输出Hello, World 混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。 hello1.c  #define _________ }     #define ______…

    Linux干货 2016-05-08
  • 自制 mini linux

    思路 先装载一块硬盘,按照上面两个实验的部分结果,创建各个目录 在/boot 里面添加内核 ,添加initramfs.img文件添加grub组件  ,创建grub.conf   然后复制bash  ,ls  ,cp  等,命令和响应的库文件,并在启动的时候指定第一个进程为/bin/bash 顺便加载一个网卡驱…

    2017-05-14
  • Linux Basics

    计算机的组成及其功能:             CPU:运算器、控制器、寄存器、缓存             存储器:内存,RAM(Random Access Memory)   …

    Linux干货 2016-09-17
  • 单用户模式破解密码与密码的加密

    当你坐在一台CentOS 6主机前,但是却不知道密码,要怎样破解掉密码进入系统呢? 答案很简单: 1、启动系统,当出现如下界面时,按任意键 2、你会看到这个画面 3、敲击“a”键,执行modifiy the kernel arguments 4、键入“1”键,进入单用户模式 5、至此,你已经成功进入系统,并修改了密码! 是不是觉得Centos6的系统这样安全…

    Linux干货 2016-09-13
  • 详解Ntbackup的五种备份方式(下)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/145644 继续上文。   四、差异备份(Differental Backup)     差异备份是…

    Linux干货 2015-03-26