c - 什么时候进行进程切换

标签 c linux gcc process context-switch

我对两个进程之间的进程切换感到困惑。当使用 fork 创建一个新进程时,适用于进程之间切换的一般规则是什么。是否仅当一个进程进入空闲状态时?我几乎没有怀疑

  1. 当 parent 和 child 都在无限循环中并且只有打印指令(没有 sleep 方法)时会发生什么
  2. 一般规则是什么?

最佳答案

大多数preemptive高度简化的调度程序将为每个进程分配一定的最大时间。

当该时间到期时(例如 10 毫秒),它将重新安排以便其他进程获得一些 CPU。

如果计时器没有在进程遇到其他等待条件(例如执行 I/O)之前到期,它将重新安排,而不是。

关于c - 什么时候进行进程切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16085209/

相关文章:

c - 运行我的具有两个结构和枚举常量的 c 程序时遇到问题

在重新定义 printf 的宏中将字符连接到 __VA_ARGS__

c - 如何知道任何库函数(中止)调用是否在源代码中多次使用?

visual-c++ - GCC输出MSVC样式错误

c - 段错误 - 试图将二进制文件读入内存

c - 我需要帮助编写对数组进行冒泡排序的代码

c - 数组元素是 C 中字符串数组中的变量

c - Linux内核模块编译

java - 如何使用 gitExtension 将存储库从 Linux 克隆到我的 Windows 桌面

linux - 将网络应用程序从 pc posix (linux) 移植到 STM32/lwip