題目:請由呼叫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 來執行
↑自己覺得答案不太吻合題目所要的可是又不太懂題目問的意思
希望可以幫忙講解一下題意,若是我的答案不對請問要怎樣修正比較好? 謝謝