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

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

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

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

Одной из них является модель повторно использумых ресурсов Холта [54]. Согласно этой модели система представляется как на о(множество) процессов и набор ресурсов, причем каждый из ресурсов состоит249Ппимеры тупиковых ситуаций и причины их возникновенияфиксированного числа единиц. Любой процесс может изменять <, состояние системыпутем выдачи запроса на получение или освобождение единицы ресурса.В графической форме процессы и ресурсы представляются квадратами и кружка­ми соответственно. Каждый кружок содержит некоторое количество маркеров(фишек) в соответствии с существующим количеством единиц этого ресурса.

Дуга,указывающая из «процесса» на «ресурс», означает запрос одной единицы этогоресурса. Дуга, указывающая из «ресурса» на «процесс», представляет выделениересурса процессу. Поскольку каждая единица любого ресурса типа SR может бытьвыделена одновременно не более чем одному процессу, то число дуг, исходящихиз ресурса к различным процессам, не может превышать общего числа единиц это­го ресурса. Такая модель называется графом повторно используемых ресурсов.Пример одного из состояний системы из двух процессов с ресурсами типа SR пред­ставлен на рис.

8.1.Пр2Пр1R2Рис. 8.1. Пример модели ХолтаПусть процесс Пр1 запрашивает две единицы ресурса R1 и одну единицу ресурсаR2. Процессу Пр2 принадлежат две единицы ресурса R1, и ему нужна одна едини­ца R2. Предположим, что процесс Пр1 получил запрошенную им единицу R2. Еслипринято правило, по которому процесс должен получить все запрошенные им ре­сурсы прежде, чем освободить хотя бы один из них, то удовлетворение запросаПр1 приведет к тупиковой ситуации: Пр1 не сможет продолжиться до тех пор, покаПр2 не освободит единицу ресурса R1, а процесс Пр2 не сможет продолжиться дотех пор, пока Пр1 не освободит единицу R2. Причиной этого тупика являются не­упорядоченные попытки процессов войти в критическую секцию, связанную с вы­делением соответствующей единицы ресурса.Примеры тупиковых ситуацийпричины их возникновенияияпонимания основных причин возникновения тупиков рассмотрим несколькоР°стых характерных примеров.250Глава 8.

Проблема тупиков и метЬды б о р ь б ы с нимиПример тупика на ресурсах типа CRПусть имеется три процесса Пр1, Пр2 и ПрЗ, которые вырабатывают сообщенияMl, M2 и МЗ соответственно. Эти сообщения представляют собой ресурсы типаCR. Пусть процесс Пр1 является потребителем сообщения МЗ, процесс Пр2 дол­жен получить сообщение Ml, а ПрЗ ожидает сообщение М2 от процесса Пр2. Та­ким образом, каждый из этих трех процессов является и поставщиком, и потреби­телем одновременно, и вместе они образуют кольцевую систему (рис. 8.2) передачисообщений через почтовые ящики (ПЯ).Рис.

