Предоставляются ли равные интервалы времени процессам с одинаковым приоритетом? - PullRequest
1 голос
/ 04 ноября 2010

Я знаю, что это зависит от операционной системы, но в современных операционных системах равны ли временные интервалы потокам / процессам с одинаковым приоритетом или есть другие факторы?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

Если потоки выполняют ввод-вывод, ожидают механизмы синхронизации или переходят в спящий режим, они могут использовать меньше (а иногда и больше), чем временной интервал, который они использовали бы для выполнения прямых вычислений.ОС старается изо всех сил дать потокам с одинаковым приоритетом потока / процесса один и тот же квант, но в действительности фактическое время может изменяться.

Например, потоку, который тратит практически все свое (настенное) время на сон в ожидании события выхода, в среднем будет предоставлено меньше времени (по сравнению с общим циклом), чем потоку с равным приоритетом, которыйделать вычисления за то же количество времени (стены).

0 голосов
/ 05 ноября 2010

В Linux для процессов с равным приоритетом приоритетный планировщик
запускает процесс, ожидающий дольше всего.

В Windows это очередь FIFO на каждом уровне приоритета, и поток
может переключать очереди уровня приоритета:

- если поток прерывается из-за истечения времени, приоритет
- если прервано для ожидания события ввода-вывода, приоритет повышен
- предпочтителен ввод-вывод по сравнению с потоками, привязанными к процессору
- для потоков, привязанных к вводу-выводу, приоритет повышен для интерактивных ожиданий (например, клавиатура, дисплей), чем для других входов / выходов (например, диск)

...