Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_указания по курсовой_работе ОС.doc
Скачиваний:
10
Добавлен:
09.04.2015
Размер:
263.68 Кб
Скачать

Мьютексы.

Это один из вариантов реализации семафора. Это простейшие двоичные семафоры, которые могут находиться в одном из состояний – отмеченном (открыт) или неотмеченном. Если задача становится владельцем объекта мьютекс, он переводится в неотмеченное состояние, при освобождении мьютекса его состояние становится отмеченным.

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

Мониторы Хоара.

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

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

2.3. Задание на курсовую работу № 2

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

2.4. Реализация

1.Разработать 2 или 3 программных модуля, каждый из которых представляет собой уникальный процесс, работа которого предполагает экранную визуализацию. Процессы бесконечны, завершение процесса по клавише Еsc.

2.Использовать схему планировщика (курсовая №1), включающую состояние блокировки.

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

  1. Поставщик - Потребитель

  2. «Писатель-2 читателя»

  3. «Обедающие философы»

Методы реализации примитивной синхронизации:

  1. Блокирующая переменная.

  2. Семафорный примитив (двоичный или k-значный).

  3. Монитор.

Номер варианта

Т и п з а д а ч и

М е т о д

1

2

3

1

5

6

7

2

8

9

10

3

11

12

13

Особенности реализации:

  1. Наличие разделяемого попеременноресурса (аппаратный, область памяти), т.е. наличие конкуренции процессов за ресурс

  2. Условия блокировки процесса – запрос на доступ к разделяемому ресурсу. Если один из процессов получил доступ к разделяемому ресурсу, то до момента освобождения ресурса остальные процессы в случае запроса на доступ переводятся в состояние ожидания ресурса (но не действия с ресурсом).

  3. Четкое разделение функций контроля синхронизации между планировщиком и процессами при реализации.

Требования к реализации:

  • 3 программных модуля + планировщик

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

  • наличие очереди ожидающих процессов

  • только одному процессу разрешается работать с разделяемым ресурсом (производить действия), остальные заблокированные ждут разрешения на доступ к ресурсу.

  • величина кванта – одна для всех, процессы бесконечны, выход по клавише Esc.

Требования к пояснительной записке:

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

  • Постановка задачи

  • Обоснование выбора метода решения

  • Описание процессов, используемых в курсовой работе

  • Алгоритм и блок-схема работы планировщика

  • Описание структур, имитирующих синхронизацию

  • Интерпретация результатов

  • Список используемой литературы

Вопросы к защите:

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

  2. Типовые задачи синхронизации. Механизмы синхронизации на примере задачи взаимного исключения (синхронизация блокирующей переменной, операцией «проверка-установка», семафоры, мониторы)

  3. Проблема тупиков. Задачи, связанные с проблемой тупиков, пути их решения