我对两个进程之间的进程切换感到困惑。使用fork创建新进程时,适用于进程之间切换的一般规则是什么。只有当一个进程进入空闲状态时?我有几个疑问
- 当父母和孩子都处于无限循环并且只有打印指令(没有睡眠方法)时会发生什么
- 一般规则是什么?
我对两个进程之间的进程切换感到困惑。使用fork创建新进程时,适用于进程之间切换的一般规则是什么。只有当一个进程进入空闲状态时?我有几个疑问
Most preemptive schedulers will, highly simplified, allocate a certain maximum time to each process.
When that time expires (for instance 10 ms), it will re-schedule so that other processes get some CPU.
If the timer doesn't expire before the process hits some other wait condition (such as doing I/O), it will re-schedule then, instead.
当量程到期时发生上下文切换
当资源。
当有系统调用触发==>不确定。re 是发生中断切换
当另一个具有更高优先级的进程/线程进入就绪状态时,会触发上下文切换。
当您的线程由于 i/o 或等待任何其他共享被锁定的线程而进入阻塞状态时