Архитектура многопроцессорных операционных систем


 

Операционная система, предназначенная для симметричной многопроцессорной системы, управляет процессорами и другими ресурсами компьютера та­ким образом, чтобы с точки зрения пользователя многопроцессорная система выглядела так же, как и многозадачная однопроцессорная. Пользователь может создавать приложения с использованием нескольких процессов или нескольких потоков в процессах, не заботясь о том, какое количество процессоров будет доступно — один или несколько. Таким образом, многопроцессорная операционная система должна выполнять все функции многозадачной системы, а также обла­дать дополнительными возможностями по распределению вычислений среди процессоров. В число особенностей архитектуры такой операционной системы входят следующие.

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

2 Описание аппаратной реализации схем когерентных кэшей представлено в [STALOO]

• Планирование. Планирование может выполняться на любом из процессоров, поэтому необходимо предусмотреть механизм, позволяющий избежать конфликтов. При использовании многопоточности на уровне ядра несколько потоков одного и того же процесса могут выполняться на разных процессорах. Планирование в многопроцессорных системах рассматривается в главе 10, "Многопроцессорное планирование и планирование реального времени".

• Синхронизация. В ситуации, когда несколько активных процессов имеют воз­можность доступа к совместным адресным пространствам или ресурсам ввода-вывода, необходимо позаботиться об их эффективной синхронизации. Синхро­низация — это средство, обеспечивающее реализацию взаимоисключений и упорядочение событий. Общепринятым механизмом синхронизации в много­процессорных операционных системах являются блокировки, описанные в гла­ве 5, "Параллельные вычисления: взаимоисключения и многозадачность".

• Управление памятью. Система управления памятью в многопроцессорной системе должна быть способна разрешать все проблемы, возникающие в однопроцессорных машинах, а кроме того, операционная система должна уметь использовать возможности, предоставляемые аппаратным обеспечением, например многопортовую память. Механизмы страничной организации памяти разных процессоров должны быть скоординированы, чтобы обеспе­чить согласованность работы в ситуации, когда несколько процессоров используют одну и ту же страницу или один и тот же сегмент и принимают решение по вопросу замещения страниц.

• Надежность и отказоустойчивость. При отказе одного из процессоров опе­рационная система должна обеспечить продолжение корректной работы системы. Планировщик операционной системы (как и другие ее части) должен получить информацию о потере одного из процессоров и соответствующим образом перестроить свои управляющие таблицы.

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

 

МИКРОЯДРА

В последнее время большое внимание уделяется концепции микроядер. Микроядро представляет собой остов операционной системы, служащий основой для других ее модулей. Термин не имеет точного определения, и многие вопро­сы, относящиеся к микроядрам, различные группы разработчиков операционных систем трактуют по-разному. В число этих вопросов входят такие: насколько малым должно быть ядро, чтобы его можно было назвать микроядром; как должны быть разработаны драйверы устройств, чтобы достичь максимальной производительности при абстрагировании их функциональности от особенностей аппаратного обеспечения; как следует выполнять не относящиеся к ядру опера­ции — в пространстве ядра или в пользовательском пространстве, и другие.

 

Подход с использованием микроядра приобрел популярность после его исполь­зования в операционной системе Mach. Теоретически такой подход обеспечивает вы­сокую степень гибкости и модульности. Другим примером удачного использования этого подхода стала операционная система Windows 2000, которая претендует на широкую популярность. Микроядро операционной системы Windows 2000 окружено несколькими компактными подсистемами, что облегчает его реализацию на различ­ных платформах. Некоторые другие программные продукты также реализованы с использованием микроядра. В ближайшем будущем этот подход, по-видимому, будет встречаться в большинстве операционных систем, разрабатываемых для персональ­ных компьютеров, рабочих станций и серверов.

 



Дата добавления: 2016-06-05; просмотров: 2660;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.