欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

IO类型

程序员文章站 2022-07-08 20:16:16
我的内容来自于《马哥Linux2016最新高薪运维视频课程-Nginx应用基础及配置详解》 httpd:MPM prefork,worker,event prefork:主进程,生成多个子进程,每个子进程处理一个请求; worker:主进程,生成多个子进程,每个子进程再生成多个线程,每个线程响应一个 ......
我的内容来自于《马哥linux2016最新高薪运维视频课程-nginx应用基础及配置详解》
httpd:mpm
prefork,worker,event
prefork:主进程,生成多个子进程,每个子进程处理一个请求;
worker:主进程,生成多个子进程,每个子进程再生成多个线程,每个线程响应一个请求
event:主进程,生成多个子进程,每个子进程响应多个请求
 
i/o类型:
同步i/o和异步i/o:synchronous,asynchronous
关注的是被调用者的消息通知机制
同步i/o:调用发出之后结果不会立即返回,但一旦返回,则返回既是最终结果
异步i/o:调用发出之后,被调用方立即返回消息,但返回的并不是最终结果;被调用方完成任务后会通过状态、通知机制等来通知调用者,或者通过回调函数来处理结果
 
阻塞i/o和非阻塞i/o:block,nonblock
关注的是调用者等待被调用者返回调用结果时的状态
阻塞:调用结果返回之前,调用者会被挂起,调用者只有在得到返回结果之后才能继续
非阻塞:调用者在结果返回之前,不会被挂起,即调用不会阻塞调用者
 
i/o模型:
blocking i/o:阻塞式i/o
nonblocking i/o:非阻塞式i/o
i/o multiplexing:复用型i/o 阻塞型,是阻塞在内核的代理上;当在内核代理上阻塞时,其调用者是没有阻塞的,可以发送请求
signal driven i/0:事件驱动式i/o 一个进程可以对应多个请求
asynchronous i/o:异步i/o 性能得到了极大提高
 
例如:在磁盘上做一次read操作
一个进程向磁盘发起一次请求后,会先通知内核,内核再把磁盘的数据加载到内核内存,再从内核内存把数据拷贝一份到进程内存中;真正执行i/o过程的阶段为内核把数据拷贝给进程内存的操作
(1)等待数据准备好,从磁盘到内核内存
(2)从内核内存复制到进程内存
IO类型