我对两个进程之间的进程切换感到困惑。当使用 fork 创建一个新进程时,适用于进程之间切换的一般规则是什么。是否仅当一个进程进入空闲状态时?我几乎没有怀疑
- 当 parent 和 child 都在无限循环中并且只有打印指令(没有 sleep 方法)时会发生什么
- 一般规则是什么?
最佳答案
大多数preemptive高度简化的调度程序将为每个进程分配一定的最大时间。
当该时间到期时(例如 10 毫秒),它将重新安排以便其他进程获得一些 CPU。
如果计时器没有在进程遇到其他等待条件(例如执行 I/O)之前到期,它将重新安排,而不是。
关于c - 什么时候进行进程切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16085209/