- •Функции и механизмы программ-диспетчеров, предшественников операционных систем.
- •Функции и механизмы мультипрограммных операционных систем.
- •Функции и механизмы сетевых и мобильных операционных систем.
- •Задачи и механизмы организации интерфейса между пользовательскими приложениями и аппаратным обеспечением вычислительной системы.
- •Методы организации эффективного использования ресурсов компьютера. Критерии эффективности. Управление ресурсами.
- •Принципы управления процессами, памятью, файлами.
- •Принципы разработки архитектуры современной операционной системы.
- •Виды архитектур ядер операционных систем.
- •Монолитная архитектура ядра операционной системы.
- •Многослойная архитектура ядра операционной системы.
- •Микроядерная архитектура операционной системы.
- •Понятие процесса, потока, нити, задания.
- •Функции подсистемы управления процессами.
- •1. К созданию процесса приводят пять основных событий:
- •Методы создания процессов.
- •Модель жизненного цикла процесса.
- •Виды планирования и их место в жизненном цикле процесса.
- •Алгоритмы планирования процессов
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Критерии эффективности и свойства методов планирования процессов, параметры планирования процессов. Критерии планирования и требования к алгоритмам
- •Параметры планирования
- •Дисциплины обслуживания без внешнего управления приоритетами (fcfs, rr, sjf), гарантированное планирование. First-Come, First-Served (fcfs)
- •Round Robin (rr)
- •Shortest-Job-First (sjf)
- •Гарантированное планирование
- •Приоритетное планирование с внешним управлением приоритетами, многоуровневые очереди. Приоритетное планирование
- •Многоуровневые очереди (Multilevel Queue)
- •3.5.7. Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •Организация планирования процессов в Microsoft Windows Vista и gnu/Linux.
- •Проблемы взаимодействующих процессов.
- •Алгоритмы реализации взаимоисключений. Требования, предъявляемые к алгоритмам
- •5.3.4. Строгое чередование
- •5.3.5. Флаги готовности
- •5.3.6. Алгоритм Петерсона
- •Семафоры Дейкстра. Решение проблемы «производитель-потребитель» с помощью семафоров. Семафоры
- •Концепция семафоров
- •Решение проблемы producer-consumer с помощью семафоров
- •Тупики. Условия возникновения и направления борьбы с тупиками.
- •Условия возникновения тупиков
- •Основные направления борьбы с тупиками
- •Игнорирование проблемы тупиков
- •Обнаружение тупиков
- •Восстановление после тупиков
- •Принципы управления памятью вычислительной системы. Виртуальная память и преобразование адресов.
- •Концепция виртуальной памяти
- •Методы распределения оперативной памяти без использования внешней памяти.
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •Страничная организация виртуальной памяти.
- •Методы выделения дискового пространства и записи последовательности блоков данных: непрерывная последовательность блоков, связный список, таблица размещения файлов.
- •Связный список
- •Методы выделения дискового пространства и записи последовательности блоков данных: индексные дескрипторы.
Тупики. Условия возникновения и направления борьбы с тупиками.
Предположим, что несколько процессов конкурируют за обладание конечным числом ресурсов. Если запрашиваемый процессомресурснедоступен, ОС переводит данный процесс в состояние ожидания. В случае когда требуемыйресурсудерживается другим ожидающим процессом, первый процесс не сможет сменить свое состояние. Такая ситуация называетсятупиком (deadlock). Говорят, что в мультипрограммной системе процесс находится в состояниитупика, если он ожидает события, которое никогда не произойдет. Системнаятупиковая ситуация, или "зависание системы", является следствием того, что один или более процессов находятся в состояниитупика. Иногда подобные ситуации называютвзаимоблокировками. В общем случае проблематупиковэффективного решения не имеет.
Рассмотрим пример. Предположим, что два процесса осуществляют выводс ленты на принтер. Один из них успел монополизировать ленту и претендует на принтер, а другой наоборот. После этого оба процесса оказываются заблокированными в ожидании второгоресурса(см.рис. 7.1).
Рис. 7.1. Пример тупиковой ситуации
Определение. Множество процессов находится втупиковой ситуации, если каждый процесс измножестваожидает события, которое может вызвать только другой процесс данногомножества. Так как все процессы чего-то ожидают, то ни один из них не сможет инициировать событие, которое разбудило бы другого членамножестваи, следовательно, все процессы будут спать вместе.
Выше приведен пример взаимоблокировки, возникающей при работе с так называемыми выделенными устройствами.Тупики, однако, могут иметьместои в других ситуациях. Hапример, в системах управления базами данных записи могут быть локализованы процессами, чтобы избежать состояния гонок (см. лекцию 5 "Алгоритмы синхронизации"). В этом случае может получиться так, что один из процессов заблокировал записи, необходимые другому процессу, и наоборот. Таким образом,тупикимогут иметьместокак на аппаратных, так и на программныхресурсах.
Тупикитакже могут быть вызваны ошибками программирования. Например, процесс может напрасно ждать открытия семафора, потому что в некорректно написанном приложении эту операцию забыли предусмотреть. Другой причиной бесконечного ожидания может быть дискриминационная политика по отношению к некоторым процессам. Однако чаще всего событие, которого ждет процесс втупиковой ситуации, – освобождениересурса, поэтому в дальнейшем будут рассмотрены методы борьбы ступикамиресурсного типа.
Ресурсамимогут быть как устройства, так и данные. Hекоторыересурсыдопускают разделение между процессами, то есть являютсяразделяемымиресурсами. Например,память,процессор, диски коллективно используются процессами. Другие не допускают разделения, то есть являютсявыделенными, например лентопротяжное устройство. Квзаимоблокировкеможет привести использование как выделенных, так и разделяемыхресурсов. Например, чтение с разделяемого диска может одновременно осуществляться несколькими процессами, тогда какзаписьпредполагает исключительныйдоступк данным на диске. Можно считать, что часть диска, куда происходитзапись, выделена конкретному процессу. Поэтому в дальнейшем мы будем исходить из предположения, чтотупикисвязаны с выделеннымиресурсами , то естьтупикивозникают, когда процессу предоставляется эксклюзивныйдоступк устройствам, файлам и другимресурсам.
Традиционная последовательность событий при работе с ресурсомсостоит из запроса, использования и освобожденияресурса. Тип запроса зависит от природыресурсаи от ОС.Запросможет быть явным, например специальный вызов request, или неявным –openдля открытия файла. Обычно, еслиресурсзанят изапросотклонен, запрашивающий процесс переходит в состояние ожидания.
Далее в данной лекции будут рассматриваться вопросы обнаружения, предотвращения, обхода тупикови восстановления послетупиков. Как правило, борьба ступиками– очень дорогостоящее мероприятие. Тем не менее для ряда систем, например для систем реального времени, иного выхода нет.