Презентацию к данной лекции Вы можете скачать здесь.
Одна из важных задач операционной системы – распределение ресурсов компьютера между процессами. С данной задачей тесно связано понятие тупика (
Тупик (deadlock) – множество заблокированных процессов, каждый из которых владеет некоторым ресурсом и ожидает ресурса, которым владеет какой-либо другой процесс из этого множества.
Простой пример тупика легко смоделировать с помощью семафоров (см. ). Пусть в системе есть два
P1: wait(A); wait (B) P2: wait(B); wait (A).
В данном случае будет иметь место
Для описания и исследования подобных ситуаций введем
Пусть в системе имеется m видов ресурсов (например, процессор, память,
Каждый процесс может использовать ресурс одним из следующих способов:
Введем в рассмотрение граф распределения ресурсов, состоящий из
Введем два типа дуг:
Смысл различных направленностей дуг в следующем. Если процесс претендует на какой-либо ресурс, то дуга проводится из вершины-процесса в вершину-ресурс. Когда же конкретная единица ресурса уже выделена какому-либо конкретному процессу, то дуга, в знак этой принадлежности, и проводится из вершины-ресурса в вершину процесс.
Уточним особенности вводимого графа и его вершин. В современной терминологии, граф данного вида называется reserved graph. Его вершина-процесс имеет обычный вид, а вершина-ресурс, соответствующая ресурсу Rj,состоит из Wj подвершин, каждая из которых обозначает конкретную единицу ресурса. В теории reserved graphs такие вершины иногда называют супервершинами (super-vertices).Таким образом, дуга запроса ведет из вершины-процесса в вершину-ресурс в целом, а дуга присваивания ведет из соответствующей подвершины вершины-ресурса в вершину-процесс.
Пример вершины-процесса приведен на рис 13.1.
(рис 13.1) Пример вершины-процесса в графе распределения ресурсов.
Пример (супер)вершины-ресурса с четырьмя экземплярами приведен на рис 13.2: каждому экземпляру ресурса соответствует своя подвершина.
(рис 13.2) Пример вершины-ресурса с четырьмя экземплярами.
Пример графа
(рис 13.3) Пример графа распределения ресурсов.
Данный граф изображает систему с тремя процессами и четырьмя видами ресурсов: ресурсы видов 1 и 3 имеют по одному экземпляру, ресурс вида 2 – два экземпляра, ресурс вида 4 – три экземпляра. Процесс 1 претендует на ресурс 1, который занят процессом 2. Процесс 2 претендует на ресурс 3, который занят процессом 3. Две единицы ресурса 2 отданы процессам 1 и 2. Ресурс 4 не распределялся (все три единицы свободны).
Очевидно, что цикл в таком графе может означать наличие тупика. На рис 13.4 приведен пример графа с тупиком. Имеется ситуация циклического ожидания между процессами 1, 2 и 3. Процесс 1 претендует на ресурс, которым владеет процесс 2. Процесс 2 претендует на ресурс, которым владеет процесс 3. Процесс 3 претендует на ресурс, одна единица которого отдана процессу 1, а вторая – процессу 2.
(рис 13.4) Пример графа распределения ресурсов с тупиком.
Однако не всегда наличие цикла в графе
(рис 13.5) Пример графа распределения ресурсов с циклом, но без тупика.
В данном случае (рис 13.5) имеется четыре процесса и два вида ресурсов. В цикле участвуют вершины-процессы 1 и 3. Однако, благодаря тому, что каждого ресурса имеется по две единицы, тупика удается избежать: процесс 1, ожидающий ресурса 1, сможет его получить, когда завершится процесс 2 (а не процесс 1), обладающий одной единицей данного ресурса и не входящий в цикл ожидания. Аналогично, процесс 3, претендующий на ресурс 2, сможет его получить после его освобождения процессом 4 (а не 1).
Таким образом, можно сформулировать следующие утверждения:
Теоретически возможны следующие методы обработки
К сожалению, на практике во многих ОС (включая UNIX) используется и третий "метод" борьбы с тупиками: проблема
Проанализируем, какие методы предотвращения
Чтобы ограничить возможность взаимного исключения владения ресурсами (первое условие тупика), необходимо заметить, что оно требуется не для всех ресурсов. Для
Чтобы ограничить возможность удержания и ожидания (второе условие тупика), можно потребовать, чтобы процесс, запрашивающий некоторый ресурс, не обладал бы больше никакими ресурсами. Альтернативным вариантом является требование, чтобы все процессы приобретали все необходимые им ресурсы до фактического начала их исполнения. К сожалению, реализация обоих этих требований приводит к недостаточности использования ресурсов и возможности "голодания" (
Более разумной представляется стратегия перераспределения ресурсов при каждом ожидании процессом ресурса. Если процесс обладает некоторым ресурсом A и запрашивает другой ресурс B, который не может быть ему немедленно выделен, то процесс должен ждать. При этом ресурс A,занимаемый процессом, должен быть немедленно освобожден.Ресурс A добавляется к списку ресурсов, которые ожидает процесс. Процесс может быть возобновлен, только если ему могут быть выделены одновременно все старые ресурсы, которыми он обладал, и те новые ресурсы, которых он ожидает.
Для предотвращения ситуации циклического ожидания самое простое решение – ввести упорядочение по номерам всех видов ресурсов и требовать, чтобы процесс запрашивал ресурсы только в порядке возрастания их номеров. На практике подобное решение вряд ли применимо и удобно, так как специфика потребляемых и требуемых типов ресурсов никак не зависит ни от какой возможной нумерации, и потребность в ресурсе с любым номером может возникнуть по мере необходимости.
Методы избежания
Наиболее простая и
Например, в ОС ДИСПАК для БЭСМ-6 (еще в 1960-х гг.) паспорт задания мог иметь вид:
ЛИСТ 0-37^ТРАК 50^ВРЕМ 240^
где ЛИСТ – диапазон листов (страниц) основной памяти, ТРАК – требуемый объем внешней памяти на магнитном барабане, ВРЕМ – максимальное время выполнения (2 минуты 40 секунд, что соответствовало
одному из быстрых классов заданий), – максимальный объем выдачи на
При попытке превышения хотя бы одного из указанных ограничений операционная система снимала задачу со счета с соответствующим
Вернемся к избежанию
Состояние
В следующей лекции рассмотрены конкретные методы и алгоритмы избежания
Reserved graph –
Вершина-процесс – вершина в графе
Вершина-ресурс – супервершина в графе
Взаимное исключение – одно из необходимых условий тупика: только один процесс в каждый момент времени может получить доступ к ресурсу.
Граф распределения ресурсов – граф, описывающий состояние
Дуга типа "запрос" (request edge) – направленная дуга из вершины-процесса в вершину-ресурс.
Дуга типа "присваивание" (assignment edge) – направленная дуга из подвершины, изобращающей конкретную единицу ресурса, в вершину-процесс.
Запрос (request) - действие процесса по запросу к ОС о необходимости выделения ему ресурса какого-либо вида.
Использование (use) – владение и потребление процессом полученной от ОС единицей некоторого вида ресурса.
Освобождение (release) – возврат процессом операционной системе единицы использованного и более не требующегося процессу ресурса.
:процесс может освободить ресурс только добровольно, когда завершит свою работу.
Паспорт задачи – в ранних ОС: список максимальных потребностей процесса в ресурсах каждого типа – оперативной и внешней памяти, времени выполнения, листах печати и др.
Супервершина (в составе reserved graph ) – структурированная вершина, содержащая одну или несколько подвершин, из которых могут вести дуги.
Тупик (deadlock) – циклическая последовательность заблокированных процессов, каждый из которых владеет некоторым ресурсом и ожидает ресурса, которым владеет какой-либо другой процесс из этого множества.
Удержание и ожидание – одно из необходимых условий тупика: процесс, удерживающий один ресурс, ожидает приобретения других ресурсов, которыми обладают другие процессы.
Циклическое ожидание – одно из необходимых условий тупика: существует множество {P0, P1, … P0},такое, что P0 ожидает ресурса, которым обладает P1; P1 ожидает ресурса, которым обладает P2 … Pn ожидает ресурса, которым обладает P0.
Для анализа
Если в графе
Возможны следующие методы обработки
Для предотвращения
Более разумна стратегия с перераспределением ресурсов, при которой, если процесс не может немедленно получить запрашиваемый ресурс, то он должен отдать все остальные ресурсы, которыми он обладает, которые также добавляются к списку его неудовлетворенных потребностей. Процесс возобновляется только в случае, если он может получить назад все старые ресурсы вместе с новыми запрашиваемыми ресурсами.
Не вполне реалистичным представляется метод, при котором все типы ресурсов перенумеровываются, и от процессов требуется, чтобы они запрашивали ресурсы только в порядке возрастания номеров.
Наиболее простая и
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.