1

我知道这取决于操作系统,但在现代操作系统中,相同优先级的线程/进程是否具有相同的时间片,或者是否涉及其他因素?

4

2 回答 2

2

如果线程正在执行 I/O、等待同步机制或将要休眠,它们可以使用比直接计算使用的时间片更少(有时更多)。操作系统尽最大努力为具有相同线程/进程优先级的线程提供相同的时间,但实际上给出的实际时间可能会有所不同。

例如,一个线程几乎将其全部(墙壁)时间都用于睡眠等待退出事件,平均而言(超过其总运行时间),与执行相同数量计算的同等优先级的线程相比,该线程将获得更少的时间(墙)时间。

于 2010-11-04T20:56:28.483 回答
0

Linux中,对于等优先级进程,抢占式调度程序
运行等待时间最长的进程。

Windows中,每个优先级都有 FIFO 队列,线程
可以切换优先级队列:

– 如果线程因为时间片已到而中断,则优先级降低
– 如果被中断以等待 I/O 事件,则优先级提高
– 优先于 I/O 绑定线程而不是 CPU 绑定线程
– 对于 I/O 绑定线程,优先级提高更多以进行交互等待(例如键盘、显示器)而不是等待其他 I/O(例如磁盘)

于 2010-11-04T21:27:19.647 回答