Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_Realtime_2.doc
Скачиваний:
221
Добавлен:
14.02.2015
Размер:
611.33 Кб
Скачать
      1. Симметричная мультипроцессорная обработка

Многозадачность — это техника, применяемая ОС для использования одного процессора несколькими потоками управления. Однако, если у компьютера имеется более одного процессора, то от модели многозадачности следует перейти к модели мультипроцессорной обработки (multiprocessing).Компьютер, имеющий два процессора, может выполнять два потока одновременно. Таким образом, если многозадачная ОС только создает иллюзию одновременного выполнения нескольких потоков, то ОС с мультипроцессорной обработкой в действительности выполняет несколько потоков одновременно — по одному потоку на каждом процессоре.

ОС с мультипроцессорной обработкой делятся на две категории — с асимметричной либо симметричной обработкой, как показано на рис. 2-5.

Операционные системы с асимметричной мультипроцессорной обработкой (asymmetric multiprocessing, ASMP)обычно выбирают для исполнения собственного кода один и тот же процессор (например А), в то время как другие процессоры выполняют только пользовательские задачи. Так как код ОС исполняется на одном процессоре, то ОС ASMP довольно просто создать, усовершенствовав существующую однопроцессорную ОС. Особенно хорошо ОС ASMI подходят для работы на асимметричном оборудовании, например, процессоре, к которому подключен сопроцессор, или на двух процессорах, совместно использующих не всю доступную память. Однако такую ОС трудно сделать переносимой. Аппаратура разных производителей (и даже разные версии аппаратуры одного производителя) имеет тенденцию различаться по типу и степени асимметрии. Либо производители оборудования должны ориентироваться на одну ОС, либо ОС придется постоянно переписывать для каждой аппарат ной платформы.

Системы с симметричной мультипроцессорной обработкой (symmetric multiprocessing, SMP),к которым относится и Windows NT,позволяют коду ОС системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память. Такой подход полнее реализует возможности нескольких процессоров, так как сама ОС может использовать значительную часть процессорного времени компьютерa,в зависимости от того, какие приложения на нем исполняются. Исполнение ОС только на одном процессоре может сильно загружать его, в то время как остальные простаивают, что уменьшит производительность системы; при увеличении числа процессоров в системе возрастает вероятность того, что узким местом станут именно действия, выполняемые ОС. Помимо равномерного распределения системной загрузки, системы SMPсокращают время простоя из-за неисправностей, так как при сбое одного процессора код ОС может исполняться на других. Наконец, поскольку симметричная аппаратура реализуется разными производителями сходным образом, имеется возможность создания переносимой ОС SMP.

В отличие от ASMP,системы SMP обычно проектируются и пишутся полностью заново, так как, чтобы гарантировать правильную работу, их код должен следовать строгим правилам. Конкуренция за ресурсы и другие вопросы производительности принимают в мультипроцессорных системах более острую форму, чем в обычных ОС, и должны учитываться при проектировании системы.

Windows NTобладает свойствами, которые принципиально важны для мультипроцессорной ОС:

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

• В одном процессе может быть несколько потоков управления. Поток позволяют процессу выполнять разные части его программы на не скольких процессорах одновременно4.

• Серверные процессы могут использовать несколько потоков для одно временной обработки запросов от нескольких клиентов.

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