Главная » Просмотр файлов » В. Столлингс - Операционные системы

В. Столлингс - Операционные системы (1114679), страница 52

Файл №1114679 В. Столлингс - Операционные системы (В. Столлингс - Операционные системы) 52 страницаВ. Столлингс - Операционные системы (1114679) страница 522019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

3'. 5.103~ )лучить при использовании обобщенных семафоров 1именуемых Вфорами со счетчиками). Переменная и в этом случае является се. значение остается равным количеству элементов в буфере. Пре 'перь, что п и переписывании этой программы произошла оши ошибка,'- ° Р н. Это:,, гиии Бтдае1 ( е ) и э1диа1 (и) оказались взаимозамененнымн. зивести к тому, что операция эуаие1 (г ) будет выполняться в кри ~зделе производителя без прерывания потребителя или другого гого п .ля. Повлияет ли это на выполнение программы.

Нет, поскол У 'ль в любом случае должен ожидать установки обоих семафоро Фо ов пе >лжением работы. Пястинг 5.10. Решение задачи производитель/потребитель с исполъзованием семафоров Теп еперь предположим, что взаимозаменены операции ха1с(п) и хэ1г. (з). Этап х приведет к фатальным последствиям. Если пользователь войдет в критический аз е Раздел, когда буфер пуст (и.саииг = О), то ни один производитель не сможет о добавить данные в буфер и система окажется в состоянии взаимной блокировки. Эт . Это хороший пример тонкости работы с семафорами и сложности корректной ой Разработки параллельно работающих процессов.

А тепе ь ерь добавим к нашей задаче новое, достаточно реалистичное огра» амчение — к — конечность буфера. Буфер рассматривается нами как циклическое храни.и е с . ще (см. Рис. 5.5), при работе с которым значения указателей долж- НМ Выражаться Р ться по модулю размера буфера.

