106 OS homework 2-2 成果報告書

組長:B10415051、詹健廷
組員:B10415013、張耿豪
組員:B10415015、林世哲
github: https://github.com/l9010333/xv6-public


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

使用者可以fork程式並且可以對每一個fork出來的程式去做使用時間限制、還有每一支程式都有一個自己的priority可以讓使用者對這priority去做管理以及state的控管。


😇 成功畫面

1.列出PTABLE中的process,並顯示其屬性

2.創建測試用proces

3.更改process的priority

4.將小於等於輸入priority的process的state設為sleep

5.將小於等於輸入priority的process的state設為awake

6.將小於等於輸入priority的process的state在使用者輸入的秒數後設為awake


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

Makefile

alarm.c

changepri.c

date.c


defs.c

file.c

foo.c

halt.c

makePidslist.c

nice.c

parent.c

priawake.c

prisleep.c

proc.c






proc.h

ps.c

pstat.h

swtch.S

syscall.c




syscall.h

sysproc.c




timerx.c


trap.c

user.h

usys.S


😎 結論

經過這次xv6的改寫中,由於添加usercall中忘了加入makeFile或者usercall當中的systemcall忘了加到一些.c或.h檔中導致常常會有許多的bug,也為了找bug而花了不少的時間,不過經過這次的實作讓我們對作業系統的運作並非只是課堂上的理想運作,而是親身實作的經歷。此外我們也認識到原來作業系統可以做的事情有那麼的多,從排程的管理到實際上的運作,都要管理到,雖然每一件事情簡單但是要統整起來卻是非常的複雜,也讓我們了解老師上課常講的:作業系統作的每一件事情都是簡單的,但它就是複雜在它管太多了,真是讓我親身體驗到了。

📅 組員分工

CODE撰寫:張耿豪、林世哲、詹健廷
程式測試:張耿豪、林世哲、詹健廷
程式文件:詹健廷、林世哲
報告:詹健廷