我正在研究twisted和node.js框架的工作原理,并试图确切地了解操作系统如何使用回调支持I/O操作。
我知道这很好,因为我们需要更少的线程,因为我们不需要阻塞线程等待I/O操作。但是一旦I/O完成,必须有某个东西调用回调函数。
操作系统是如何实现这个功能的?
我正在研究twisted和node.js框架的工作原理,并试图确切地了解操作系统如何使用回调支持I/O操作。
我知道这很好,因为我们需要更少的线程,因为我们不需要阻塞线程等待I/O操作。但是一旦I/O完成,必须有某个东西调用回调函数。
操作系统是如何实现这个功能的?
kqueue
机制的论文中阅读有关此实现的内容。请特别参见第6节“实现”,第3和4小节“事件源上的活动”和“交付”。