看板 Grad-ProbAsk 關於我們 聯絡資訊
題目:請由呼叫C的程式庫開始,到此呼叫的結束回來為止,說明 system call 的流程 經過哪些步驟。(10%) 請問這個題目要怎樣答比較好? 因為中文出題所以沒辦法準確抓到題意 我試著以呼叫printf()的system call為例,寫了有關OS處理interrupted I/O呼叫的步驟 1. 執行中的process發出I/O request給OS 2. OS收到request後可能暫停目前的process 3. OS執行對應的system call, 告訴device driver, 再由driver設定I/O command給 device controller 4. Device controller 依命令控制I/O device 執行I/O operation 5. OS在此時可能會將CPU切給其他process使用 6. 當I/O 操作完成, 則I/O Device controller會發出"I/O complete" Interrupt 通知OS 7. OS收到interrupt後可能暫停目前process的執行並保存其狀態 8. OS查詢Interrupt Vector確認何種中斷發生, 並找出對應的ISR之起始位置 9. junp to ISR 執行 10. ISR執行完畢, control return to kernel, then kernel 通知OS 其I/O 運作完成 11. OS恢復中斷前的process執行, 或由CPU scheduler 決定the next process 來執行 ↑自己覺得答案不太吻合題目所要的可是又不太懂題目問的意思 希望可以幫忙講解一下題意,若是我的答案不對請問要怎樣修正比較好? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.67.180.133 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1425875033.A.07E.html
a95641126: 感覺這題只是要問system call基本流程而已,他並沒有 03/09 22:17
a95641126: 問I/o的system call流程 03/09 22:17
N986: 大概想到了,OS收到trap後change mode…等等。謝謝你! 03/09 22:36