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

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

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

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

Монитор поддерживает синхронизацию при помощи переменных условия, полагающихся (и доступных) только в мониторе. Работать с этими перемен„,ми могут две функции. с): приостанавливает выполнение вызывающего процесса по условию с. Монитор при этом доступен для использования другим процессом. ~"-:(~г.е11с): возобновляет выполнение некоторого процесса, приостановленного вызовом сже1г. с тем же условием. Если имеется несколько таких процессов, выбирается олин из них; если таких процессов нет, функция не делает ничего. Обратите внимание на то, что операции ие(Г/э1цпа1 монитора отличаются от соответствующих операций семафора. Если процесс в мониторе передает сигнал, но прн этом нет ни одного ожидающего его процесса, то сигнал просто теряется.

На рнс. 5.7 показана структура монитора. Хотя процесс может войти в монитор посредством вызова любой его процедуры, мы все же будем рассматривать монитор как имеющий единственную точку входа, которая позволяет обеспечить наличие в мониторе не более одного процесса в любой момент времени. Другие процессы, которые пытаются войти в монитор, присоединяются к очереди процессов, приостановленных в ожидании доступности монитора.

После того как процесс вошел в монитор, он может временно пРиостановиться, выполнив вызов ске1 (х); после этого процесс помещается в очередь процессов, ожидающих повторного входа в монитор при выполнении условия. Если процесс, выполняющийся в мониторе, обнаруживает изменение переменной Условия х, он выполняет операцию сэ1дпе1(х), которая сообщает об обна наруженном изменении соответствующей очереди. В кач качестве примера использования монитора вернемся к задаче производитель~пот е / Ребитель с ограниченным буфером. В листинге 5.15 показано решение задачи с нс использованием монитора.

