注意!這是上課筆記
Section | Time | Description |
---|---|---|
1 | 00:00:16 | The Evolution of Linux I/O Models: A Path towards IO_uring 1. 簡介。 2. Blocking I/O: read(). 3. Non-blocking I/O. 4. 在充滿偏見的台灣,用知識武裝自己。 5. I/O Multiplexing: select(), epoll(). 6. Asynchronous I/O: aio_read(). 7. AIO 的效益在多核環境下,效果較顯著。 8. AIO pros and cons. 9. thread pool 的設計:醫生跟病患。 10. sendfile(): 降低 kernel and user space 的資料存取。 11. Linux libaio functions. 12. POSIX AIO(user level) v.s. KAIO(kernel level). 13. io_uring: submission queue(SQ) and completion queue(CQ). 14. 實驗數據:sync / posix-aio / libaio / io_uring. |
2 | 01:21:36 | 1. 簡單複習。 2. 多執行緒的講古: 在執行緒出來之前,使用 epoll 滿足需求。 3. "對 seHTTPd 進行壓力測試"。 4. cserv 專案。 5. Asynchronous I/O Model. |
3 | 01:35:13 | 1. Event-driven Server 2. 案例探討: NGINX. 3. Proxy server 創業講古時間. |
4 | 01:56:43 | 1. NGINX 的介紹。 |
5 | 02:03:38 | 1. 以 sendfile 和 splice 系統呼叫達到 Zero-Copy. 2. khttpd 的講古。 3. sendfile 系統呼叫。 4. Zero-Copy. |
6 | 02:26:30 | 1. splice 系統呼叫。 2. Thread Pool. 3. Thread pool 與 epoll loop 的關係。 4. 野雞大學上課的經驗分享。 |
7 | 02:52:37 | 1. 高效 Web 伺服器開發。 2. TCP 伺服器的實作挑戰。 |
8 | 03:08:31 | 1. Reactor Pattern. 2. edge/ level trigger. 3. 實作考量點。 4. 透過 timerfd 處理週期性任務。 5. khttpd jserv 版. |