106 OS homework 2-2 成果報告書

組長:隨班附讀、廖哲賢
組員:隨班附讀、沈德祐
github: https://github.com/teyushen/xv6-public


🙂 使用情境說明(包含流程圖)

  1. 實作了ps 功能列出所有process的狀態。
  2. 實作了優先權高的process先執行功能,USER 端可以同時執行兩個process,並可以看到每個process的相關狀態,以及目前在執行什麼process,有刻意將一個process做sleep動作來檢視優先權。


😇 成功畫面

  1. ps功能(列出所有process狀態)
  2. 新增兩個 測試用process prio1及sleepprio,同時執行後會先執行優先權限較高(數字越小越高)圖片中可以看到哪個process name 跟優先權開始執行的時間以及結束的時間,其中sleepprio 有做類似sleep的刻意處理。

🏃 實作過程(修改哪些檔案[含圖片])

  1. kernel 層
  1. systemcall
  1. user

😎 結論

不同 systemcall 可以給定不同的 priority,priority 的會優先執行。但為了避免 starving 的問題。每次執行過的 systemcall 的 priority 會下降,因此可以避免 starving 的情況。

此為 Round RobinPriority 結合的 schedule 實作。


📅 組員分工

  1. 沈德祐 負責實作ps功能及新增優先權排程功能(kernel層及systemcall)
  2. 廖哲賢 負責實作測試process 及 demo相關程式碼 (user層及systemcall)
  3. 其餘部分為共同完成