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

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

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

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

Разработано не­сколько подходов к разрешению этой проблемы, однако ни один из них нельзясчитать панацеей. В некоторых случаях цена, которую приходится платить за то,чтобы освободить систему от тупиков, слишком высока. Кстати, именно по этойпричине нам не так уж редко приходится сталкиваться с тупиковыми ситуациями.В других случаях, например в системах управления процессами реального време­ни, просто нет иного выбора, как идти на значительные затраты, поскольку воз­никновение тупика может привести к катастрофическим последствиям.Проблема борьбы с тупиками становится все более актуальной и сложной по мереразвития и внедрения параллельных вычислительных систем. При проектирова­нии таких систем разработчики стараются проанализировать возможные тупико­вые ситуации, используя специальные модели и методы.

Борьба с тупиковымиситуациями основывается на одной из трех стратегий:• предотвращение тупика;• обход тупика;Q распознавание тупика с последующим восстановлением.Предотвращение тупиковПредотвращение тупика основывается на предположении о чрезвычайно высокой° стоимости, поэтому лучше потратить дополнительные ресурсы системы, чтооыисключить вероятность его возникновения при любых обстоятельствах. Этотподход используется в наиболее ответственных системах, обычно в системах ре­ального времени.егРедотвращение можно рассматривать как запрет существования опасных состоИи.

Поэтому подсистема распределения ресурсов, предотвращающая тупик,окна гарантировать, что ни одного из четырех условий, необходимых для еговступления, не возникнет.н264Глава 8. Проблема тупиков и методы борьбы с нимцQУсловие взаимного исключения можно подавить путем разрешения неограничен­ного разделения ресурсов. Это удобно для повторно входимых программ и рядадрайверов, но совершенно неприемлемо для совместно используемых перемен­ных в критических секциях.•Условие ожидания можно подавить, предварительно выделяя ресурсы.

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

Перераспределениепроцессора реализуется достаточно легко, в то время как перераспределениеустройств ввода-вывода крайне нежелательно.QУсловие кругового ожидания можно исключить, предотвращая образование цепизапросов. Это можно обеспечить с помощью принципа иерархического выделе­ния ресурсов. Все ресурсы образуют некоторую иерархию. Процесс, затребовав­ший ресурс на одном уровне, может затем потребовать ресурсы только на болеевысоком уровне. Он может освободить ресурсы на данном уровне, только пос­ле освобождения всех ресурсов на всех более высоких уровнях. После того какпроцесс получил, а потом освободил ресурсы данного уровня, он может запро­сить ресурсы на три же самом уровне.

Пусть имеются процессы Пр1 и Пр2,которые могут иметь доступ к ресурсам R1 и R2, причем R2 находится на болеевысоком уровне иерархии. Если процесс Пр1 захватил ресурс R1, то процессПр2 не может захватить ресурс R2, так как доступ к нему проходит через дос­туп к ресурсу R1, который уже захвачен процессом Пр1. Таким образом, созда­ние замкнутой цепи исключается. Иерархическое выделение ресурсов часто недает никакого выигрыша, если порядок использования ресурсов, определенныйв описании процессов, отличается от порядка уровней иерархии.

