106 OS homework 2-2 成果報告書

組長: B10415002 余福浩
組員: B10415018 沈政一
組員: B10415037 陳品劭
github: https://github.com/bamdart/xv6-public


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

  1. 進入xv6後,可以輸入foo新增多個proccess

  2. 輸入suspend,可令所有proccess進入休眠狀態,並印出所有proccess的狀態資訊,此後系統維持suspend狀態。

  3. 在suspend狀態下,輸入ctrl + w 可喚醒所有proccess,並印出所有proccess的狀態資訊,令系統回復正常運作狀態。

function call的流程 - 以lsproc為例


😇 成功畫面


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


😎 結論

在這次的project中,我們花了不少的時間研究、trace xv6這個小型的作業系統,發現其中不只有C語言更有用到不少組合語言,也因此讓短短的程式碼變得更難以理解,若想清楚的了解其中如何運作,必須有相當好的C語言與組合語言基礎,不然則需要花非常多的時間去理解。

這次我們實作功能的途中,也遭遇到了許多困難,常常修改一、兩行程式碼,就會使xv6的運作出現error,我們也因此了解到,在實作作業系統的過程中,需要考慮的環節非常多,code之間常常牽一髮而動全身,稍有不慎就會不小心使OS在某些部分出錯,所以在做各種更動之前,都需要謹慎思量各種可能的影響,才有辦法順利的進行修改。


📅 組員分工