Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 4
Текст из файла (страница 4)
РассмотримРассмотрим основаннуюоснованную нана приоритетахприоритетахмодельдоступакразделяемомуресурсу,когдаболееприоритетныйзапрособращениемодель доступа к разделяемому ресурсу, когда более приоритетный запрос нана обращениек кресурсубудетобработанбыстрее,чемменееприоритетный.Ипустьвэтоймоделиресурсу будет обработан быстрее, чем менее приоритетный. И пусть в этой моделиработаютразные.работаютдвадвапроцесса,процесса,уукоторыхкоторых приоритетыприоритеты доступадоступа кк критическомукритическому ресурсуресурсу разные.Тогда,еслиболееприоритетныйпроцессбудет«часто»выдаватьзапросынаобращениеТогда, если более приоритетный процесс будет «часто» выдавать запросы на обращение ккресурсу,(илиресурсу, можетможет возникнутьвозникнуть ситуация,ситуация, когдакогда второйвторой процесспроцесс будетбудет «вечно»«вечно» (илидостаточнодолго)ожидатьобработкикаждогосвоегозапроса,т.е.этотменеедостаточно долго) ожидать обработки каждого своего запроса, т.е. этот менееприоритетныйприоритетныйпроцесспроцессбудетбудетблокирован.блокирован.
Тупик,Тупик, илиили deadlock,deadlock,—— этоэто ситуация,ситуация, когдакогда (из-за(из-за некорректнойнекорректной организацииорганизациидоступапроцессыдоступа ии разделенияразделения ресурсов)ресурсов) конкурирующиеконкурирующие заза критическийкритический ресурсресурс процессывступаютвклинч—происходитвзаимоблокировка.Рассмотримпримертупиковойвступают в клинч — происходит взаимоблокировка. Рассмотрим пример тупиковойситуацииситуации(Рис.(Рис.92).92).Процесс BПроцесс A 34Процесс ASTOP14STOPДоступ закрыт1STOP32STOP121121Ресурс 1Доступ закрытРесурс 1Процесс BРис.
92. Пример тупиковой ситуации (deadlock).Доступ закрытРесурс 22Доступ закрытРесурс 2Предположим, что есть два процесса A и B, а также пара критических ресурсов.Рис. 92. Примертупиковойситуации(deadlock).Пусть в некоторыймоментвременипроцессA вошел в критическую секцию работы сресурсом 1. Это означает, что доступ любого другого процесса к данному ресурсу будетПредположим,что естьдва закончитпроцесса сA ними B, работать).а также паракритическихресурсов.блокирован(пока процессА неПустьтакже в этовремяПустьвBнекоторыймомент временипроцессA вошелв критическуюработы спроцессвойдет в критическуюсекциюресурса2.
И этотресурс также секциюбудет блокированресурсом1. Этоозначает,что доступдругогоресурсу будетдля доступадругимпроцессам(покалюбогопроцессВ не процессазакончитксданномуним работать).Пустьблокирован(покапроцессАнезакончитснимработать).Пустьтакжеэто времяпроцесс A, не выходя из критической секции ресурса 1, пытается захватить вресурс2.
НопроцессB войдетв критическуюсекцию2. И этотресурс такжеАналогично,будет блокированпоследнийуже захваченпроцессомB, ресурсаи процессA блокируется.пустьдлядоступапроцессампроцессВ не закончитним работать).ПустьпроцессB, недругимосвобождаяресурс (пока2, пытаетсязахватитьресурс 1 ис такжеблокируется.ЭтопроцессA,невыходяизкритическойсекцииресурса1,пытаетсязахватитьресурс2.
Нопример простейшего тупика. В этой ситуации каждый из процессов ожидаетпоследнийуженедостающегозахвачен процессомпроцессA никогдаблокируется.Аналогично,пустьиосвобожденияресурса,B,ноиобаресурсане будутосвобождены,процессB,неосвобождаяресурс2,пытаетсязахватитьресурс1итакжеблокируется.Этопроцессы никогда не смогут выполнить необходимые действия. Соответственно,примерпростейшеготупика.Вэтойситуациикаждыйизпроцессовожидаетрешением в данном случае может быть перезапуск системы или уничтожение обоих илиосвобождениянедостающего ресурса, но оба ресурса никогда не будут освобождены, иодного из процессов.процессы никогда не смогут выполнить необходимые действия. Соответственно,решениемв данномслучаеможет быть взаимногоперезапуск системыили уничтожение обоих или2.4.2Способыорганизацииисключенияодного из процессов.
В этом разделе речь пойдет о средствах, позволяющих организовать работу с2.4.2 Способывзаимногоисключениякритическимиресурсами,организациит.е. организоватьтакой способработы с разделяемым ресурсом,при котором в любой момент времени к нему может иметь доступ не более одногоВ этомразделе речьпойдето средствах,позволяющихорганизовать взаимногоработу спроцесса.В настоящиймоментизвестномножествосредств организациикритическимиресурсами,т.е.организоватьтакойспособработысразделяемымресурсом,исключения, среди которых мы рассмотрим семафоры Дейкстры, мониторы Хоара иприкоторомв любоймомент времени к нему может иметь доступ не более одногоаппаратпередачисообщений.
процесса.Внастоящиймоментмножество средствСемафоры Дейкстры— известноэто формальнаямодель организацииорганизации взаимногодоступа,исключения,которыхмыгг.рассмотримДейкстры,ЭтамониторыХоара ипредложеннаясредив середине60-хголландскимсемафорыученым Дейкстрой.модель базируетсяаппаратпередачиконцепции.сообщений.
Имеется специальный тип данных — т.н. семафор.на следующейСемафоры— этоформальнаямодель организациидоступа,Переменные типа Дейкстрысемафор могутприниматьцелочисленныезначения. Надэтимипредложенная в середине 60-х гг. голландским ученым Дейкстрой. Эта модель базируетсякритическими ресурсами, т.е. организовать такой способ работы с разделяемым ресурсом,при котором вв любойлюбой моментмомент временивремени кк немунему можетможет иметьиметь доступдоступненеболееболееодногоодногопроцесса.
В настоящийнастоящий моментмомент известноизвестно множествомножество средствсредств организацииорганизации взаимноговзаимногоисключения, средисреди которыхкоторых мымы рассмотримрассмотрим семафорысемафорыДейкстры,Дейкстры,мониторымониторыХоараХоараи иаппарат передачипередачи сообщений.сообщений.СемафорыДейкстры —— этоэто формальнаяформальная модельмодель организацииорганизации доступа,доступа,Семафоры Дейкстрыпредложенная вв серединесередине 60-х60-х гг.гг. голландскимголландскимученымученымДейкстрой.Дейкстрой.ЭтаЭтамодельмодельбазируетсябазируетсяна следующейследующей концепции.концепции. ИмеетсяИмеется специальныйспециальный типтип данныхданных—— т.н.т.н.
семафор.семафор.Переменные типатипа семафорсемафор могутмогут приниматьпринимать целочисленныецелочисленные значения.значения. НадНад этимиэтимипеременными определеныопределены следующиеследующие атомарныеатомарные (неделимые)(неделимые) операции:операции: опуститьопуститьсемафор down(S)down(S) (или(или P(S))P(S)) ии поднятьподнять семафорсемафор up(S)up(S) (или(или V(S)).V(S)). ОригинальныеОригинальныеобозначения PP ии V,V, данныеданные ДейкстройДейкстрой ии получившиеполучившие широкоеширокое распространениераспространение в влитературе, являютсяявляются сокращениямисокращениями голландскихголландских словслов proberenproberen—— проверитьпроверить и иverhogen — увеличить.увеличить.
ОперацияОперация down(S)down(S) проверяетпроверяет значениезначение семафорасемафора SS и,и,еслиеслионоонобольшебольшенуля,нуля,тотоуменьшает егоего нана 1.1. ЕслиЕсли жеже этоэто нене так,так, процесспроцесс блокируется,блокируется, причемпричемсвязаннаясвязаннаяс сзаблокированнымпроцессомоперацияdownсчитаетсянезавершенной.заблокированным процессом операция down считается незавершенной.ОперацияОперация up(S)up(S) увеличиваетувеличивает значениезначение семафорасемафора нана 1.1.ПриПриэтомэтомеслиеслив всистемесистемеприсутствуют процессы,процессы, блокированныеблокированные ранееранееприпривыполнениивыполненииdowndownнанаэтомэтомсемафоре,семафоре,то один из нихних разблокируетсяразблокируется ии завершаетзавершает выполнениевыполнение операцииоперации down,down,т.е.т.е.вновьвновьуменьшает значениезначение семафора.семафора.
УвеличениеУвеличение значениязначения семафорасемафора и,и, возможно,возможно, разблокирование одного из процессов и уменьшение значения являются атомарнойразблокированиеодногоизпроцессовиуменьшениезначенияявляютсяатомарнойразблокированиеодногоиз процессови уменьшениезначенияатомарной122122неделимойоперацией.Выборпроцесса дляразблокированияникакявляютсяне оговаривается.неделимой операцией.операцией. ВыборВыбор процессапроцесса длядля разблокированияразблокированияникакникакненеоговаривается.оговаривается.Ещё раз отметим, что операции up и down являются атомарными (неделимыми),отметим, чточто операцииоперации upup и downdown являютсяявляются атомарнымиатомарными(неделимыми),(неделимыми),Ещёраз отметим,т.е.не можетможетбытьбытьпрерванопрерваноипрерыванием.прерыванием.т.е.
ихих выполнениевыполнение неможет быть прервано прерыванием. Для иллюстрациииллюстрации рассмотренногорассмотренного механизмамеханизма приведемприведем следующийследующийпример.пример.Для иллюстрациирассмотренного механизмаприведем следующийпример.Рассмотримнекий универсам.универсам. ВходВход вв торговыйторговый залзал магазинамагазинавозможенвозможенлишьлишьдлядляРассмотрим некийуниверсам. Входв торговый залмагазина возможенлишь дляпосетителей,имеющихтележку.ВмагазинеимеетсяNтележек.Итак,вначальныйпосетителей, имеющихимеющих тележку.тележку. ВВ магазинемагазине имеетсяимеется NN тележек.тележек.