作者N986 (N986)
看板Grad-ProbAsk
標題[理工] [OS]system call流程
時間Mon Mar 9 12:23:50 2015
題目:請由呼叫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