[理工] [OS]system call流程

看板Grad-ProbAsk作者 (N986)時間11年前 (2015/03/09 12:23), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
題目:請由呼叫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

03/09 22:17, , 1F
感覺這題只是要問system call基本流程而已,他並沒有
03/09 22:17, 1F

03/09 22:17, , 2F
問I/o的system call流程
03/09 22:17, 2F

03/09 22:36, , 3F
大概想到了,OS收到trap後change mode…等等。謝謝你!
03/09 22:36, 3F
文章代碼(AID): #1K_I1P1- (Grad-ProbAsk)