- •Понятие операционной системы. Условия, при которых нужны ос
- •Базовые функции операционной системы
- •Основные характеристики ос
- •Определения операционной системы
- •Назначение операционной системы
- •Место ос в логической структуре вычислительной системы
- •Функции операционных систем
- •Состав и объекты операционной системы
- •Эволюция ос и основные идеи
- •Понятие расширенной машины
- •Ресурс. Классификация ресурсов
- •Операционная среда
- •Прикладная среда
- •Понятие процесса. Процесс, как контейнер
- •Тождественность процесса, выполняемой программы и ос 48 Поток. Контекст. Волокна
- •Назначение прерываний. Определение прерывания. Механизм прерываний
- •Алгоритм выполнения прерываний. Главные функции механизма прерываний
- •Классификация прерываний, возникающих при работе вычислительной системы
- •Распределение прерываний по уровням приоритета
- •Планирование заданий процессов и потоков
- •Виды планирования, используемые в современных ос
- •Жизненный цикл процесса (потока). Очереди. Классы алгоритмов планирования
- •Алгоритмы планирования процессов и потоков. Достоинства и недостатки различных алгоритмов планирования
- •Разделение времени при работе с процессами и потоками. Понятие кванта времени. Алгоритмы, основанные на квантовании
- •Понятие приоритетного обслуживания
- •Разновидности приоритетного планирования
- •Система приоритетного обслуживания Windows
- •Физическая организация памяти
- •Виртуальная память
- •Интерфейс прикладных программ. Перенос приложений между платформами 148 Взаимодействие процессов – синхронизация. Критические ресурсы и критические секции процессов
- •Взаимодействие процессов – синхронизация. Взаимное исключение. Задача взаимного исключения
- •Использование блокировки памяти. Алгоритм Деккера
- •Семафорные примитивы. Мьютексы
- •Задача "поставщик-потребитель"
- •Понятие сообщения в ос. Виды сообщений 170 Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – клиент-сервер
- •Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – сервер- клиент 175 Проблема тупиков. Предотвращение тупика
- •Проблема тупиков. Обход тупика
- •Проблема тупиков. Распознавание тупика
- •Мониторы
- •Синхронизация в распределенных системах
- •Алгоритмы синхронизации в распределенных системах. Алгоритм «задиры», круговой алгоритм
Вызовы процедур. Локальные вызовы, удаленные вызовы (rpc). Направление вызова – сервер- клиент 175 Проблема тупиков. Предотвращение тупика
Предотвращение тупика основывается на предположении о его чрезвычайно высокой стоимости, поэтому лучше потратить до¬полнительные ресурсы системы, чтобы исключить вероятность его возникновения при любых обстоятельствах. Предотвращение можно рассматривать как запрет существования опасных состояний. Поэтому, дисциплина, предотвращающая тупик, должна гарантировать, что какое-либо из четырёх условий, необходимых для его наступ¬ления, не может возникнуть. Условие взаимного исключений можно подавить путем разре¬шения неограниченного разделения ресурсов. Это удобно для пов¬торно входимых программ и ряда драйверов, но совершенно неприемлемо к совместно используемым переменным в критических интервалах. Условие ожидания можно подавить, предварительно выделяя ресурсы. При этом, процесс может начать исполнение, только по¬лучив все необходимые ресурсы заранее. Следовательно, общее число затребованных параллельными процессами ресурсов должно быть не больше возможностей системы. Поэтому предварительное выделение может привести к снижению эффективности работы вы¬числительной системы в целом. Необходимо также отметить, что предварительное выделение зачастую невозможно, так как необхо¬димые ресурсы становятся известны процессу только после начала исполнения.
Проблема тупиков. Обход тупика
Обход тупика можно интерпретировать как запрет входа в опасное состояние. Если ни одно из упомянутых четырех условий не исключено, то вход в опасное состояние можно предотвратить, при наличии у системы информации о последовательности запросов, связанных с каждым параллельным процессом. Доказано, что если вычисления находятся в любом неопасном состояния, то суще¬ствует по крайней мере одна последовательность состояний, кото¬рая обходит опасное. Следовательно, достаточно проверить, не приведет ли выделение затребованного ресурса сразу же к опасно¬му состоянию. Если да, то запрос отклоняется. Если нет, его можно выполнить. Определение того, является ли состояние опас¬ным, или нет, требует анализа последующих запросов процессов. Часто бывает так, что последовательность запросов, связанных с каждым процессом, неизвестна заранее. Но если заранее известен общий запрос на ресурсы каждого типа, то выделение ресурсов модно контролировать, В этом случае необходимо для каждого тре¬бования, в предположении, что оно удовлетворено, определить, существует ли среди общих запросов от всех процессов некоторая последовательность требований, которая может привести к опасно¬му состоянию. Данный подход является примером контролируемого выделения ресурса.
Проблема тупиков. Распознавание тупика
При параллельном выполнении процессов в вычислительной системе могут возникать ситуации, при которых два или более процессов всё время находятся в заблокированном состоянии. Самым простым является случай, когда каждый из двух процессов ожидает ресурс, занятый другим процессом. Распознавание тупика основано на анализе модели распреде¬ления ресурсов. Один из алгоритмов использует информацию о состоянии системы, содержащуюся в двух таблицах: таблице текущего распределения (назначения) peсурсов RATBL и таблице заблокированных процессов PWTBL (для каждого вида ресурса может быть свой список заблокированных процессов). При каждом запросе на получение или освобождении ресурсов содержимое этих таблиц мо¬дифицируется, а при запросе на ранее выделенный ресурс анализируется.
