107 OS homework System Call === --- # 功能說明 scheduling system call APS() All Process Status: 可以用來查看每個process所對應到的pid還有他們的 "state"跟"priority" CPP(int pid, int priority) Change Process Priority: 可以用pid來指定要改變哪個process的priority SPS(int pid) Show Process State:利用pid當參數來獲得目前process的state --- # 實作過程 ### 在syscall.h裡  ### 在syscall.c裡   #### 在usys.S裡  ### 在user.h裡  ### 在proc.c裡加入APS(), CPP(), SPS()    ### 在sysproc.c裡加入sys_APS(), sys_CPP(), sys_SPS()   ### 在proc.c裡的scheduler()裡面加上priority scheduling的程式碼  --- # Demo畫面 ### Demo的部份我寫了一些簡單的user program來測試那3個system call ### ps.c: process state  ### gp.c: generate process  ### setp.c: set priority  ### sps.c: show process state  ### 首先,執行gp.c產生一個process並把他的priority設為12  ### 再產生一個新的process,因為新的process priority比較高,所以新的process會是RUNNING,舊的process就會從RUNNING變成RUNNABLE ### 如果再把新的process的priority改成13,新的process會變成RUNNABLE,舊的process會變成RUNNING  --- # 預期成效、情境說明 透過呼叫APS(),我們可以觀察到目前所有process的state跟priority,如果我們想要改變process執行的順序,我們就可以呼叫CPP(),來改變process的priority,讓我們想先執行的process可以先被執行。 呼叫SPS()可以得知指定process的state --- ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up