![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
№11 Обнаружение тупиков
Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.
Основной подход к решению – построение графа распределения ресурсов и нахождение в нем циклов. (Чрезвычайно затратный подход. На практике в чистом виде не используется.)
Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.
Сложности решения:
• Неочевидность тупика.
• Трудно остановить процесс в произвольной точке кода.
• Большие накладные расходы на реализацию сохранения результатов.
• В системах с большим числом разноприоритетных процессов трудно удалить процессы с высоким приоритетом.
Виртуализация ресурсов – средство борьбы с тупиками
Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».
Особенности решения:
• Алгоритмически простое решение.
• Формально, не боится большого числа процессов.
• Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.
№12 Обход тупиков. Алгоритм банкира.
Алгоритм банкира – ресурсы процессу можно выдавать только в том случае, если состояние системы останется надежным.
Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.
Введем следующие обозначения:
M(i) – максимальная потребность i-го процесса в ресурсе;
L(i) – текущая величина ресурса, выделенного i-му процессу;
С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);
Т – суммарный ресурс, имеющийся в системе;
а – остаточный ресурс, а=Т-åL(i);
Пусть в некоторый момент времени в системе существуют три процесса.
L(i) | M(i) | C(i) | |
Process 1 | |||
Process 2 | |||
Process 3 | |||
a |
T=12
Решение примера
№13 Прерывания ОС и BIOS. Обработка прерываний.
Прерывание - это событие, при котором меняется последовательность команд, выполняемых процессором.
Что происходит после прерывания?
l Управление передается ОС
l ОС запоминает состояние прерванного процесса (например в PCB)
l Передача управления соответствующей программе обработчику прерывания
Типы прерываний.
SVC прерывание ( super visor call instruction ) - программа вызывает супервизор – ОС, то есть требует системную услугу.
то есть SVC – механизм не позволяет получать программе пользователя системные ресурсы без контроля со стороны ОС (механизм доступа, паролей и так далее)
l I/O прерывание: инициатор – устройство ввода-вывода (изменение его состояния)
l Внешнее прерывание (оператор, другой процессор)
l Прерывание по рестарту (при сигнале рестарт процессору)
l Прерывание по ошибке программы Прерывание по ошибке ЭВМ
Дата публикования: 2015-02-03; Прочитано: 348 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!