忙碌的等待和上下文切换

时间:2017-02-20 20:47:18

标签: multithreading operating-system multiprocessing

如果我有两个进程,为什么忙等待会避免上下文切换?为什么上下文切换比在这种情况下浪费CPU时间便宜?如果有线程而不是进程会发生什么变化?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

为什么忙等待会避免上下文切换

忙碌等待避免上下文切换!上下文切换是调度程序决定将CPU提供给其他进程运行的过程。繁忙的等待是一种用于保持进程循环和等待某事的技术。即,防止两个进程同时修改某些共享数据。一个过程将循环,直到另一个过程“告诉”他已完成。这是一种错误的同步方法,因为当流程花费时间突然无效时,CPU利用率会下降。

  

为什么上下文切换比浪费CPU时间便宜

DEPENDS!如果关键部分的代码很短,则繁忙等待可能比上下文切换更快。进程可以忽略信号,并通过这种方式在CPU上运行,直到它自动放弃它。 注意并非所有信号都可以忽略。

  

如果有线程而不是进程会发生什么变化?

我担心这太难以回答了,因为这可能取决于操作系统以及操作系统是否知道线程。