Способы управления многопроцессорным решением задач

Общепринятым методом классификации является систематика, в которой выделяются системы с параллельными процессорами, в которой введены следующие классы компьютерных систем.

•Архитектура с одним потоком команд и одним потоком данных (Single Instruction Single Data — SISD). На одном процессоре выполняется один поток Команд; операции выполняются над данными, которые хранятся в единой области памяти.

•Архитектура с одним потоком команд и многими потоками данных (Single Instruction Multiple Data — SIMD). С каждым из обрабатываемых элементов связаны хранящиеся в памяти данные, и каждая команда выполняет действия с различными наборами данных, относящимися к разным процессам. Под эту категорию подпадают векторный и матричный процессоры.

- Архитектура со многими потоками команд и одним потоком данных (Multiple Instruction Single Data — MISD). Последовательность данных передается набору процессоров, каждый из которых выполняет свою последовательность команд. Такая структура еще не была реализована.

- Архитектура со многими потоками команд и многими потоками данных (Multiple Instruction Multiple Data — MIMD). Несколько процессоров одно временно выполняют различные последовательности команд с различными наборами данных.

Одна из общих классификаций многопроцессорных систем основана на том, как процессы распределяются между процессорами. Два главных подхода - выделение основных и подчиненных процессоров и симметричная многопроцессорная обработка. В архитектуре с ведущим и ведомыми процессорами (muster/slave architecture) ядро операционной системы всегда выполняется на специально выделенном процессоре. На других процессорах могут выполняться только пользовательские программы и, возможно, утилиты операционной системы. Ведущий процессор отвечает за планирование процессов или потоков. Если выполняющемуся на ведомом процессоре процессу или потоку понадобится какой-нибудь системный сервис (например, вызов процедуры ввода-вывода) он должен будет послать запрос основному процессору, а затем ждать, пока сервисная программа не закончит свою работу. Такой подход довольно прост, и для его реализации достаточно немного усовершенствовать операционную систему предназначенную для однопроцессорных многозадачных систем. Разрешение конфликтов упрощается, благодаря тому что всей памятью и всеми ресурсами ввода-вывода управляет один процессор. Этот подход имеет ряд недостатков:

- Сбой в работе основного процессора влечет за собой отказ всей системы;

- Основной процессор может тормозить работу всей системы, так как только на нем должны производиться все действия по планированию и управлению процессами.

В симметричной многопроцессорной системе (symmetric multiprocessor) ядро может выполняться на любом процессоре; как правило, каждый процессор сам планирует свою работу, извлекая имеющийся в наличии процесс или поток из накопителя. Ядро может быть выполнено в виде многих процессов или многих потоков; при этом разные его части способны работать параллельно. Симметричный подход несколько усложняет архитектуру операционной системы. Нужно принять меры предосторожности, чтобы два процессора не выбрали один и тот же процесс или чтобы процесс каким-нибудь образом не выпал из очереди. Необходимо применять специальные методы для разрешения запросов одного и того же ресурса различными процессами и синхронизации запросов.

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

С возрастанием доступности недорогих, но достаточно мощных персональных компьютеров и серверов усиливается тенденция к использованию распределенной обработки данных (distributed data processing — DDP), при которой процессоры, данные и другие составляющие систем обработки данных, могут быть рассредоточены по всей организации. Системы DDP включают разделение функций компьютеров и могут также включать распределенную организацию баз данных, управления устройствами и управление сетевым взаимодействием.

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

Это направление опирается на развитие возможностей операционных систем организации распределенных вычислений. Имеется ряд уровней поддержки определенных вычислений операционными системами:

- Сетевая архитектура. Это программное обеспечение, которое поддерживает сеть независимых компьютеров и обеспечивает работоспособность таких распределенных приложений, как электронная почта, передача файлов или доступ через удаленные терминалы. Компьютеры при этом, с точки зрения пользователя и приложений, остаются отдельными сущностями, взаимодействующими с другими компьютерами путем явного обращения к ним. Каждый компьютер имеет собственную операционную систему, что не исключает возможности использовать различные операционные системы и типы компьютеров при условии, что все машины в сети поддерживают одну и ту же сетевую архитектуру. Наиболее широко известным и используемым примером архитектуры может служить комплект протоколов TCP/IP.

- Сетевая операционная система. Это конфигурация, состоящая из сети прикладных машин, обычно однопользовательских рабочих станций, и одного или нескольких серверов. Серверы обеспечивают сервис и приложения на уровне сети, например хранение файлов или управление принтером. Каждый компьютер имеет собственную операционную систему; сетевая операционная система представляет собой просто дополнение к локальной операционной системе, позволяющее пользовательской машине взаимодействовать с серверами. Пользователь осведомлен о наличии в сети независимых компьютеров и при необходимости работы с ними должен явно к ним обращаться. Как правило, для поддержки таких сетевых приложений используется обычная сетевая архитектура.

- Распределенная операционная система. Сеть компьютеров совместно использует общую операционную систему. С точки зрения пользователя, это выглядит как обычная централизованная операционная система. Распределенная операционная система обеспечивает прозрачный для пользователя доступ к ресурсам различных машин; для обеспечения основных сетевых функций эти системы могут использовать сетевую архитектуру, но обычно с целью повышения эффективности сокращенный набор сетевых функций встраивается в саму распределенную операционную систему.

Контрольные задания для СРС (темы 2) [(2;124-156),(3;37-44).(4;649-685)]

1. Мультипрограммирование на основе прерывании

2. Синхронизация процессов и потоков в системах многопроцессорной обработки

Рекомендуемая литература

1.Таненбаум Э, Вудхал А Операционные системы: разработка и реализация.

2.Олифер В.Г.,Олифер Н.А. Сетевые ОС

3.Гордеев А.В, Молчанов А.Ю. Системное программное обеспечение.

4. Столингс Операционные системы

Наши рекомендации