题目:请由呼叫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 来执行
↑自己觉得答案不太吻合题目所要的可是又不太懂题目问的意思
希望可以帮忙讲解一下题意,若是我的答案不对请问要怎样修正比较好? 谢谢