Операционные системы 09.02.03 2 курс. Автономной некоммерческой образовательной организации профессионального образования
![]()
|
Лекция №10Активность: Набор активностей детерминирован, если каждый раз при ……….. выполнения для одного и того же набора данных будут получаться одинаковые входные данные. Условие Бейстрайна: Для каждой атомарной операции берется набор входных (рейд) и выходных (райд) данных. W Q Если W(p) и W(R) пересекаются пусто раз Пересечение W(p) и W(Q) пусто Пересечение R(p) и W(Q) также пусто Следовательно, выполнение операций W(p) и W(Q) детерминировано. Для организации взаимодействия процессов, имеющих критическую секцию, существует условие: Задача должна быть решена чисто программным способом, не используя специфических команд Не должно существовать никаких предположений относительно скоростей выполнения процессов Если какой-то i – процесс выполняется в критической секции, то не должны существовать процессы, выполняющие в свободной критической секции Процессы, находящиеся не в своей критической секции, не должны мешать другим процессам входить в критическую секцию Не должно возникать бесконечного ожидания для входа в критическую секцию Должна существовать аппаратная команда: проверить и установить. Про тупики: Виды к тупикам: …… Использовать Освобождение 4 условия возникновения тупиков: Взаимоисключение: каждый ресурс выделен одному процессу (монопольное использование ресурсов) Ожидание: процесс удерживает за собой ресурсы, уже выделенные им, может при этом ожидать выделение дополнительных ресурсов Неперераспределяемость: ресурс, выделенный процессу, не может быть принудительно отдан, процесс отдает сам. Круговое ожидание: существует кольцевая цепь процессов, из которой каждый процесс удерживает один или несколько ресурсов, требующихся другому процессу. Для тупиковой ситуации необходимо все 4 условия. Борьба с тупиками: игнорирование (алгоритм Страуса) обнаружение тупиков восстановление после тупиков системы предотвращение условий возникновения Условия: Процесс А удерживает ресурс R и ожидает ресурс S Процесс B претендует на ресурс Т Процесс С претендует на ресурс S Процесс D удерживает ресурс U и ожидает ресурсы S и T Процесс E удерживает ресурс T и ожидает ресурс V Процесс F удерживает ресурс W и ожидает ресурс S Процесс G удерживает ресурс V и ожидает ресурс U Является ли ситуация тупиковой? ![]() ![]() – процесс ![]() – ресурс Есть процессы, вовлеченные в тупиковую ситуацию. 3) 1 способ: принудительный вывод процесса из системы для последующего использования его ресурсов. 2 способ: восстановление через откат назад. В ряде систем существует средство RESTART с контрольной точки. 3 способ: восстановление через ликвидацию одного из процессов. Можно избежать тупика, если рационально использовать распределение ресурсов. Алгоритм банкира: Пусть у системы n ресурсов. ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n. Пользователь гарантирует, если ОС в состоянии удовлетворить его запрос, то устройства будут возвращены системе в конечное время. Текущее состояние системы называется надежной, если ОС может обеспечить выполнение всех процессов в течение конечного времени. Выделение устройств возможно, только если состояние системы остается надежным. Ненадежное состояние не означает, что возникнет тупик. Пусть 12 устройств, 3 процесса, 3 пользователя. 1 пользователь получил 1 устройство, максимально может потребоваться четыре. 2 пользователь получил 4 устройства, максимально может потребоваться шесть. 3 пользователь получил 5 устройств, максимально может потребоваться восемь. Состояние системы надежно. Недостатки: Алгоритм исходит из конечного числа устройств. Число пользователей должно быть постоянно. Алгоритм требует, чтобы запросы выполнялись за конкретные периоды времени, но отсутствуют данные о значении. Алгоритм требует, чтобы клиенты возвращали…………… Требуется, чтобы пользователи заранее указали свои максимальные потребности. Нарушение условия ожидания дополнительных ресурсов: Каждый процесс должен запрашивать все требуемые ресурсы сразу; не выполняется, пока не будут доставлены все ресурсы. Если процесс, удерживая ресурс, получает отказ в выделении ему дополнительные ресурсов, то он должен освободить первоначальные ресурсы, а потом запросить их вновь вместе с дополнительными. Нарушение условия кругового ожидания: присваивание всем ресурсам уникальные имена и требуем, чтобы процессы запрашивали ресурсы в порядке возрастания номеров. Про виртуальную память: Время фиктивного доступа для присутствия страницы складывается: Из времени обслуживания Из времени чтения страницы из вторичной (внешней) памяти Времени рестарта процесса Все алгоритмы замещения страниц: локальные (отв. стр. у свободного процесса); глобальные (всех страниц). |