Программное обеспечение параллельных вычислительных систем можно разделить на системное программное обеспечение (операционные системы) и инструментальное программное обеспечение, из которого мы выделим:
Операционные системы для параллельных вычислительных систем можно разделить на три следующих класса: ОС мультипроцессоров (ЭВМ с общей памятью); ОС мультикомпьютеров (систем с распределенной памятью) – распределенные ОС; сетевые ОС. В данном курсе рассматриваются два первых класса ОС для параллельных вычислительных систем.
Можно выделить следующие типы мультипроцессорных операционных систем.
1.Каждый процессор имеет свою ОС. Такая организация мультипроцессорных ОС использовалась на заре развития мультипроцессоров. В этом случае вся оперативная память статически разделяется на области по числу процессоров, каждому процессору выделяется своя область оперативной памяти и своя копия ОС. Т.е. процессоры работают как независимые компьютеры. Для оптимизации использования оперативной памяти возможно совместное использование всеми процессорами одного кода ОС и раздельно хранить только копии данных ОС - см. рис. 1, где - процессор, - общая память, - область памяти для хранения данных операционной системы, обслуживающей процессор , и прочих данных этого процессора.
При данной организации ОС каждый процессор имеет свой набор пользовательских процессов (ПП), и возможности перераспределения процессов между процессорами нет. Поэтому возможна ситуация, когда один из процессоров перегружен, а остальные (или некоторые) процессоры простаивают. Кроме того, в этом случае каждый процессор может использовать только свою область памяти. Поэтому одному из процессоров памяти может не хватать и он будет вынужден постоянно заниматься свопингом, а у других процессоров может быть излишек свободной памяти.
Рис. 1.  К организации операционной системы мультипроцессора «каждый процессор имеет свою ОС».
2. ОС имеет только один процессор - "хозяин". При таком способе организации операционной системы мультипроцессора используется (положим, процессором ) всего одна копия ОС (см. рис. 2). Процессоры выполняют только пользовательские процессы. Процессор , если у него есть свободное время, также может выполнять пользовательские процессы.
При данной организации ОС возможно перераспределение процессов между процессорами. Поэтому невозможна ситуация, когда один из процессоров перегружен, а другие процессоры простаивают. Оперативная память здесь также может перераспределяться между процессорами.
Недостатком данной организации ОС является то, что при большом количестве процессоров процессор может стать узким местом системы. Таким образом, такая модель применима только для небольших мультипроцессоров.
Рис. 2.  К организации операционной системы мультипроцессора «ОС имеет только один процессор».
3. ОС может иметь любой процессор. Здесь, как и в предыдущей схеме, в оперативной памяти находится всего одна копия операционной системы, но выполнять ее может любой из процессоров системы (см. рис. 3). Операционную систему с такой организацией естественно использовать на SMP-системах. При этом может быть обеспечена загрузка всех процессоров системы, возможно перераспределение памяти между процессорами и по сравнению с предыдущей организацией устраняется перегрузка процессора . Однако в системах с такой организацией узким местом становится код ОС, поскольку любой процессор может выполнять код ОС, но в каждый момент времени только один процессор может делать это (реализуется с помощью блокировок). Поэтому с точки зрения эффективности данная организация ОС также плоха, как и предыдущая организация.
Последний недостаток рассматриваемой организации ОС в значительной мере преодолевается расщеплением операционной системы на такие части, как планирование вычислительных процессов, обращение к файловой системе, обработка страничных прерываний. В этом случае один процессор может выполнять ту часть операционной системы, которая осуществляет планирование процессов. В это же время другой процессор может выполнять файловую подсистему ОС и т.д. В этом случае, очевидно, также возможны взаимные блокировки, но степень распараллеливания работы ОС в общем случае выше.
Реализация такой операционной системы представляет собой весьма сложное дело. Однако подобная организация ОС используется в большинстве современных мультипроцессоров.
Рис. 3.  К организации операционной системы мультипроцессора «ОС может иметь каждый процессор».
Заметим, что в настоящее время становится общепринятым введение в операционные системы средств, поддерживающих мультипроцессорную обработку данных.