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

Страницы работы

Содержание работы

Мультипроцессорные системы.

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

Простейшая мультипроцессорная система.

                                                                       

                                                                        линии

 

                                                                          связи

 


В этой структуре посылка запроса от ЦПi к ЦПк – единственный способ получения доступа одного процессора к ресурсам другого. Эта мультипроцессорная система со слабосвязанными процессорами. Основной функцией такой ОС является управление сообщениями и их расшифровка. Сообщения принимаются соответствующей частью ОС, работающей с данным процессором, и эта система блокирует активные процессы и передаёт свой процесс в качестве ресурса другому процессору. Есть системы с сильно связанными процессорами:

                                                                                 Процессорный блок

А)  


       Б)

Структура  а)  master-slave (главный-подчиненный).

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

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

Структура  б)  симметричный.

 В этой структуре любой процессор может выполнять любую функцию ОС. Все процессоры равноправны. Неисправность одного

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

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

Механизм управления и средства взаимодействия параллельных процессов.

Управление параллельно-развивающимися процессами определяется характером взаимодействия между ними. Это значит, что существуют группы задач по управлению этими процессами. Для управления параллельными процессами ОС определяем процессы в виде синхронизирующих правил, зависящих от вида отношений между ними:

1)  Отношение предшествования (порождающие и порожденные процессы);

2)  Отношение приоритетности;

3)  Отношение взаимного исключения.

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

1)  Они обеспечивают способ упорядочивания развития процессов;

2)  Они обеспечивают взаимодействие между процессами.

Типичные задачи синхронизации:

1)  Задача взаимного исключения;

2)  Производитель-потребитель;

3)  Читатели-писатели;

4)  «Обедающие философы» - задача распределения пересекаю-щихся ресурсов.

1) Задача взаимного исключения.

Нужно согласовать работу N>2 параллельных процессов при использовании некоторого критического ресурса при следующих требованиях:

одновременно внутри критической области должно находиться не более одного процесса;

критические области не имеют приоритетов в отношении друг к другу;

остановка процесса вне его критической области не должна влиять на дальнейшую работу по использованию критического ресурса;

решения обхождения равно приоритетных процессов в их критической области не откладывается на неприоритетное время;

относительные скорости процессов неизвестны и производны;

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

2)Задача производитель-потребитель.

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

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

Требования:

--выполнить требования взаимного исключения по отношению к критическому ресурсу;

--учитывать состояние обобщенной области памяти.

Механические управления

3)Задача читатели-писатели.

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

Процессы «читатели» могут считывать информацию из этой области одновременно. Наиболее широко распространённый метод решения этой задачи – установка приоритетов для «читателей».

4)Задача «Обедающие философы».

Пусть х, у, z – параллельные процессы.

Р1 – устройство ввода;

Р2 – печатающее устройство;

Р3 – накопитель на магнитном диске;

Для активного состояния процесса Х требуется Р1  и  Р2 , для У - Р2  и Р3 , для Z - Р1  и Р3. Скорости развития процессов – произвольная.

Возникают две ситуации:

1)  «тупиковая», когда ни один из процессов не может получить ресурса;

2)  «голодание», когда один процесс блокируется на неопределённое время.

Семафорная техника синхронизации и упорядочивания процессов.

В 1955 году Дейкстра ввёл понятие «семафорная техника». Дейкстер реализовал это программно.

Все виды решения задач синхронизации базируются на двух примитивах: P и V.

Примитив Р ставится впереди критической области, а V – в конце критической области. В каждом процессе они есть. Эти примитивы неделимы и взаимно исключают друг друга. Они основаны на использовании семафоров.

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

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

Похожие материалы

Информация о работе