- •Функции и механизмы программ-диспетчеров, предшественников операционных систем.
- •Функции и механизмы мультипрограммных операционных систем.
- •Функции и механизмы сетевых и мобильных операционных систем.
- •Задачи и механизмы организации интерфейса между пользовательскими приложениями и аппаратным обеспечением вычислительной системы.
- •Методы организации эффективного использования ресурсов компьютера. Критерии эффективности. Управление ресурсами.
- •Принципы управления процессами, памятью, файлами.
- •Принципы разработки архитектуры современной операционной системы.
- •Виды архитектур ядер операционных систем.
- •Монолитная архитектура ядра операционной системы.
- •Многослойная архитектура ядра операционной системы.
- •Микроядерная архитектура операционной системы.
- •Понятие процесса, потока, нити, задания.
- •Функции подсистемы управления процессами.
- •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 с помощью семафоров
- •Тупики. Условия возникновения и направления борьбы с тупиками.
- •Условия возникновения тупиков
- •Основные направления борьбы с тупиками
- •Игнорирование проблемы тупиков
- •Обнаружение тупиков
- •Восстановление после тупиков
- •Принципы управления памятью вычислительной системы. Виртуальная память и преобразование адресов.
- •Концепция виртуальной памяти
- •Методы распределения оперативной памяти без использования внешней памяти.
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •Страничная организация виртуальной памяти.
- •Методы выделения дискового пространства и записи последовательности блоков данных: непрерывная последовательность блоков, связный список, таблица размещения файлов.
- •Связный список
- •Методы выделения дискового пространства и записи последовательности блоков данных: индексные дескрипторы.
Условия возникновения тупиков
Условия возникновения тупиковбыли сформулированы Коффманом, Элфиком и Шошани в 1970 г.
Условие взаимоисключения (Mutual exclusion). Одновременно использовать ресурс может только один процесс.
Условие ожидания ресурсов (Hold and wait). Процессы удерживают ресурсы, уже выделенные им, и могут запрашивать другиересурсы.
Условие неперераспределяемости (No preemtion). Ресурс, выделенный ранее, не может быть принудительно забран у процесса. Освобождены они могут быть только процессом, который их удерживает.
Условие кругового ожидания (Circular wait). Существует кольцевая цепь процессов, в которой каждый процесс ждет доступа кресурсу, удерживаемому другим процессом цепи.
Для образования тупиканеобходимым и достаточным является выполнениевсех четырехусловий.
Обычно тупикмоделируется циклом в графе, состоящем из узлов двух видов: прямоугольников – процессов и эллипсов –ресурсов, наподобие того, что изображен нарис. 7.1. Стрелки, направленные отресурсак процессу, показывают, чторесурсвыделен данному процессу. Стрелки, направленные от процесса кресурсу, означают, что процесс запрашивает данныйресурс.
Основные направления борьбы с тупиками
Проблема тупиковинициировала много интересных исследований в области информатики. Очевидно, что условие циклического ожидания отличается от остальных. Первые три условия формируют правила, существующие в системе, тогда как четвертое условие описывает ситуацию, которая может сложиться при определенной неблагоприятной последовательности событий. Поэтому методы предотвращениявзаимоблокировокориентированы главным образом на нарушение первых трех условий путем введения ряда ограничений на поведение процессов и способы распределенияресурсов. Методы обнаружения и устранения менее консервативны и сводятся к поиску и разрывуциклаожиданияресурсов.
Итак, основные направления борьбы с тупиками:
Игнорирование проблемы в целом
Предотвращение тупиков
Обнаружение тупиков
Восстановление после тупиков
Игнорирование проблемы тупиков
Простейший подход – не замечать проблему тупиков. Для того чтобы принять такое решение, необходимо оценитьвероятностьвозникновениявзаимоблокировкии сравнить ее с вероятностью ущерба от других отказов аппаратного и программного обеспечения. Проектировщики обычно не желают жертвовать производительностью системы или удобством пользователей для внедрения сложных и дорогостоящих средств борьбы ступиками.
Любая ОС, имеющая в ядре ряд массивов фиксированной размерности, потенциально страдает от тупиков, даже если они не обнаружены.Таблицаоткрытых файлов,таблица процессов, фактически каждаятаблицаявляются ограниченнымиресурсами. Заполнение всех записейтаблицы процессовможет привести к тому, что очереднойзапроснасоздание процессаможет быть отклонен. При неблагоприятном стечении обстоятельств несколько процессов могут выдать такойзапросодновременно и оказаться втупике. Следует ли отказываться от вызова CreateProcess, чтобы решить эту проблему?
Подход большинства популярных ОС (Unix, Windowsи др.) состоит в том, чтобы игнорировать данную проблему в предположении, что маловероятный случайныйтупикпредпочтительнее, чем нелепые правила, заставляющие пользователей ограничивать число процессов, открытых файлов и т. п. Сталкиваясь с нежелательным выбором между строгостью и удобством, трудно найти решение, которое устраивало бы всех.