linux 内核 的 I/O 模型 (总结)
来源:互联网 发布:武林外传龙门镖局知乎 编辑:程序博客网 时间:2024/05/08 17:46
发现 那些开源 框架 都离不开 linux 内核 的 I/O 模型
(感觉 看过好几次,没看懂 总结 一下)
必须有图 有文字
必须有图 有文字
必须有图 有文字
重要事 说三遍
1.Memcache 基于 libevent libevent 的 先进 是因为
采用了 新的 I/O 模型 epoll
Nginx 速度快于 Apache 因为 大并发下 网络I/O ,nginx 使用了行的I/O 方法
epoll (apache 采用的是 老的 select 模型)
首先 有一个队列: to find one of them 。 One : address & name
select : 轮询
· 并且,在linux/posix_types.h头文件有这样的声明:
· #define __FD_SETSIZE 1024
fd filedescriptor 文件描述符 整数 linux 抽象出来 用来描述 各种文件(内核(kernel)利用文件描述符(file descriptor)来访问文件)(基于文件描述符的I/O操作兼容POSIX标准)
Socket file fd
kqueue
Select poll epoll
Select epoll 解释
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。
select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。
而epoll版宿管大妈会先记下每位同学的房间号,
你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。
如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。
图片
Select :
Epoll
epoll通过在sock上注册的回调函数来使得软中断服务程序,在发生事件时调用此函数把准备好的sock复制到一个链表上。避免进程不知道哪个sock准备好了来进行轮询。
- linux 内核 的 I/O 模型 (总结)
- LINUX的I/O模型
- 《Linux驱动基础篇》- Linux内核I/O模型
- Linux I/O 模型
- Linux I/O模型
- linux I/O模型
- linux I/O模型
- Linux I/O模型
- linux I/O模型
- Linux I/O模型
- Linux I/O模型
- Linux下的I/O模型
- linux下的常用I/O模型
- linux 的 I/O模型----select 相关
- 浅谈Linux的I/O模型
- Linux的五种I/O模型
- Linux网络编程常见I/O模型总结
- Linux I/O模型漫谈!
- CMake使用教程
- i2c 设备读写 与驱动
- matlab/opencv图像处理之模板匹配
- ViewPager获取当前item的View
- 太原UI设计师教你如何在千万张图片中选择图像素材的技巧
- linux 内核 的 I/O 模型 (总结)
- hibernate一对一单向外键关联
- 关于volatile
- Docker Dockerfile详解
- iOS 中Base base64_encode编码
- error: Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.
- CodeForces 660E Different Subsets For All Tuples(动态规划)
- 工作中最全最常用的正则表达式
- Apktool—A tool for reverse engineering Android apk files