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