ungrown
V2EX  ›  编程

操作系统 select/epoll 在硬件层面究竟是如何实现的?软中断?

  •  
  •   ungrown · Jul 21, 2020 · 2459 views
    This topic created in 2122 days ago, the information mentioned may be changed or developed.

    软件层面这一切都被底层函数接管了,所以搜到的资料绝大多数都是讲相关的概念和调用的方法。

    我相信肯定有少数资料涉及到我的困惑,但已经把能想到的关键词组合都尝试搜索过了。

    既要保证及时性,又要避免无脑轮询,又要异步,虽然各种数据结构、流程信号讲得天花乱坠,但是我思来想去,到 CPU 这一块,要实现这样的特性,似乎只有中断能胜任。

    我知道 x86 架构里有个作用类似于“中断管理”的模块,能统合处理各种软硬件中断。select/epoll 之类的,是不是最后都需要依赖这样的硬件结构?

    4 replies    2020-07-21 12:10:37 +08:00
    louettagfh
        1
    louettagfh  
       Jul 21, 2020   ❤️ 1
    就是你说的 CPU 中断处理
    des
        2
    des  
       Jul 21, 2020   ❤️ 1
    ungrown
        3
    ungrown  
    OP
       Jul 21, 2020
    @louettagfh #1
    @des #2
    谢谢,明白了
    lqs
        4
    lqs  
       Jul 21, 2020   ❤️ 1
    无论是用 select/epool 还是普通的 read,底层都会用到中断,并设置一些状态。

    然后 select 仍然是轮询上面设置的状态。epoll 是在中断里加了回调。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5095 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 05:38 · PVG 13:38 · LAX 22:38 · JFK 01:38
    ♥ Do have faith in what you're doing.