8.2. Кольцевая схема взаимодействия процессовЕсли связь с помощью этих сообщений со стороны каждого процесса устанавлива­ется в порядке, представленном в листинге 8.1, то никаких проблем не возникает.Однако перестановка этих двух процедур в каждом из процессов вызывает тупик(листинг 8.2).Листинг 8 . 1 . Вариант псевдокода без тупиковой ситуацииПр1:ПОСЛАТЬ СООБЩЕНИЕ (Пр2.

Ml. ПЯ2):ЖДАТЬ СООБЩЕНИЕ (ПрЗ. МЗ. ПЯ1);Пр2:ПОСЛАТЬ СООБЩЕНИЕ (ПрЗ. М2. ПЯЗ):ЖДАТЬ СООБЩЕНИЕ (Пр1. Ml, ПЯ2);ПрЗ:ПОСЛАТЬ СООБЩЕНИЕ (Пр1. МЗ. ПЯ1):ЖДАТЬ СООБЩЕНИЕ (Пр2. М2. ПЯЗ):251Примеры тупиковых ситуаций и причины их возникновенияЛистинг 8.2. Вариант псевдокода с тупиковой ситуациейПр1:ЖДАТЬ СООБЩЕНИЕ (ПрЗ. МЗ. ПЯ1):ПОСЛАТЬ СООБЩЕНИЕ (Пр2, Ml. ПЯ2);Пр2:ЖДАТЬ СООБЩЕНИЕ (Пр1, Ml. ПЯ2);ПОСЛАТЬ СООБЩЕНИЕ (ПрЗ. М2. ПЯЗ);ПрЗ:ЖДАТЬ СООБЩЕНИЕ (Пр2. М2. ПЯЗ);ПОСЛАТЬ СООБЩЕНИЕ (Пр1. МЗ. ПЯ1):В самом деле, во втором варианте ни один из процессов не сможет послать сообще­ние до тех пор, пока сам его не получит, а это событие никогда не произойдет, по­скольку ни один процесс не может этого сделать.Пример тупика на ресурсах типа CR и SRПусть некоторый процесс Пр1 должен обменяться сообщениями с процессом Пр2и каждый из них запрашивает некоторый ресурс R, причем Пр1 требует три едини­цы этого ресурса для своей работы, а Пр2 — две единицы и только на время обра­ботки сообщения.

Всего же имеется только четыре единицы ресурса R. Запроси освобождение ресурса можно реализовать через соответствующий монитор с про­цедурами REQUESTER, N) — запрос N единиц ресурса R, и RELEASE(R, N) —освобожде­ние (возврат) N единиц ресурса R. Обмен сообщениями будем осуществлять черезпочтовый ящик MB. Фрагменты программ Пр1 и Пр2 приведены в листинге 8.3.Листинг 8.3. Пример тупика на ресурсах CR и SRПр1:REQUEST ( R, 3 ):SEND_MESSAGE ( Пр2. сообщение, MB ):WAIT_ANSWER ( ответ.

MB );RELEASE ( R. 3 );WAIT_MESSAGE ( Пр1, сообщение. MB );REQUEST ( R. 2 ):ОБРАБОТКА СООБЩЕНИЯ:RELEASE ( R, 2 ):продолжениеti>Глава 8. Проблема тупиков и методы борьбы с нимы252Листинг 8.3 {продолжение)SEND_ANSWER-( ответ. MB ):Увы, эти два процесса всегда будут попадать в состояние тупика. Действительнопроцесс Пр2, выполняясь первым, сначала будет ожидать сообщения от процессаПр1, после чего будет заблокирован при запросе ресурса R, часть которого окажетсяуже отданной процессу Пр1. Процесс Пр1, завладев частью ресурса R, будет забло­кирован ожиданием ответа от Пр2, которого никогда не получит, так как для этогоПр2 нужно получить ресурс R, находящийся в распоряжении Пр1. Тупика можноизбежать лишь при условии, что на время ожидания ответа от Пр2 процесс Пр1 от­даст хотя бы одну из единиц ресурса R, которыми он владеет. В данном примере, каки в предыдущем, причиной тупика являются ошибки программирования.Пример тупика на ресурсах типа SRПредположим, что существуют два процесса Пр1 и Пр2, разделяющих два ресурсатипа SR: R1 и R2.

Пусть взаимное исключение доступов к этим ресурсам реализует­ся с помощью семафоров S1 и S2 соответственно. Процессы Пр1 и Пр2 обращаютсяк ресурсам так, как показано на рис. 8.3 [17].Процесс Пр 1Процесс Пр 21:PCS2):(5):PCS1);2:PCS1):(6):P(S2);3:VCS1);(7):V(S1);4:V(S2);(8):V(S2):Рис. 8.3. Пример последовательности операторов для двух процессов,которые могут привести к тупиковой ситуацииЗдесь несущественные детали (с точки зрения обращения к ресурсам) опущены.Считаем, что оба семафора первоначально установлены в единицу.

