- •Введение
- •Глава 1. Операционная система как управляющее программное обеспечение
- •1.1. Понятие операционной системы
- •1.6. Семейства операционных систем
- •1.7. Место операционных систем среди программного обеспечения эвм
- •1.8. Классификация операционных систем
- •1.9. Принципы построения операционных систем
- •1.10. Переносимость ос
- •Контрольные вопросы
- •Глава 2. Архитектура ос
- •2.1. Архитектура на базе ядра в привилегированном режиме
- •2.2. Микроядерная архитектура
- •Контрольные вопросы.
- •Глава 3. Файловая система
- •3.1. Назначение файловой системы
- •3.2. Имена и типы файлов
- •3.3. Логическая организация файлов
- •3.4. Физическая организация файлов
- •3.5. Модели и архитектуры файловых систем
- •Контрольные вопросы
- •4.1.2. Драйверы устройств
- •4.1.3. Независимый от устройств слой операционной системы
- •4.1.4. Пользовательский слой программного обеспечения
- •4.2. Управление вводом-выводом
- •4.2.1. Физическая организация устройств ввода-вывода
- •4.2.2. Организация программного обеспечения ввода-вывода
- •4.3. Мультипроцессорная обработка
- •Контрольные вопросы
- •Глава 5. Управление процессами в эвм
- •5.1. Состояние процессов
- •5.2. Контекст и дескриптор процесса
- •5.3. Алгоритмы планирования процессов
- •5.4. Операции над процессами
- •5.5. Многозадачность и многонитевость
- •5.6. Тупиковые ситуации и их предотвращение
- •5.8. Приоритеты в вычислительных системах
- •5.9. Диспетчеризация процессов
- •Контрольные вопросы к главе 5
- •Глава 6. Управление ресурсами вычислительных систем
- •6.1. Типы адресов
- •6.2. Методы управления памятью
- •6.3. Буферизация
- •6.4. Организация виртуальной памяти
- •6.5. Защита и блокировка памяти
- •Контрольные вопросы
- •Глава 7. Сетевые операционные системы
- •7.1. Структура сетевой операционной системы
- •7.2. Одноранговые сетевые ос и ос с выделенными серверами
- •7.3. Ос для рабочих групп и ос для сетей масштаба предприятия
- •Контрольные вопросы
- •Глава 8. Microsoft Windows
- •8.1. Семейство ос компании Microsoft.
- •8.2. Семейство ос для карманных компьютеров.
- •8.3. Рыночная доля Windows
- •Контрольные вопросы
- •Заключение
- •Список рекомендуемой литературы
- •Оглавление
5.6. Тупиковые ситуации и их предотвращение
Под тупиковой ситуацией понимают состояние системы, когда ожидают событие, которое никогда не произойдет (тупиковые ситуации обычно возникают в результате взаимной блокировки процессов). При тупиковой ситуации процесс обычно не взаимодействует с пользователем.
Различают тупиковые ситуации, когда один процесс не взаимодействует с пользователем и со всей остальной системой, и когда в тупиковом состоянии оказалась вся система. В первом случае уничтожают процесс, попавший в тупиковую ситуацию, во втором – осуществляют перезагрузку ЭВМ.
Различают надежное и ненадежное состояние системы. При ненадежном состоянии высока вероятность попадания в тупиковую ситуацию.
Проблема тупиков включает в себя следующие задачи: предотвращение тупиков; распознавание тупиков; восстановление системы после тупиков.
Тупики могут быть предотвращены на стадии написания программ, т.е. программы должны быть написаны таким образом, чтобы тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов.
В некоторых случаях, когда тупиковая ситуация образована многими процессами, использующими много ресурсов, распознавание тупика является нетривиальной задачей. Существуют формальные, программно реализованные методы распознавания тупиков, основанные на ведении таблиц распределения ресурсов и таблиц запросов к занятым ресурсам. Анализ этих таблиц позволяет обнаружить взаимные блокировки.
Если же тупиковая ситуация возникла, то не обязательно снимать с выполнения все заблокированные процессы. Можно снять только часть из них, при этом освобождаются ресурсы, ожидаемые остальными процессами, можно вернуть некоторые процессы в область свопинга, можно совершить «откат» некоторых процессов до так называемой контрольной точки, в которой запоминается вся информация, необходимая для восстановления выполнения программы с данного места. Контрольные точки расставляются в программе в местах, после которых возможно возникновение тупика.
В распределенных системах, состоящих из нескольких процессоров, каждый из которых имеет собственную оперативную память, семафоры и мониторы оказываются непригодными. В таких системах синхронизация может быть реализована только с помощью обмена сообщениями.
Тупиковые ситуации и ненадежное состояние возможно предотвратить оптимальным управлением ресурсами аппаратной системы.
5.8. Приоритеты в вычислительных системах
Одним из способов разрешения конфликтов между процессами за доступ к ресурсам является установление их приоритетов. В настоящее время различают системы без приоритетов, системы с относительными приоритетами и системы с абсолютными приоритетами. Правильная организация приоритетов – основа эффективного функционирования вычислительных систем.
Для систем без приоритетов характерно то, что все процессы в этой системе равноправны. Выполнение процессов происходит в порядке очереди. Процесс, стоящий в очереди, не будет обслужен до тех пор, пока не прекратится выполнение предыдущего.
Системы с относительными приоритетами функционируют следующим образом. Если в систему поступает приоритетный процесс, то он будет принят к обслуживанию после окончания выполнения неприоритетного процесса, даже если в очереди находятся неприоритетные процессы. Если в систему поступает несколько приоритетных процессов, то они обслуживаются в порядке очереди, при этом система игнорирует неприоритетные процессы.
Для систем с абсолютными приоритетами характерно то, что при поступлении приоритетного процесса прерывается выполнение неприоритетного (в системах с относительными приоритетами такого не происходит). На организации абсолютных приоритетов основано функционирование систем реального времени и многорежимных систем.
В современных ОС каждому из процессов присваивается приоритет. Планировщик выбирает для выполнения следующий процесс, находящийся в состоянии READY, в соответствии с его приоритетом. Для выполнения выбирается процесс с наивысшим приоритетом. Остальные процессы приостановлены или заблокированы.