[理工] [OS]system call流程

作者: N986 (N986)   2015-03-09 12:23:50
題目:請由呼叫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 來執行
↑自己覺得答案不太吻合題目所要的可是又不太懂題目問的意思
希望可以幫忙講解一下題意,若是我的答案不對請問要怎樣修正比較好? 謝謝
作者: a95641126 (勳哥)   2015-03-09 22:17:00
感覺這題只是要問system call基本流程而已,他並沒有問I/o的system call流程
作者: N986 (N986)   2015-03-09 22:36:00
大概想到了,OS收到trap後change mode…等等。謝謝你!

Links booklink

Contact Us: admin [ a t ] ucptt.com