Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 70

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 70 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 702020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 70)

Кроме того, можно сохранять для каждого ресурса запросы, упорядо­ченные по размеру (числу единиц ресурса). Тогда следующий алгоритм сокраще­ний, записанный на псевдокоде, имеет максимальное время выполнения, нропорциональное m x п.зТ0п ы б о р ^ б ы £ т у п и камиail Pe L do£ и пirl for a l l R,3 |CR,.P>| > 0 d oBe9•= г + |(R,.P)|Begin rFor a l l P, э 0 < | CP,.RP I <= ^ doBegin wt := w, - 1:If w, = 0 then L := L U {Pi}EndEndj g d l o c k :=N0t ( L - {PL P2Pn}):L — это текущий список процессов, которые могут выполнять редукцию граМожпо сказать, что L = {Р( | w,- = 0}.

Программа выбирает процесс Р из списка L,цесс Р сокращает граф, увеличивая число доступных единиц ij всех ресурсов Rj?определенных процессу Р, обновляет счетчик ожидания w( каждого процесса Pf,который сможет удовлетворить свой запрос на частный ресурс Щ, и добавляет Р-, к L,если счетчик ожидания становится нулевым.Методы обнаружения тупика по наличиюзамкнутой цепочки запросовСтруктура графа обеспечивает простое необходимое (но не достаточное) условиедля тупика.

Для любого графа G = <Х, Е> и вершины х I X пусть Р(х) обозначаетмножество вершин, достижимых из вершины х, то естьР(х) = { у | (х, у) I Е } U { z | (у, z) I Е & у I Р(х) }.Можно сказать, что в ориентированном графе потомством вершины х, обозначен­ным как Р(х), называется множество всех вершин, в которые ведут пути из х.Тогда если существует некоторая вершина х I X: х I Р(х), то в графе G имеетсяцикл.Первая теорема: цикл в графе повторно используемых ресурсов является необхо­димым условием тупика.Для доказательства этой теоремы (которое мы опустим 1 ) можно воспользоватьсяследующим свойством ориентированных графов: если ориентированный граф несодержит цикла, то существует линейное упорядочение вершин такое, что еслисуществует путь от вершины i к вершине], то i появляется перед] в этом упорядо­чении.торая теорема: если S не является состоянием тупика и S —2—> ST, где ST естьостояние тупика, в том и только в том случае, когда операция процесса Р: естьзапрос и Р; находится в тупике в S,,следует понимать таким образом, что тупик может быть вызван только приР°се, который не удовлетворен немедленно.

Учитывая эту теорему, можно сде, В Ь 1 в од, что проверка на тупиковое состояние может быть выполнена болееективно, если она проводится непрерывно, то есть по мере развития процесогДа надо применять редукцию графа только после запроса от некоторогоР" Ж е л а н и и его можно найти в [54].272Глава 8, Проблема тупиков и методы борьбы с нимипроцесса Р| и на любой стадии необходимо сначала попытаться сократить граф спомощью процесса Р ( . Если процесс Р; смог провести сокращение графа, то ника­кие дальнейшие сокращения не являются необходимыми.Ограничения, накладываемые на распределители, на число ресурсов, запрошен­ных одновременно, и на количество единиц ресурсов, приводят к более простымусловиям для тупика.Пучок, или узел, в ориентированном графе G = <Х, Е> — это подмножество вер­шин Z I X, таких что V х I Z, Р(х) = Z, то есть потомством каждой вершины из Zявляется само множество Z.

Каждая вершина в узле достижима из каждой другойвершины этого узла, и узел есть максимальное подмножество с этим свойством.Поясним сказанное рис. 8.10.Рис. 8.10. Пример узла в модели ХолтаСледует заметить, что наличие цикла — это необходимое, но не достаточноеусловие для узла. Так, на рис. 8.11 изображены два подграфа. Подграф а пред­ставляет собой пучок (узел), тогда как подграф б представляет собой цикл, ноузлом не является. В узел должны входить дуги, но они не должны из него вы­ходить.Если состояние системы таково, что удовлетворены все запросы, которые мо­гут быть удовлетворены, то существует простое достаточное условие существо­вания тупика.

