Операционные системы распределенных вычислительных систем

       

Планирование процессоров


Планирование процессоров      очень      сильно     влияет     на производительность мультипроцессорной    системы.    Можно    выделить следующие главные причины деградации производительности:

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

2)   Переключение на другой процесс в тот  момент,  когда  текущий процесс выполнял критическую секцию, а другие процессы активно ожидают входа в критическую секцию.  В этом случае потери будут  велики  (хотя вероятность прерывания выполнения коротких критических секций мала).

Применяются следующие стратегии борьбы с деградацией производительности.

1)   Совместное планирование,  при  котором  все  процессы  одного приложения (неблокированные)  одновременно  выбираются на процессоры и одновременно снимаются с них (для сокращения переключений контекста).

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

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

4)   Планирование  с  учетом  "советов" программы  (во  время  ее выполнения). В  ОС  Mach  имеется  два  класса таких советов (hints) - указания (разной степени категоричности) о снятии текущего процесса  с процессора, а  также  указания  о  том  процессе,  который должен быть выбран взамен текущего.



Содержание раздела