
- •Цель лекции
- •Учебно – материальное обеспечение
- •Организационно-методические указания по проведению занятия
- •Взаимосвязанные и конкурирующие задачи
- •3.4. Взаимосвязанные и конкурирующие задачи
- •3.4.1. Средства управления ресурсами
- •3.4.2. Механизмы синхронизации процессов
- •3.4.2.1. Параллельные процессы и критические участки
- •3.4.2.2. Примитивы взаимоисключения
- •3.4.2.3. Программная реализация примитивов взаимоисключения
- •3.4.2.4. Реализация примитивов взаимоисключения с использованием аппаратных средств
- •3.4.2.5. Семафоры
- •3.4.2.6. Мониторы
- •3.4.3. Алгоритмы управления ресурсами
- •3.4.3.1. Вводные замечания
- •3.4.3.2. Алгоритм предоставления ресурса по первому обращению
- •3.4.3.3. Алгоритмы предотвращения тупиков
- •3.4.3.3.1. Стратегии предотвращения тупиков
- •3.4.3.3.2. Алгоритм предварительного распределения ресурсов
- •3.4.3.3.3. Алгоритм распределения ресурсов с освобождением при отказе
- •3.4.3.3.3. Алгоритм распределения с линейным упорядочением по типам ресурсов
- •3.4.3.3. Алгоритмы обхода тупиков
- •3.4.3.3.1. Алгоритм Дейкстры распределения ресурсов
- •3.4.3.3.2. Алгоритм Хабермана (регулируемое распределение ресурсов)
- •Заключение к лекции № 5
- •Контрольные вопросы
ОС
Л-05
Т А М Б О В С К И Й Г О С У Д А Р С Т В Е Н Н Ы Й
Т Е Х Н И Ч Е С К И Й У Н И В Е Р С И Т Е Т
Кафедра «Информационных систем и защиты информации»
Тема № 3 «Понятие управления задачами»
Лекция № 5 «Синхронизация обработки задач»
Обсуждено на заседании кафедры
протокол № ____ «____»____________2011 г.
Тамбов 2011
Цель лекции
Основной учебной целью является формирование представления о взаимосвязанных задачах и способах их коммуникации. Изучить средства, механизмы и алгоритмы управления конкурирующими задачами.
Содержание
3.4. Взаимосвязанные и конкурирующие задачи 4
3.4.1. Средства управления ресурсами 4
3.4.2. Механизмы синхронизации процессов 5
3.4.2.1. Параллельные процессы и критические участки 5
3.4.2.2. Примитивы взаимоисключения 6
3.4.2.3. Программная реализация примитивов взаимоисключения 6
3.4.2.4. Реализация примитивов взаимоисключения с использованием аппаратных средств 7
3.4.2.5. Семафоры 7
3.4.2.6. Мониторы 7
3.4.3. Алгоритмы управления ресурсами 8
3.4.3.1. Вводные замечания 8
3.4.3.2. Алгоритм предоставления ресурса по первому обращению 8
3.4.3.3. Алгоритмы предотвращения тупиков 9
3.4.3.3.1. Стратегии предотвращения тупиков 9
3.4.3.3.2. Алгоритм предварительного распределения ресурсов 9
3.4.3.3.3. Алгоритм распределения ресурсов с освобождением при отказе 9
3.4.3.3.3. Алгоритм распределения с линейным упорядочением по типам ресурсов 9
3.4.3.3. Алгоритмы обхода тупиков 9
3.4.3.3.1. Алгоритм Дейкстры распределения ресурсов 10
3.4.3.3.2. Алгоритм Хабермана (регулируемое распределение ресурсов) 10
Заключение к лекции № 5 10
Контрольные вопросы 10
Учебно – материальное обеспечение
Персональная ЭВМ
LCD-проектор
Набор тематических слайдов
Организационно-методические указания по проведению занятия
На данную лекцию выносится основной теоретический материал о принципах, механизмах и алгоритмах управления задачами в операционных системах. Лекция проводится в стандартной наглядно-объяснительной форме с использованием элементов проблемного подхода к обучению. Особенностью проведения лекции является то, что в ней изучаются основополагающие механизмы управления вычислительными процессами в любой современной операционной системе.
В начале лекции необходимо довести тему занятия и записать ее на доске, цель лекции, рассматриваемые вопросы и используемую литературу.
Основная часть лекции проводится методом устного изложения учебного материала и сопровождается демонстрацией графических материалов изображенных на стендах. В процессе изложения материала необходимо обращать внимание на степень активности восприятия учебного материала, следить за темпом изложения. Изложение учебного материала по каждому вопросу должно заканчиваться кратким выводом и ответом на неясные вопросы.
В лекции № 5 рассматриваются два вопроса:
Взаимосвязанные и конкурирующие задачи
Алгоритмы управления ресурсами.
При рассмотрении первого вопроса акцентировать внимание на важности решения задач взаимосвязи процессов в ходе их развития в системе. Второй вопрос излагать с учетом важности недопущения тупиков при эксплуатации операционных систем.
3.4. Взаимосвязанные и конкурирующие задачи
3.4.1. Средства управления ресурсами
Под управлением ресурсами в ОС понимается распределение ресурсов системы между различными задачами и процессами, одновременно функционирующими в ней.
В ОС, как правило, отсутствует отдельный супервизор ресурсов, поскольку функции распределения ресурсов реализуются как на уровне внешнего планирования, так и на уровне внутреннего планирования.
Основными функциями управления ресурсами являются:
учет наличия и состояния ресурсов;
прием и учет заявок на ресурсы от задач и процессов;
распределение ресурсов между задачами и процессами;
организация использования ресурсов, выделенных каждой задаче или процессу;
возврат ресурса в систему по мере его освобождения потребителем.
Для реализации функций управления ресурсами в ОС формируются информационные таблицы, в которых отражаются следующие основные данные:
для ресурсов:
учетная информация о ресурсе (идентификатор, класс, количество каналов и т.п.);
код состояния ресурса;
идентификатор процесса-владельца и т.п
для заявок на ресурсы:
идентификатор процесса-заявителя;
приоритет процесса;
идентификатор и требуемый объем ресурса и т.п.
В ходе организации использования ресурсов формируются таблицы, в которых указываются списки распределенных и свободных ресурсов, связи между ресурсами и процессами.
Наряду с проблемой рационального распределения ресурсов между процессами существует также проблема синхронизации протекания параллельных процессов и исключение возникновения тупиков в вычислительной системе.
Процесс в мультипрограммной системе находится в состоянии тупика (дедлока, клинча), если он ожидает некоторого события, которое никогда не произойдет.
Системная тупиковая ситуация, или ситуация “зависания” системы - это ситуация, когда один или более процессов оказываются в состоянии тупика.
В операционных системах тупики возникают в большинстве случаев как результат конкуренции процессов за обладание монопольно используемыми ресурсами (рис.3.6).
В проблеме тупиков выделяют следующие четыре основные направления: предотвращение тупиков; обход тупиков; обнаружение тупиков; восстановление после тупиков.
Cформулированы следующие четыре необходимых условия наличия тупика:
процессы требуют предоставления им монопольного права управления ресурсом, которые им выделяются (условие взаимоисключения);
процессы удерживают за собой ресурсы, уже выделенные им, ожидая в то же время выделения дополнительных ресурсов (условие ожидания ресурсов);
ресурсы нельзя отобрать у процессов, удерживающих их, эти ресурсы не будут использованы для завершения работы (условие неперераспределяемости);
существует кольцевая связь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи (условие кругового ожидания).
При предотвращении тупиков целью является обеспечение условий, исключающих возможность возникновения тупиковых ситуаций. Такой подход является вполне корректным решением о том, что касается самого тупика, однако он часто приводит к нерациональному использованию ресурсов.
Обход тупиков заключается в том, чтобы можно было предусматривать менее жесткие ограничения, чем в случае предотвращения тупиков, и тем самым обеспечить лучшее использование ресурсов. При наличии средств обхода тупиков не требуется такой реализации системы, при которой опасность тупиковых ситуаций даже не возникает. Методы обхода учитывают подобную возможность, однако в случае увеличения вероятности возникновения тупиковой ситуации здесь принимаются меры по аккуратному обходу тупика.
Методы обнаружения тупиков применяются в системах, которые допускают возможность возникновения тупиковой ситуации как следствие умышленных или неумышленных действий программистов. Целью средств обнаружения тупиков является установить сам факт возникновения тупиковой ситуации и точно определить те процессы и ресурсы, которые оказались вовлеченными в эту тупиковую ситуацию.
Методы восстановления после тупиков применяются для устранения тупиковых ситуаций с тем, чтобы система могла продолжать работать, а процессы, попавшие в тупиковую ситуацию, могли завершиться с освобождением занимаемых ими ресурсов.