Эта ситуация возникает, если распределители ресурсов не от­кладывают запросы, которые могут быть удовлетворены, а выполняют их повозможности немедленно (большинство распределителей следуют именно этойдисциплине).Состояние называется фиксированньш, если каждый процесс, выдавший запрос,заблокирован.Третья теорема: если состояние системы фиксированное (все процессы, имею­щие запросы, удовлетворены), то наличие узла в соответствующем графе повторно используемых ресурсов является достаточным условием тупика.Методы борьбы с тупикамиy3enZ = {Z 1 ,Z 2 ,Z 3 ,Z 4 }Цикл Z = {Zb Z 2 , Z 3 , Z 4 }, но не узелРис.

8 . 1 1 . Узел и цикл в ориентированном графеZYIS274Глава 8. Проблема тупиков и методы борьбы с нимиДля доказательства предположим, что граф содержит узел Z. Тогда все процессы вэтом узле должны быть заблокированы только по ресурсам, принадлежащим Zтак как никакие ребра не могут выходить из Z по определению. Аналогично, по тойже самой причине все распределенные ресурсы узла Z принадлежат процессам из Z.Наконец, все процессы в Z должны быть заблокированы согласно условию фикси­рованное™ и определению узла.

Следовательно, все процессы в узле Z должныбыть в тупике.Допустим, что каждый ресурс имеет единичную емкость (по одной единице ресур­са), то есть IRJ = 1, (i = l, 2, ..., m). При этом ограничении наличие цикла такжестановится достаточным условием тупика.Четвертая теорема: граф повторно используемых ресурсов с единичной емкос­тью указывает на состояние тупика тогда и только тогда, когда он содержит цикл.Необходимость цикла доказывает первая теорема. Для доказательства достаточ­ности допустим, что граф содержит цикл, и рассмотрим только лишь процессы иресурсы, принадлежащие циклу.

Так как каждая вершина-процесс должна иметьвходящее и исходящее ребра, она должна выдать запрос на некоторый ресурс, при­надлежащий циклу, и должна удерживать некоторый ресурс, принадлежащий томуже циклу. Аналогично, каждый ресурс единичной емкости в цикле должен бытьзахвачен некоторым процессом. Следовательно, каждый процесс в цикле блоки­руется на ресурсе, который может быть освобожден только некоторым процессомиз этого цикла; поэтому процессы в цикле находятся в тупике.Чтобы обнаружить тупик в случае ресурса единичной емкости, мы должны простопроверить граф повторно используемых ресурсов на наличие циклов.Алгоритм обнаружения тупика по наличиюзамкнутой цепочки запросовИтак, распознавание тупика может быть основано на анализе модели распределе­ния ресурсов. Один из алгоритмов, основанный на методе обнаружения замкну­той цепи запросов, был разработан сотрудниками фирмы IBM и применялся в од­ной из ОС этой компании.

Он использует информацию о состоянии системы,содержащуюся в двух таблицах: таблице текущего распределения (назначения)ресурсов RATBL и таблице заблокированных процессов PWTBL (для каждого видаресурса может быть свой список заблокированных процессов). При каждом за­просе на получение или освобождение ресурсов содержимое этих таблиц модифи­цируется, а запрос анализируется в соответствии со следующим алгоритмом [22].1. Начало алгоритма. Приходит запрос от процесса с номером J на занятый ресурсс номером I.2.

