软件层面这一切都被底层函数接管了,所以搜到的资料绝大多数都是讲相关的概念和调用的方法。
我相信肯定有少数资料涉及到我的困惑,但已经把能想到的关键词组合都尝试搜索过了。
既要保证及时性,又要避免无脑轮询,又要异步,虽然各种数据结构、流程信号讲得天花乱坠,但是我思来想去,到 CPU 这一块,要实现这样的特性,似乎只有中断能胜任。
我知道 x86 架构里有个作用类似于“中断管理”的模块,能统合处理各种软硬件中断。select/epoll 之类的,是不是最后都需要依赖这样的硬件结构?
1
louettagfh 2020-07-21 11:42:09 +08:00 1
就是你说的 CPU 中断处理
|
2
des 2020-07-21 11:52:23 +08:00 1
|
3
ungrown OP |
4
lqs 2020-07-21 12:10:37 +08:00 1
无论是用 select/epool 还是普通的 read,底层都会用到中断,并设置一些状态。
然后 select 仍然是轮询上面设置的状态。epoll 是在中断里加了回调。 |