Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 3
Текст из файла (страница 3)
по91).Пустьимеетсянекотораяобщаяресурсов,возникаетцелыйрядновыхновыхпроблем,посравнениюсравнениюоднопроцесснымvoid Рассмотримecho()Приорганизациимногопроцессноговзаимодействияииспользованияразделяемыхресурсов,возникаетцелыйрядновыхпроблем,посравнениюсоднопроцесснымпрограммированием.Главнымэтисвязаныпеременная(разделяемыйресурс)образом,inобразом,и два процесса,которые работаютпеременной.{программированием.Главнымэти проблемыпроблемысвязаны с этойс обеспечениемобеспечениемпрограммированием.образом,этипроблемысвязаныс однопроцесснымобеспечениемресурсов,целыйрядновыхпроблем,попеременнойсравнениюcharвозникаетin;корректногодоступакГлавнымресурсам.ВыделяютдвеважнейшиезадачиПустьв некоторыймоментвременипроцессA присвоилinсзначениеX.
ОС:Затемкорректногодоступакразделяемымразделяемымресурсам.ВыделяютдвеважнейшиезадачиОС:input(in);корректногодоступакразделяемымресурсам.ВыделяютдвеважнейшиезадачиОС:программированием.Главнымобразом,этипроблемысвязанысобеспечениемресурсовмеждупроцессамииорганизациякорректногодоступа(т.е.враспределениенекоторыймоментпроцессBприсвоилзначениеYэтойжепеременнойin.Далееобараспределение ресурсов между процессами и организация корректного доступа (т.е.output(in);ПроцессAПроцессBраспределениересурсовмеждупроцессамииорганизациякорректногодоступа(т.е.корректногодоступакразделяемымресурсам.ВыделяютдвеважнейшиезадачиОС:организациязащитыресурсов,выделенныхопределенномупроцессу,отпроцессачитают защитыэту переменную,и в обоихслучаях процессыпрочтут процессу,значение Y.
отТоорганизацияресурсов,выделенныхопределенному}XY подinput(in);организациязащитыресурсов,выделенныхопределенномупроцессу,отнеконтролируемогодоступасосо процессамистороныдругихпроцессов).ВаВсимвол,частности,распределениересурсовмеждуи организациякорректногодоступа(т.е.естьв этом случаесимвол,считанныйпроцессомА, былпотерян,считанныйнеконтролируемогодоступастороныдругихпроцессов).частности,подinput(in);неконтролируемогодоступаресурсов,со стороныдругихпроцессов).В декларирующеечастности,организациейкорректногодоступаможетпониматьсятребование,организациязащитывыделенныхопределенномупроцессу,процессомВ, былвыведендважды.Результатвыполненияпроцессовздесьзависитподоторганизациейкорректногодоступаможетпониматьсятребование,декларирующееoutput(in);организациейкорректногодоступаможетпониматьсятребование,декларирующеенеобходимостьобеспечениянезависимостиработыпараллельныхпроцессовотпорядкаитого,в какой моментосуществляетсяпроцессов,и отпроцессовтого,необходимостьобеспечениянезависимостиработыпараллельныхот конкретнопорядкаинеконтролируемогодоступасо переключениестороныдругихпроцессов).В какойчастности,подYoutput(in);необходимостьобеспечениянезависимостиработыпараллельныхпроцессовоттребованиепорядка иYинтенсивностиэтихпроцессовресурсам.интенсивностидоступаэтихпроцессовразделяемымресурсам.процессбудетдоступавыбранследующимдлявыполнения.Такимобразом,организациейкорректногодоступак кразделяемымможетпониматьсятребование,декларирующееинтенсивностидоступаэтихпроцессовкпримерразделяемымресурсам.Рассмотримсоответствующийпример(Рис.ПустьнекотораяобщаяРассмотримсоответствующий(Рис.91).91).Пустьимеетсяимеетсянекотораяобщаянезависимостиработыпараллельныхпроцессовнарушается.Такиеситуация,когданеобходимостьобеспечениянезависимостиработыпараллельныхпроцессовот порядкаиРассмотримсоответствующийпример(Рис.91).Пустьимеетсянекотораяобщаяпеременная(разделяемыйресурс)inидвапроцесса,которыеработаютсэтойпеременной.переменная(разделяемыйресурс)in и двапроцесса, которыеработают с этой переменной.интенсивностидоступа этихпроцессовк разделяемымресурсам.переменная(разделяемыйресурс)inпроцессипроцессдвапроцесса,которыеработаютс значениеэтойпеременной.ПустьмоментAAприсвоилпеременнойininзначениеX.X.ЗатемПустьв внекоторыйнекоторыймоментвремениприсвоилпеременнойЗатемпроцессыконкурируютзавремениразделяемыйресурс,гонкойпроцессов(raceРассмотримсоответствующийпример(Рис.называются91).Пустьимеетсянекотораяобщая120Рис.91.Примергонкипроцессов.вconditions).моментпроцессB BприсвоилзначениеYYэтойжежепеременнойin.in.ДалееобаПустьв некоторыймоментвременипроцессA присвоилпеременнойin значениеX.
ЗатемвнекоторыйнекоторыймоментпроцессприсвоилзначениеэтойпеременнойДалееобапеременная (разделяемый ресурс) in и два процесса, которые работают с этой переменной.читаютэтупеременную,ивобоихслучаяхпроцессыпрочтутзначениеY.ТовпроцессанекоторыймоментпроцессBприсвоилзначениеYэтойжепеременнойin.Далееобапроцессачитаютэтупеременную,ивобоихслучаяхпроцессыпрочтутзначениеY.ТоvoidЕдинственныйecho()Пустьв некоторый моментвремениA присвоилпеременнойin значениеX.
Затемспособсчитанныйизбежатьпроцессгонокприиспользованииразделяемыхресурсов—естьвэтомслучаесимвол,процессомА,былпотерян,асимвол,считанныйпроцессачитаютэту символ,переменную,и в обоихслучаяхпроцессыпрочтутзначениеY. То{ в этоместьслучаесчитанныйпроцессомА, былпотерян,а символ,считанныйвнекоторыймоментпроцессBприсвоилзначениеYэтойжепеременнойin.Далееобаконтролироватьдоступклюбымразделяемымресурсамвсистеме.Приэтомнеобходимоcharin;процессомВ,дважды.выполненияпроцессовздесьестьв этомслучаесимвол,процессомА, был потерян,а символ,считанныйпроцессомВ,былбылвыведенвыведенсчитанныйдважды.РезультатРезультатвыполненияпроцессовздесьзависитзависитототорганизоватьвзаимноеисключение переключение—вт.е.такойспособработыс разделяемымресурсом,процессачитаютэтупеременную,обоихслучаяхпроцессыпрочтутзначениеY.
отТоinput(in);того,осуществляетсяпроцессов,и иотпроцессомВ,моментбылвыведендважды. иРезультатвыполненияпроцессовздесьзависиттого,в вкакойкакоймоментосуществляетсяпереключениепроцессов,оттого,того,какойкакойконкретноконкретноoutput(in);прикоторомпостулируется,чтовтотмомент,когдаодинизпроцессовработаетсестьвэтомслучаесимвол,считанныйпроцессомА,былпотерян,асимвол,считанныйПроцессAпроцессов,ПроцессB какойпроцессбудетвыбранследующимдлявыполнения.Такимтребованиетого,в какоймоментосуществляетсяпереключениеи отобразом,того,конкретнопроцессбудетвыбранследующимдлявыполнения.Такимобразом,требование}разделяемымресурсом,всеостальныепроцессынемогутиметькнемудоступ.ПроблемуX дважды.
input(in);YкогдапроцессомВ, работыбылвыведенРезультатвыполненияпроцессовздесьтребованиезависитотнезависимостипараллельныхпроцессовнарушается.Такиеситуация,независимостиработыпараллельныхпроцессовнарушается.Такиеситуация,когдапроцессбудетвыбранследующимдлявыполнения.Такимобразом,организациивзаимногоисключения можносформулироватьв болееобщемвиде:задачаinput(in);того,вкакоймоментосуществляетсяпереключениепроцессов,иоттого,какойконкретнонезависимости работы параллельных процессов нарушается.
Такие ситуация, когдавзаимногосводитсяк тому, чтобыне допускатьситуации,когда дватребованиепроцессаoutput(in);процесс исключениябудет выбранследующимдля выполнения.Таким образом,Y120120одновременнонаходятсявкритическихсекциях,связанныхсоднимитемжересурсом.output(in);независимости работы параллельныхпроцессов нарушается. Такие ситуация, когдаYЗаметим, что вопрос организации взаимного120 исключения актуален не только длявзаимосвязанных процессов, совместно использующих определенные ресурсы для120обмена информацией.
Выше отмечалось, что возможнаситуация, когда процессы, неподозревающиео существованиидруг друга, используют глобальные ресурсы системы,Рис. 91.Пример гонки процессов.такие как устройства ввода/вывода, принтеры и т.п. В этом случае имеет местоЕдинственныйспособизбежатьгоноктакжепри использованииразделяемыхпоресурсов—конкуренцияза ресурсы,доступк которымдолжен быть организованпринципувзаимногоисключения.контролироватьдоступ к любым разделяемым ресурсам в системе.
При этом необходимоДля организациимодели взаимногоразличныересурсом,моделиорганизоватьвзаимное исключение— т.е. исключениятакой способиспользуютсяработы с разделяемымсинхронизации.Преждечемрассматриватьэтимодели,необходимоотметитьпри котором постулируется, что в тот момент, когда один из процессов работаеттеспроблемы,которыемогутвозникать процессыпри организацииисключения,— эторазделяемымресурсом,все остальныене могут взаимногоиметь к немудоступ. Проблемублокировкитупики. исключения можно сформулировать в более общем виде: задачаорганизациии взаимного обмена информацией.
Выше отмечалось, что возможна ситуация, когда процессы, необмена информацией. Выше отмечалось, что возможна ситуация, когда процессы, неподозревающие о существовании друг друга, используют глобальные ресурсы системы,подозревающие о существовании друг друга, используют глобальные ресурсы системы,такие как устройства ввода/вывода, принтеры и т.п.
В этом случае имеет местотакие как устройства ввода/вывода, принтеры и т.п. В этом случае имеет местоконкуренция за ресурсы, доступ к которым также должен быть организован по принципуконкуренция за ресурсы, доступ к которым также должен быть организован по принципувзаимного исключения.взаимного исключения.Для организации модели взаимного исключения используются различные моделиДля организации модели взаимного исключения используются различные моделисинхронизации. Прежде чем рассматривать эти модели, необходимо отметить тесинхронизации. Прежде чем рассматривать эти модели, необходимо отметить тепроблемы,которые могут возникать при организации взаимного исключения, — этопроблемы, которые могут возникать при организации взаимного исключения, — этоблокировкиблокировкииитупики.тупики.Блокировкаодного изизБлокировка—— этоэто ситуация,ситуация, когдакогда доступдоступ кк разделяемомуразделяемому ресурсуресурсу одноговзаимодействующихпроцессовнеобеспечиваетсяиз-заактивностидругих,болеевзаимодействующих процессов не обеспечивается из-за активности других, болееприоритетныхприоритетныхпроцессов.процессов.ОтметимОтметим следующее.следующее.