Try   HackMD

L11: ktcp

主講人: jserv / 課程討論區: 2024 年系統軟體課程

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
返回「Linux 核心設計/實作」課程進度表

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
自我檢查清單

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
作業要求

  • 回答上述「自我檢查清單」的所有問題,需要附上對應的參考資料和必要的程式碼,以第一手材料 (包含自己設計的實驗) 為佳
  • 在 GitHub 上 fork khttpd,目標是
    1. 引入 Concurrency Managed Workqueue (cmwq),改寫 kHTTPd,分析效能表現和提出改進方案,可參考 kecho
    2. 提供目錄檔案存取功能,提供基本的 directory listing 功能
    3. 目前的 kHTTPd 初步實作 HTTP 1.1 keep-alive,不過效率不彰,以 ftrace 一類的工具指出問題所在並改進
    4. 引入 timer,讓 kHTTPd 主動關閉逾期的連線
    5. 以 RCU 搭配自行設計的 lock-free 資料結構,在並行環境中得以釋放系統資源

      參照 http-server-rcu

    6. 學習 cserv 的 memcache 並在 kHTTPd 重新實作
  • 過程中應一併完成以下:
    • 修正 kHTTPd 的執行時期缺失
    • 指出 kHTTPd 實作的缺失 (特別是安全疑慮) 並予以改正
  • 用你改進的 kHTTPd 和 cserv 進行效能評比,解釋行為落差

截止日期

  • May 15, 2024 (含) 之前

越早在 GitHub 上有動態、越早接受 code review,評分越高

作業觀摩