При этом выполняются следую- ~ВЕ УСЛОВИЯ. ,,-- - Параллельные вычисления: взаимоисключения... 5. тт этсга1 (и) ыаз Ь (и); ха1с (э); ьаке (); В1япа1 (э); айдпа1(е); сопзппе(); Ф ° ° ° б ~-„-.~ 1 и ( Ра" Ьесгп (Ргоопсег, сопзппег); Реализация семафоров жяэводитель 111е(~где) иЬ11е (1п == оцс) l* Бездействие *~'; ы = Ь(оп1); опс = (опт+1) $ и; /* Потребление элемента и */; /* Произаслстао элемента ч*/е ыЬ11е((1п+1) Ъп ==- опс) /* Бездействие У; Ь(1п) = ч; 1п = (З.п+1) % Ргобпсе()." матс(е)' ыайг.(з)' аррепс((); э1Япа1(з) ° ""' ' -'-' (тее).эе~ (з. Й1аЯ) ) Безлейстаие lе (а.соспг е О) Часть 2.

Ц Рис. б.б. Конечный циклический буфер длл задачи производитель/потребитель Функции производителя и потребителя при этом могут быть запи ' ~ющим образом (переменные 1п и опс инициализированы значением О". лоаребитель: ыЬ11е (сгпе) В листинге 5.11 приведено решение с использованием обобщен )в. Для отслеживания пустого места в буфере в программу добавлен истинг 5.11.

Решение задачи производитель|потребитель с ограниченным буфером жэг 1п~ зтзео1ЬВХ1ег --. ~" РазмеР буфера /; ее~ар)азоте я = 1; .вар)1оге п = О; апарпохе е = ЯткеогЬыййег~ отб Реобпсег() Как упоминалось ранее, главное условие корректности работы семафоров заключается в требовании атомарности операций иа1с и эьапа1. Один нз очевидных путей выполнения этого условия состоит в реализации семафоров в аппаратном или микропрограммном обеспечении. Если этот путь недоступен„применяются различные программные подходы. Суть проблемы заключается в реализации взаимных исключений.

в определенный момент времени работать с семафором посредством операций науа или з1опа1 может только один процесс. Следовательно, подойдет любая из рассматривавшихся программных схем, такая, как алгоритмы Деккера или Петерсона; но это может привести к определ~нным накладным расходам. Можно также использовать одну из схем поддержки взаимоисключений на аппаратном уровне.

Так, в листинге 5.12,а покакак можно использовать инструкцию проверки и установки значения. В этой Реализации, как и в листинге 5.7, семафор представляет собой структуру; о на днако теперь он включает новый целый компонент э. й1ац. Конечно, при таком способ ~~обе Реализации семафоров неизбежно пережидание занятости, но поскольку опера Рации ыа ' С и з)цпа1 относительно небольшие, время ожидания минимально. однопроцессорной системе можно воспользоваться запретом прерываний на вем выполнения операций иа1С и зйопа1, как предложено В листинг 5.1гб цнй „,,„','„ ° .

Повторимся еще раз — малое время ожидания занятости этих операзначает целесообразность применения предложенного подхода. листинг ". г о.12. Две возможные реализации семафоров а.) иаэс ат'- (е) яструкция проверки и установки '/ '., " Параллельные вычисления. "взаимоисключения... е1 ве в.г).вд = О; )вз.) ~в) и)-, ' 1е (Сев~ее~ ) в. ~1ад) ) /~ Бездействие *)~ Б.саыу'ге+а )в.сава~' <= 0) б) Запрет прерываний */ Запретить прерываниями ~ в. саой1 < О) Рис 56 Паримма рсмая )7аместить етат црацесс в в.

ацеие Зеблакираветь працесс е1Бе Разрешить прерывания; Вепре ить Брерыве иия; ъ.саапГ++; 'г. ~в.сацпс <= О) Часть 2...,. )заместить етат процесс в в.аиеие Зе Ол скирава ть лрацесс и уста Навить е. Г)йс рйвньъ~ О 1 Уделить працесс Р из е.спеце Раместить Р в сцисак активных црацессав в.~Хам = 0; Улалить црацесс Р ие е.диеие заместить Р в списак активных працессав Разрешить прерывания~ адача о парикмахерской В качестве другого примера использования семафоров для реал итлельных вычислений рассмотрим простую задачу о парикмахерск, эимер весьма поучителен, так как задача, возникающая р п и поп ~ Я признателен профессору Ральфу Хильиеру (Виара Нпзес) из У тата Калифорния е Чика за предоставление зтой задачи.

„пть простой доступ в парикмахерскую, сродни тем, которые возникают в рельных операционных системах. В нашей парикмахерской три кресла, три парикмахера, зал ожидания, в котором четыре клиента могут разместиться на диване„а остальные — стоя (см. пс. 5.6). Правила пожарной безопасности ограничивают общее количество кли„д.ав внутри помещения 20 людьми. В нашем примере мы предполагаем, что всего мастерская должна обслужить 50 клиентов. Клиент не может войти в парикмахерскую, если она полностью заполнена другими клиентами. Оказавшись внутри, клиент либо присаживается на диван, либо стоит„если последний занят. Когда парикмахер освобождается, к нему отправляется наиболее долго ожидающий клиент с дивана; если имеются стоящие алненты, то тот из них, кто ожидает дольше других, присаживается на диван. По окончании стрижки принять плату может любой парикмахер, но так как кассир в парикмахерской лишь один, плата принимается в один момент времени только от одного клиента.

Рабочее время парикмахера разделяется на стрижку, принятие оплаты от клиента и сон в своем кресле в ожидании очередного клиента. Неполное решение задачи о парикмахерской В листинге 5.13 показана реализация парикмахерской с использованием семал, ~афоров; предполагается, что все очереди семафоров обрабатываются по прин- первым вошел — первым вышел". В листинге для экономии места функции " Расположены в два столбца. Основное тело программы активизирует процессы 50 клиентов, трех парикЖахс знр Ров н одного кассира. Рассмотрим теперь назначение различных синхрониРующих операторов.

1 местимость парикмахерской и дивана. Вместимость парикмахерской и дивана управляется семафорами пах сарас).~у и ваГа, соответственно. аждый раз при попытке клиента войти в парикмахерскую значение семафора пах сарас).су уменьшается на 1; когда клиент покидает парикмахер- , а 5. Параллельные вычисления: взаимоисключения.. скую, оно увеличивается. Если парикмахерская заполнена, то про ента приостанавливается функцией иа1» (пах сарас(»у).

Аналоги рабатывается и попытка присесть на диван. Емкость парикмахерских кресел. В наличии имеются три парикм крес. - есла, и следует обеспечить их корректное использование. ьагьег сФьа г гарантирует одновременное обслуживание не более трь»', ентов, так чтобы один клиент не оказался на коленях у другого. Кл. поднимется с дивана до тех пор, пока не окажется свободным хотя б т' кресло (вызов иа(т (ЬагЬег сйат г) ), а каждый парикмахер сааб ' том, что его кресло освободилось (вызов е)тдт1а1 (ЬагЬег спауг) ).

С " ливый доступ к парикмахерским креслам гарантируется организаци' редей семафоров: клиент, который первым блокирован в очереди, же и приглашается на стрижку. Заметим, что если в процедуре кли зов ъа1» (ЬагЬег с)~а(г) разместить после е1дпа1(войа), то квжд ' ент будет только присаживаться на диван, после чего немедленно вать и занимать стартовую позицию у кресла, создавая излишнюю ню и мешая работать парикмахеру. Размещение клиента в кресле. Семафор спа» геас(у обеспечивает спящего парикмахера, сообщая ему о новом клиенте. Без этого ае ' парикмахер никогда не отдыхал бы и приступал к стрижке неме сле того, как очередной клиент покинет кресло. При отсутствии этот момент парикмахер стриг бы воздух.

Ъ Удержание клиента в кресле. Если уж клиент оказался в кресле, - ' жен отсидеть там до окончания стрижки, о чем просигнализирует ЙьпуаЬео. Ограничение количества клиентов в креслах. Семафор ЬагЬег сЬа1г' значен для ограничения количества клиентов в креслах — их не до. ' ' более трех. Однако одного семафора ЬагЬег сЬа(г для этого не Клиент, который не получит процессорное время непосредственно п как парикмахер сообщит о завершении работы над его прич з(т1па1(г1п1аЬеб) ), останется в кресле (например, впав в транс или': задумавшись о задаче о парикмахерской), в то время как в этом же дет стараться устроиться новый клиент. Для решения данной задачи ется семафор 1еаъе Ь спа1г, который не позволяет парикмахеру нового клиента до тех пор, пока предыдущий не покинет кресло.

Оплата стрижки. Естественно, с деньгами надо быть особенно Кассир должен быть уверен, что каждый клиент, покидая пар сперва расплатится, а каждый клиент, оплатив стрижку, должен по Зто достигается передачей денег кассиру из рук в руки — каждый кинув кресло, оплачивает услуги парикмахера, после чего дает знать,:„ кассиру (вызов эгопа1(рауптепг)) и дожидается получения ка (вызов иа1» (гасе(р») ), Кассир осуществляет прием платежей, ожидая' о платеже, принимая деньги, а затем сообщая об этом.

Здесь следует ся избежать ряда программных ошибок. Если вызов з1()па1 (раутттепс -: няется непосредственно перед вызовом рау(), то клиент может ок рванным в этот момент, и кассир будет пытаться принять не перед д нствии кассира и парикмахера. В целях экономии средств парикмахерская не нанимает отдельного кассира. Это действие выполняет парикмахер, когда не стрижет клиента. Для того чтобы обеспечить выполнение парикмахером в один момент времени только одной функции, используется семафор соого. Назначение каждого семафора программы указано в табл.

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

Тип файла
DJVU-файл
Размер
34,99 Mb
Тип материала
Высшее учебное заведение

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

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