Модуль монитора Ьаипс)ес)Ьиййег управляет буфером, исп Р, использующимся для хранения и получения символов. Монитор включает две пе переменные условий: псегы11 истинно, если в буфере имеется место как мин крайн, мум для одного символа, а погепрсу — если в буфере имеется по ней мере один символ. Часть 2. ° 5. П - - аРаллельные вычисления: взаимоисключения... l* Добавляем злемент е буфер +/ У* Возобновление работы потребителя ~ / Удаляем злемент из буфера */ Возобновляем работу производителей * р' Гехе1л = Ок яехдои~ =- Ор соил~ = О; Выкод "Ье='1л (ргос(нсег, солаог~ег) р жфсог Ьо.тс(ебЬ~ййег' ~аг Ьоййег(К): лехсфл пех1он~ Р сосок; ло~йо11, ло1етрСУ; /* Место для Ы злементоз Указатели буфера Количество злементоа з /* Синхронизация о1б аррепс)(сЬаг х) Часть .2; ' Рис.

5.7. Структура монитора истинг 5.15. Решение задачи производитель/потребитель с ограниче буфером с использованием монитора сиа1С (лоЬто11); н~1ее(оех11л) лехсфл = (лехсфл+1)%Кр сссл --~ ~' сзфдяа)(поСетрсу); (соылг == О) сна1Ь(ло~етрЬУ)р /* Ьы).йег(лехсоцЬ); сехеопс = (лех~опС+1) ФБр соелс /* се1ала1 (по~ йо11); /* ъ"03,(( ргосесег() сваг хр нЬ11е(сгие) ( ргобасе (х); аррелб(х); ~офб сслз~ж~ег ( ) сбаг хр ХЬ11е(~где) ( -а'ке(х) р ослабите(х)р '~'офс( д;а,(,) д ель может добавить символы в буфер только из монитора при ~роизво ите п(и проце Роц дуры аррелб; прямого доступа к буферу у него нет.

Сначала про- Р условие лоьЕы11, чтобы выяснить, имеется ли в буфере пустое Ра прове яет сли его нет, процесс приостанавливается, и в монитор может войти друол Р'цесс (и оизв ( р изводитель или потребитель). Позже, когда буфер оказывается вен не о д конца, приостановленный процесс извлекается из очереди и воздает свою ю работу. После того как процесс поместит символ в буфер, он б. П араллвльные вычисления взаимоисключения нализирует о выполнении условия па~ел;рбу, что разблокирует про оителя (если последний был приостановлен), Зтот пример иллюстрирует разделение ответственности при работе ~', ,ом и при использовании семафоров. Монитор автоматически обесп. имонсключение: одновременное обращение производителя и потре ~еру невозможно.

Однако программист должен корректно разместить.. ритора примитивы сыа1ь и св(жа1, для того чтобы предотвратить . элемента в заполненном буфере или выборку из пустого буфера. В: юльзования семафоров ответственность как за синхронизацию, так и зсключения полностью лежит на программисте. Обратите внимание, что в листинге 5.15 процесс покидает монитор ' (но после выполнения функции сэ(~па1. Если вызов са19па1 осущест ' в конце процедуры, то, по предложению Хоара, вызвавший эту ф инесс приостанавливается, для того чтобы освободить монитор для': ' зцесса, помещается в очередь и остается там до тех пор, пока монито ' освободится.

Процесс можно поместить во входную очередь монитора /гимн процессами, еще не вошедшими в монитор. Однако поскольку., ' чаемый процесс уже частично выполнил свою задачу в мониторе, име. ' ."ь этому процессу приоритет перед только входящими в монитор, для,',," тьзовать дополнительную, "срочную" очередь (см. рис. 5.7). Заметим, использующих мониторы языков, а именно Сопспггеп( Разса1„требу зов сз19лз1 был последней операцией процедуры монитора.

:.(( „ Если выполнения условия х не ожидает ни один процесс, вызов се~ выполняет никаких действий. Как при работе с семафорами, так и с мониторами очень легко :ибку в функции синхронизации. Например, если опустить любой из "' ) ала1 в мониторе, то процесс, попавший в соответствующую очередь, там навсегда. Преимущество мониторов по сравнению с семафор ~ все синхронизирующие функции заключены в мониторе.

Таким зверить корректность синхронизации и отловить возможные ошибки :я проще при использовании мониторов, чем при использовании се ' оме того, при правильно разработанном мониторе доступ к защище мам корректен независимо от запрашивающего процесса; при исп семафоров доступ к ресурсу корректен только в том случае, если и сработаны все процессы, обращающиеся к ресурсу. ониторы с оповещением и широковещанием Определение мониторов, данное Хоаром (НОАВ741, требует, чтобы ~и очередь ожидания выполнения условия не пуста, при выполнени$~,:. бо процессом операции сз19ла1 для этого условия был немедленно,. оцесс, находящийся в указанной очереди.

Таким образом, выполи цию =а' чпа1 процесс должен либо немедленно выйти из монитора, иостановленным. У такого подхода имеется два недостатка. (- Если выполнивший операцию са(опа1 процесс не завершил свое: ние в мониторе, то требуются два дополнительных переключения одно для приостановки данного процесса и второе для возобно работы, когда монитор станет доступен.

Планировщик процессов, связанный с сигналом, должен быть идеально надежен. При выполнении сэ)дла1 процесс из соответствующей очереди должен быть немедленно активизирован, причем планировщик должен гарантировать, что до активизации никакой другой процесс не войдет в монитор (в противном случае условие, в соответствии с которым активизируется процесс, может успеть измениться). Так, например, в листинге 5.15, когда выполняется сз(дпа1(пс~епрьу), процесс из очереди попетр у должен быть активизирован до того, как новый потребитель войдет в монитор. Вот и другой пример: сбой процесса производителя может произойти непосредственно после того, как он добавит символ к пустому буферу, так что операция сз19пз1 не будет выполнена.

В результате процессы в очереди поЬе~лрЬу окажутся навечно заблокированными. )1ястинг 5.16. Код монитора Ъоипйес3Ъп ГЕН 1е (соппЬ =-= К) с аз ~ ':" (по1 Гы11 ), Ь"1(ех (лехЬЫ) = х; пех „хл =' ( сехс ~о+1 ) со пс~-+; с! о"' 1 Г у ( псс епр1. у); 4((; /' Добавляем элемент в буфер /* уведомляем потребителя "'/ 1;Ь'- " *'1) е (сопл~ 9) с~~а 1 "- ( по1 еГйр Ь у ) (пехбоп(+ ссппЬ вЂ . (. ~ ":у (поЬтп11); 1) Ы"; у * удаляем элемент кэ буфера + / /+ уведомляе~ произаслителл "/ дэмпсон (Ьатрзоп) и Ределл (Вейе11) разработали другое определение монитора для языка Меаа (1 АМР801.

Их подход позволяет преодолевать описанные проблемы, а кроме того, предоставляет ряд полезных расширений концепции мониторов. Структура монитора Меза использована и в языке программирования Мойи)а-3 (ХЕ1Л9Ц. В языке программирования Меза примитив сз1()пз1 заменен примитивом спосьйу, который интерпретируется следующим образом. Когда процесс, выполняющийся в мониторе, вызывает споь((у (х), об этом оповещается очередь условия х, но выполнение вызвавшего спо" 11у процесса продолжается. Результат оповещения состоит в том, что процесс в начале очереди условия возобновит свою работу в ближайшем будущем, когда монитор окажется свободным.

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

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

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

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