深入理解Linux內核中EPOLL機制系列(一)數據結構

最近工作中,遇到一個epoll引起內核無法休眠的問題。因此,在解決問題之際,同時拜讀了一下epoll機制的內核源碼。

這裡我打算從下面幾條線(每天一條線)來分享講解epoll源碼:

  • 內核中epoll主要數據結構
  • 內核中怎麼處理epoll_create ,epoll_ctl的add過程、epoll_wait
  • epoll是如何處理邊沿觸發及水平觸發的
  • epoll是如何與應用層交互數據的(真的用了mmap?)
  • epoll是如何處理休眠超時及休眠過程中,被監聽的設備事件就緒後,自己如何被喚醒的

先附上內核中EPOLL機制的倆個最重要的結構體,我詳細註釋了各個成員變量的作用:

深入理解Linux內核中EPOLL機制系列(一)數據結構

struct eventpoll

深入理解Linux內核中EPOLL機制系列(一)數據結構

struct epitem

深入理解Linux內核中EPOLL機制系列(一)數據結構

封面


分享到:


相關文章: