![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux源码
文章平均质量分 96
Believer——篝火者
这个作者很懒,什么都没留下…
展开
-
Poll原理
首先,在do_sys_poll函数中,会开辟内存用于存放pollfd,如左下角PAGE所示,所有的pollfd集合构成一个单向链表,一个PAGE包括一个链表头和一个连续存储的pollfd实体,PAGE之间通过链表指针相连,PAGE内通过连续的存储索引。然后,初始化poll_wqueue队列,在do_poll函数中遍历pollfd链表,通过pollfd中的文件描述符获得文件,调用文件系统的poll函数。原创 2024-05-30 10:55:52 · 980 阅读 · 0 评论 -
select原理
select和poll几乎差不多,select底层也是通过文件系统的poll方法构建等待实体。首先调用core_sys_select,select会有三个文件集合,包括读集合、写集合和异常集合,select会先构建一个6集合的bitmap结构体,包括输入的三个集合和需要输出的三个集合。这个bitmap并没有限制在1024大小,struct结构体只是6个long long指针指向bitmap,而bitmap大小则是根据输入的文件数量开辟的bitmap。原创 2024-05-30 10:55:41 · 616 阅读 · 0 评论 -
Linux等待队列
一开始只是想看看select源码,但似乎需要先看看等待队列,发现了一些好的博客。原创 2024-05-30 10:17:49 · 647 阅读 · 0 评论 -
select 1024限制
文章主要来自,原作者通过源码和实验解释select真的是受1024限制吗,但是原作者的代码似乎有些问题(好像跑不通,但是思想表达的很明晰),这篇文章主要是对那篇文章的一个简单的解释,以及遇到的奇怪问题的记录。原创 2024-05-28 22:20:20 · 943 阅读 · 0 评论