Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道这取决于操作系统,但在现代操作系统中,相同优先级的线程/进程是否具有相同的时间片,或者是否涉及其他因素?
如果线程正在执行 I/O、等待同步机制或将要休眠,它们可以使用比直接计算使用的时间片更少(有时更多)。操作系统尽最大努力为具有相同线程/进程优先级的线程提供相同的时间,但实际上给出的实际时间可能会有所不同。
例如,一个线程几乎将其全部(墙壁)时间都用于睡眠等待退出事件,平均而言(超过其总运行时间),与执行相同数量计算的同等优先级的线程相比,该线程将获得更少的时间(墙)时间。
在Linux中,对于等优先级进程,抢占式调度程序 运行等待时间最长的进程。
在Windows中,每个优先级都有 FIFO 队列,线程 可以切换优先级队列:
– 如果线程因为时间片已到而中断,则优先级降低 – 如果被中断以等待 I/O 事件,则优先级提高 – 优先于 I/O 绑定线程而不是 CPU 绑定线程 – 对于 I/O 绑定线程,优先级提高更多以进行交互等待(例如键盘、显示器)而不是等待其他 I/O(例如磁盘)