[理工] OS 幾個問題 (process、特權指令)
遇到幾題T/F有些疑問想請教,先謝謝大家了
1. (False)對於一個處於running state的process,在其PCB中,Programming counter欄
位的值是他目前正在執行的指令的記憶體位址
洪逸的解釋是應該是PC+4,我的想法是在running的時候會一直更新PCB嗎,例如context
switch切進來的時候是從PC=100開始執行,一直到PC=500才切給其他process,那執行過
程中PCB中的PC是一直都是100到結束才更新成500,還是過程會不斷更新100, 104, 108,
..., 500這樣
2. (False) child process is included in its parent’s PCB
PCB中只會有自己的資訊不會有其他process的資訊,那如果有父子關係,例如父要等待子
完成後蒐集資訊,是要等子發出signal通知OS,OS再讓父來蒐集成果嗎?如果沒有OS父親
可以說完全不知道子的存在這個理解對嗎?
3. (False) test-and-set指令應設為特權指令
test-and-set應該是CPU指令,為什麼不用設特權指令就可以用了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.122.14
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1544030680.A.35D.html
推
12/06 01:38,
7年前
, 1F
12/06 01:38, 1F
→
12/06 01:38,
7年前
, 2F
12/06 01:38, 2F
我困惑的是PC是CPU的暫存器,而PCB中存process狀態的PC欄位在running的時候會不會隨
著暫存器改
→
12/06 01:41,
7年前
, 3F
12/06 01:41, 3F
→
12/06 01:41,
7年前
, 4F
12/06 01:41, 4F
推
12/06 01:41,
7年前
, 5F
12/06 01:41, 5F
推
12/06 01:46,
7年前
, 6F
12/06 01:46, 6F
→
12/06 01:46,
7年前
, 7F
12/06 01:46, 7F
→
12/06 01:47,
7年前
, 8F
12/06 01:47, 8F
→
12/06 01:47,
7年前
, 9F
12/06 01:47, 9F
所以應該是pointer不是整個process所以要選錯的意思
推
12/06 01:49,
7年前
, 10F
12/06 01:49, 10F
→
12/06 01:49,
7年前
, 11F
12/06 01:49, 11F
fork應該只是回傳值(?
如果沒有一個變數去接那個回傳值好像也不會知道(?
※ 編輯: skyHuan (36.229.122.14), 12/06/2018 01:57:40
推
12/07 20:14,
7年前
, 12F
12/07 20:14, 12F
→
12/07 20:15,
7年前
, 13F
12/07 20:15, 13F
→
12/07 20:16,
7年前
, 14F
12/07 20:16, 14F
→
12/07 20:16,
7年前
, 15F
12/07 20:16, 15F
推
12/07 20:35,
7年前
, 16F
12/07 20:35, 16F