五种IO模型

https://www.jianshu.com/p/5257b540c3e5

BIO:  accept无限阻塞,直到数据过来,process回调(process从socket等待队列里移除,并加入工作队列,等待os调度)

NIO:  不等待,立即返回;

IO Multiplexing:

    select/poll/epoll

     select : 将一个process维护进多个socket中,select无限阻塞,直到数据过来,返回一个fd, process回调(process从socket等待队列里移除,并加入工作队列,等待os调度)

     epoll:分四个步骤:

          epoll_create,

          epoll_ctl:维护socket列表

          epoll_wait:阻塞进程,类似于accept/select

          epoll_close

     epoll在内核维护了一个就绪列表runnable_list(当某个socket接收到数据时,将对应的fd加入到该runnable_list中)

     当网卡rcv数据时,会触发中断(ROK),

 

Singal Driven IO

AIO

 

https://blog.csdn.net/songchuwang1868/article/details/89877739#%E4%B8%80%E3%80%81%E4%BB%8E%E7%BD%91%E5%8D%A1%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E8%AF%B4%E8%B5%B7

 

posted @ 2020-08-11 18:00  骑驴晒太阳  阅读(110)  评论(0)    收藏  举报