В этом случаересурсы будут расходоваться крайне неэффективно.В целом стратегия предотвращения тупиков — это очень дорогое решение пробле­мы тупиков, и эта стратегия используется нечасто.Обход тупиковОбход тупика можно интерпретировать как запрет входа в опасное состояние. Еслини одно из упомянутых четырех условий не исключено, то вход в опасное состоя­ние можно предотвратить при наличии у системы информации о последовательности запросов, связанных с каждым параллельным процессом. Доказано [54J, чесли вычисления находятся в любом неопасном состоянии, то существует, по кра ней мере, одна последовательность состояний, которая обходит опасное состоpM l°gblб°Рь б ы с265тупикамиие.

Следовательно, достаточно проверить, не приведет ли выделение затребовано ресурса сразу же к опасному состоянию. Если да, то запрос отклоняется, еслиего можно выполнить. Определение того, является состояние опасным илиеТнет', требует анализа последующих запросов от процессов.Рассмотрим следующий пример. Пусть имеется система из трех вычислительныхпроцессов, потребляющих некоторый ресурс R типа SR; который выделяется дис­кретными взаимозаменяемыми единицами, причем существует всего десять еди­ниц этого ресурса.

В табл. 8.2 приведены сведения о текущем распределении про­цессами этого ресурса R, об их текущих запросах на этот ресурс и о максимальныхпотребностях процессов в ресурсе R.оГТаблица 8 . 2 . Пример распределения ресурсовИмя процессаВыделеноЗапросМаксимальнаяпотребностьОстатокпотребностей23613272235ОПоследний столбец в таблице показывает нам, сколько еще единиц ресурса можетзатребовать каждый из процессов, если бы он получил ресурс на свой текущийзапрос.Если запрос процесса А будет удовлетворен первым, то он в принципе может за­просить еще одну единицу ресурса R, и уже в этом случае мы получим тупиковуюситуацию, поскольку ни один из наших процессов не сможет продолжить своивычисления. Следовательно, при выполнении запроса процесса А мы попадаем вненадежное1 состояние.Если первым будет выполнен запрос процесса В, то у нас останется свободной ещеодна единица ресурса R.

Однако если процесс В запросит еще две, а не одну едини­цу ресурса R, а он может это сделать, то мы опять получим тупиковую ситуацию.Если же мы сначала выполним запрос процесса С и выделим ему не две (как про­цессу В), а все три единицы ресурса R, то у нас не останется никакого резерва, нопроцесс С сможет благополучно завершиться и вернуть системе все свои ресурсы,поскольку на этом его потребности в ресурсах заканчиваются. Это приведет к тому,что свободное количество ресурса R станет равно пяти.

После этого уже можнобудет удовлетворить запрос либо процесса В, либо процесса А, но не обоих сразу.Часто бывает так, что последовательность запросов, связанных с каждым процес­сом, заранее не известна. Но если заранее известен общий запрос на ресурсы кажД°! о типа, то выделение ресурсов можно контролировать. В этом случае необходи0Для каждого требования, в предположении, что оно удовлетворено, определить,УЩествует ли среди общих запросов от всех процессов некоторая последовательРмин «ненадежное состояние» не предполагает, что в данный момент существует пли в какое-тоРемя обязательно возникнет тупиковая ситуация.

Он просто говорит о том, что в случае некоторойлагоприятпой последовательности событий система может зайти в тупик.266Глава 8. Проблема тупиков и методы борьбыс н и ц иность требований, которая может привести к опасному состоянию. Данный под.ход является примером контролируемого выделения ресурса.Классическое решение этой задачи предложено Дейкстрой и известно как алго­ритм банкира [53].

Алгоритм банкира напоминает процедуру принятия решенияо том, может ли банк безопасно для себя дать взаймы денег. Принятие решенияосновывается на информации о потребностях клиента (нынешних и максимальновозможных в принципе) и учете текущего баланса банка. Хотя этот алгоритм прак­тически нигде не используется, рассмотрим его, так как он интересен с методичес­кой и академической точек зрения.Пусть существует N процессов, для каждого из которых известно максимальноеколичество потребностей в некотором ресурсе R (обозначим эти потребности че­рез Max(i)).

Ресурсы выделяются не сразу все, а в соответствии с текущим запро­сом. Считается, что все ресурсы i-ro процесса будут освобождены по его завершении.Количество полученных ресурсов для i-ro процесса обозначим Получ^'). Остатокв потребностях i-ro процесса на ресурс R обозначим через Остаток^'). Признак того,что процесс может не завершиться, — это значение false для переменной Заверши).Наконец, переменная Своб_рес будет означать количество свободных единиц ре­сурса R, а максимальное количество ресурсов в системе определено значением Всего_рес.

Текст программы алгоритма банкира приведен в листинге 8.4.Листинг 8.4. Алгоритм банкира ДейкстрыBeginСвоб_рес := Всего_рес;For i := 1 to N doBeginСвоб_рес := Своб_рес - ПолучШ;ОстатокП) := Max(i) - ПолучО);ЗавершО) := false; { процесс может не завершиться }End:flag := true:{ признак продолжения анализа }while flag dobeginflag := false;for i := 1 to N dobeginif ( not ( ЗавершП) )) and ( ОстатокО) <= Своб_рес )then beginЗаверш(i) := true;Своб_рес := СвоО_рес + ПолучП);Flag := trueEndEndEnd;If СвоО_рес = Bcero_pecthenСостояние системы безопасное.и можно выдать ресурсelseСостояние небезопасное.и выдавать ресурс нельзяend.Каждый раз, когда что-то может быть выделено из числа остающихся незанять ^ресурсов, предполагается, что соответствующий процесс работает, пока не о1\/1ЙТОДЫ борьбы с тупиками267чптся, а затем его ресурсы освобождаются.

Если в конце концов все ресурсы осво­бождаются, значит, все процессы могут завершиться и система находится в безопас­ном состоянии. Другими словами, согласно алгоритму банкира система удовлет­воряет только те запросы, при которых ее состояние остается надежным. Новоесостояние безопасно тогда и только тогда, когда каждый процесс может окончить­ся Именно это условие и проверяется в алгоритме банкира.

Запросы процессов,приводящие к переходу системы в ненадежное состояние, не выполняются и от­кладываются до момента, когда их можно будет выполнить.Алгоритм банкира позволяет продолжать выполнение таких процессов, которымв случае системы с предотвращением тупиков пришлось бы ждать. Хотя алгоритмбанкира относительно прост, его реализация может обойтись довольно дорого.Основным накладным расходом стратегии обхода тупика с помощью контролиру­емого выделения ресурса является время выполнения алгоритма, так как он вы­полняется при каждом запросе. Причем, алгоритм работает наиболее медленно,когда система близка к тупику.

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

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

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