Поместить номер ресурса I в таблицу PWTBL в строке с номером процесса J.3. Использовать I в качестве смещения в таблице RATBL, чтобы найти номер про­цесса К, который владеет ресурсом.4. Использовать К в качестве смещения в таблице PWTBL.5. Проверить, ждет ли процесс с номером К освобождения какого-либо ресурса сномером Г. Если нет, то перейти к шагу 6, в противном случае — к шагу 7.67Перевести процесс с номером J в состояние ожидания и выйти из алгоритма.Использовать Г в качестве смещения в таблице RATBL, чтобы найти помер К'блокирующего его процесса.8 Проверить, что К' = J.

Если нет, перейти к шагу 9, в противном случае — к ша-' гу П .9. Проверить, вся ли таблица PWTBL просмотрена. Если да, то перейти к шагу6, в противном случае — к шагу 10.10. Присвоить К := К' и перейти к шагу 4.П. Сделать вывод о наличии тупика с последующим восстановлением.12. Конец алгоритма.Для иллюстрации описанного алгоритма распознавания тупика рассмотрим сле­дующую последовательность событий.1. Процесс Р1 занимает ресурс R1.2.

Процесс Р2 занимает ресурс R3.3. Процесс РЗ занимает ресурс R2.4. Процесс Р2 занимает ресурс R4.5. Процесс Р1 занимает ресурс R5.В результате таблица распределения ресурсов (RATBL) принимает такой вид,как показано в табл. 8.3.Таблица 8 . 3 . Таблица распределения ресурсовРесурсыПроцессыR1Р1R2РЗR3Р2R4Р2R5PJ6. Пусть процесс Р1 пытается занять ресурс R3, поэтому в соответствии с описан­ным алгоритмом J = 1,1 = 3, К = 2.

Процесс К не ждет никакого ресурса, поэто­му процесс Р1 блокируется по ресурсу R3.7. Далее, пусть процесс Р2 пытается занять ресурс R2: J = 3,1 = 2, К = 3. Процессс номером К=3 не ждет никакого ресурса, поэтому процесс Р2 блокируется поресурсу R2.о- И наконец, пусть процесс РЗ пытается обратиться к ресурсу R5: J = 3, I = 5,К = 1, Г = 3, К' - 2, К' <> J, поэтомуберем К = 2, Г = 2, К" = 3.& этом случае К' = J, то есть тупик определен.

Таблица заблокированных процес­сов (PWTBL) теперь будет выглядеть так, как показано в табл. 8.4.Равенство J = К' означает, что существует замкнутая цепь взаимоисключающихи 05кидающих процессов, то есть выполняются все четыре условия существованиятУпика.276Глава 8. Проблема тупиков и методы борьбы с нимиТаблица 8.4. Таблица заблокированных ресурсовПроцессР1Р2РЗРесурсR3R2R5)Для описанного нами примера можно построить модель Холта, как показано нарис. 8.12.

Здесь пронумерованы дуги запросов, которые процессы последователь­но генерировали в соответствии с нашим примером. Из рисунка сразу видно, чтов результате такой последовательности запросов образовалась замкнутая цепоч­ка: (8, 5, 6, 2, 7, 3), что и говорит о существовании тупика.R5RiРис. 8.12.

Граф распределения ресурсовРаспознавание тупика требует дальнейшего восстановления вычислений.Восстановление можно интерпретировать как запрет постоянного пребыванияв опасном состоянии. Существуют следующие методы восстановления:а принудительный перезапуск системы, характеризующийся потерей информа­ции обо всех процессах, существовавших до перезапуска;•принудительное завершение процессов, находящихся в тупике;Q принудительное последовательное завершение процессов, находящихся в ту­пике, с последующим вызовом алгоритма распознавания после каждого завер­шения до исчезновения тупика;• перезапуск процессов, находящихся в тупике, с некоторой контрольной точки,то есть из состояния, предшествовавшего запросу на ресурс;Q перераспределение ресурсов с последующим последовательным п е р е з а п у с кпроцессов, находящихся в тупике.Контрольные вопросы и задачи277Основные издержки восстановления составляют потери времени на повторныевычисления, которые могут оказаться весьма существенными.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее