大家好,
最近在K恐龙
读到 System Call 的时候有个疑问一直想不通
所以想要来请教一下版上大大们
System Call 基本上是 User Process 和 Kernel 沟通的平台
在 user process 需要执行某些特别的command (IO Request等等)
因为在 user mode 下没有执行 以及 IO 保护的问题
所以基本上就是发出一个 Trap 给 OS,让 OS 去执行 对应的 Request
基本的流程应该是
1. Change to monitor mode
2. execute Service Routine
3. Return to System call interface
4. change to user mode and return
我的疑问在于说
呼叫 System Call的时候
原本的process会不会被 temporary suspended?
(如同 interrupt-IO cpu会先切给别的process用之类的)
想了两种 case
一般我程式 call scanf 的时候 大部分都会被 block 住
所以这时候是程式是有被 suspended吗?
问题是我 call printf 的时候好像也没有感觉被 suspended掉
通常output程式好像都执行得很顺遂