Пространствовозможных состояний приведено на рис. 8.4.Горизонтальная ось задает выполнение процесса Пр1, вертикальная — процессПр2. Вертикальные линии, пронумерованные от 1 до 4, соответствуют операторам1-4 процесса Пр1; аналогично горизонтальные линии, пронумерованные от 5 до •соответствуют операторам 5-8 программы Пр2. Точка на плоскости онределясостояние вычислений в некоторый момент времени. Так, точка А соответствуситуации, при которой процесс Пр1 начал исполнение, но не достиг оператора ^а процесс Пр2 выполнил оператор 6, но не дошел до оператора 7. По мере выпо253рримеры тупиковых ситуаций и причины их возникновениянения точка будет двигаться горизонтально вправо, если исполняется процесс Пр1,и вертикально вверх, если исполняется процесс Пр2.Пр211!!ГГА1!7• АчYIСD^5!"1 "";!12тнгг-j!34— • Пр1Рис.

8.4. Пространство состояний системы двух параллельных конкурирующих процессовИнтервалы исполнения, во время которых ресурсы R1 и R2 используются каж­дым процессом, показаны с помощью фигурных скобок. Линии 1-8 делят простран­ство вычислений на 25 областей, каждая из которых соответствует определенномусостоянию в распределении ресурсов в процессе вычислений.

Закрашенные се­рым цветом состояния являются недостижимыми из-за взаимного исключенияпроцессов Пр1 и Пр2 при доступе к ресурсам R1 и R2.Рассмотрим последовательность исполнения 1-2-5-3-6-4-7-8, представленную тра­екторией Т1. Когда процесс Пр2 запрашивает ресурс R1 (оператор 5), ресурс недо­ступен (оператор выполнен, семафор закрыт).

Поэтому процесс Пр2 заблокиро­ван в точке В. Как только процесс Пр1 достигнет оператора 3, процесс Пр2Деблокируется по ресурсу R1. Аналогично в точке С процесс Пр2 будет заблоки­рован при попытке доступа к ресурсу R2 (оператор 6). Как только процесс Пр1Достигнет оператора 4, процесс Пр2 деблокируется по ресурсу R2.Если же, например, выполняется последовательность 1-5-2-6, то процесс ПР1 заолокируется в точке X при выполнении оператора 2, а процесс Пр2 заблокируется вТочке Y при выполнении оператора 6. При этом процесс ПР1 ждет, когда процесс Пр2выполнит оператор 7, а Пр2 ждет, когда Пр1 выполнит оператор 4. Оба процесса буДУт находиться в тупике, ни Пр1, ни Пр2 не смогут закончить выполнение. При этомВсе ресурсы, которые получили оба процесса, становятся недоступными для других254Глава 8.

Проблема тупиков и методы борьбы с нимипроцессов, что резко снижает возможности вычислительной системы по их обслужи­ванию. Отметим одно очень важное обстоятельство: тупик будет неизбежным, есливычисления зашли в прямоугольник D, являющийся опасным состоянием.Исследования проблемы тупиков показали, что для возникновения тупиковойситуации необходимо одновременное выполнение следующих четырех условий [ 1754]:•условия взаимного исключения, при котором процессы осуществляют моно­польный доступ к ресурсам;•условия ожидания, при котором процесс, запросивший ресурс, ждет до тех пор,пока запрос не будет удовлетворен, при этом удерживая ранее полученные ре­сурсы;•условия отсутствия перераспределения, при котором ресурсы нельзя отобратьу процесса, если они ему уже выделены;Q условия кругового ожидания, при котором существует замкнутая цепь процес­сов, каждый из которых ждет ресурс, удерживаемый его предшественником в цепи.Проанализировав содержательный смысл этих четырех условий, легко убедиться,что все они выполняются в точке Y (см.

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

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

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