если процесс уже получивший какой либо ресурс и не освобождая его

Машинно-независимые свойства операционных систем

· защищенность и отказоустойчивость

Работа с файлами

Файловая система

Сами программы и данные для их работы хранятся на различных носителях. Способ организации данных на носителе называется файловой системой.

Файл — именованная область данных на носителе, хранящая некоторый массив информации.

Каждый файл занимает некоторое пространство на носителе, объем которого называют размером файла.

По типу хранимых данных различают:

· служебные файлы и др.

Характеристики файла в рамках конкретной файловой системы называются атрибутами файла. К атрибутам относят:

· дату и время создания файла;

· права доступа к файлу.

Для удобства хранения данных существует класс служебных файлов, называемых папками, или каталогами.

Каталог (папка, директория) — сущность в файловой системе, упрощающая организацию файлов. Это некий массив файлов, сгруппированных по какому-либо признаку, имеющий собственное имя.

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

Ярлык — это тип служебного файла, который хранит путь к файлу и при вызове открывает сам файл. Ярлыки используются для ускорения доступа к файлам или во избежание ненужного дублирования данных.

В зависимости от типа носителя выделяют различные файловые системы. К примеру, для дисковых и flash-накопителей используются файловые системы FAT, NTFS, UFS, EXT2/3. А для компакт-дисков принято использовать файловые системы ISO 9660 или UDF. Каждый из стандартов на файловую систему соответствует определенным требованиям, предъявляемым к хранению данных на конкретном типе носителя. Очевидно, что требования к хранению данных с точки зрения операционной системы и пользователя различны в зависимости от типа носителя и объема данных, подлежащих хранению. Например, файловые системы дисковых накопителей должны обеспечивать механизмы обеспечения целостности данных в условиях постоянного выполнения операций чтения-записи данных сравнительно большим количеством процессов. В то же время от файловой системы для компакт-дисков требуется обеспечение простого доступа к данным на большом количестве различного оборудования, в том числе и бытового. Никто не ждет от жесткого диска легкости подключения к бытовому DVD-плееру, в то время как неработоспособность DVD-видеодиска воспринимается как из ряда вон выходящее событие.

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

Форматирование диска — операция по подготовке логического диска к использованию файловой системы. При форматировании логический диск разбивается на блоки фиксированного размера, именуемые кластерами. Размер кластера зависит от конкретной файловой системы и может варьироваться от 512 байт до нескольких килобайт. Размер кластера влияет, с одной стороны, на быстродействие операций чтения-записи данных, а с другой стороны, на объем потерь дискового пространства. Чем меньше размер кластера, тем больше их количество и тем больше времени занимает поиск нужного кластера для чтения части или целого файла. Но, с другой стороны, в современных файловых системах существует ограничение следующего рода: каждый файл занимает минимум один кластер. Из этого правила неявным образом следует, что при размере файла, меньшем размера кластера, файл, тем не менее, занимает весь кластер. Поэтому необходимо выбирать размер кластера таким образом, чтобы избежать потерь дискового пространства при хранении большого количества мелких файлов. Ситуация осложняется тем, что без повторного форматирования изменение размера кластера невозможно. Поэтому, в зависимости от емкости логического диска, операционная система выбирает размер кластера таким образом, чтобы свести к минимуму потери дискового пространства, сохраняя при этом некоторый уровень быстродействия операций чтения-записи данных.

Управление ресурсами

Для реализации функций управления ресурсами в ОС формируются информационные таблицы, в которых отражаются следующие основные данные:

• учетная информация о ресурсе (идентификатор, класс, количество каналов и т.п.);

• код состояния ресурса;

• идентификатор процесса-владельца и т.п

для заявок на ресурсы:

• идентификатор и требуемый объем ресурса и т.п.

В ходе организации использования ресурсов формируются таблицы, в которых указываются списки распределенных и свободных ресурсов, связи между ресурсами и процессами.

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

Для реализации функций управления ресурсами операционная система осуществляет постоянный учет их наличия и состояния. В современных ОС наиболее употребительным является идентификация ресурса с помощью файла его описания.

В рамках проблемы управления вычислительными ресурсами необходимо решать две задачи:

1) планирование ресурса – определение, кому, когда и в каком количестве необходимо выделить данный ресурс;

2) отслеживание состояния ресурса, то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов — какое количество ресурса уже распределено.

Вычислительные ресурсы можно разделить на две категории — выгружаемые и невыгружаемые ресурсы. Ресурс считается выгружаемым, если его можно во время работы процесса-владельца передать другому процессу без ущерба для процесса-владельца. Память является выгружаемым ресурсом. А вот устройство записи компакт-дисков является невыгружаемым ресурсом.

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

С точки зрения операционной системы использование ресурса можно разделить на три этапа: запрос, использование и возврат ресурса. Для каждого из этих этапов должны существовать определенные механизмы защиты процессов от взаимоблокировки. Если процесс запрашивает ресурс, который в данный момент уже используется другим процессом, то процесс попадает в короткий цикл: запрос ресурса, отказ, ожидание. Механизм использования ресурсов различен в разных операционных системах. В одних системах существует специальный системный вызов, который позволяет процессам в явном виде запрашивать использование ресурса. В других системах каждому ресурсу сопоставлен файл или канал, посредством которого процесс может использовать ресурс. Концепция каналов широко распространена в UNIX-системах.

Для возникновения взаимоблокировки должны выполняться все (!) следующие условия:

· взаимное исключение — каждый ресурс либо доступен, либо используется одним процессом;

· удержание и ожидание — процесс, уже получивший какой-либо ресурс, не освобождая его, запрашивает новый ресурс;

· отсутствие принудительной выгрузки ресурса — отсутствует механизм принудительного освобождения ресурсов у занимающих их процессов;

· циклическое ожидание — каждый из процессов в системе ожидает освобождения ресурса, занятого другим процессом.

При решении данной проблемы можно использовать любой из следующих подходов:

· реакция на возникшую взаимоблокировку;

· аккуратное управление ресурсами;

· структурное опровержение каждого из условий для предотвращения возникновения взаимоблокировок.

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

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

Предотвращение взаимоблокировок возможно, когда вероятность каждого из необходимых условий сведена к минимуму. Первое условие может быть заблокировано путем принудительного ограничения числа процессов-претендентов на каждый ресурс. Второе условие блокируется, если обязать процессы резервировать все ресурсы перед выполнением. Если какой-либо ресурс недоступен, процессу отказывают в исполнении до тех пор, пока ресурс не освободится. Недостаток этого способа в том, что процесс зачастую не знает, сколько и каких ресурсов ему понадобится в каждый момент времени исполнения. Из этого следует также тот факт, что ресурсы при таком подходе будут использоваться неэффективно. Третье условие блокировке не поддается, потому что может привести к самым непредсказуемым последствиям вплоть до поломки оборудования. Четвертое условие поддается блокировке сравнительно простым способом. Для этого необходимо определить порядок использования ресурсов процессами во избежание заведомо тупиковых ситуаций. К примеру, процесс не может обратиться к принтеру, не прочитав данные с диска, или процесс не может осуществлять запись на диск, не получив предварительно данные с другого устройства.

Планирование заданий

Задание — задача, которая решается на данной аппаратной платформе при помощи некоторого приложения.

Основываясь на материале предыдущей темы, можно сказать, что процесс есть проекция задания на конкретную аппаратную платформу. Если речь идет о промышленных системах, то роль операционной системы исполняет само приложение, решающее задачу. И в этом случае проблема планирования заданий не возникает в принципе, ибо все вычислительные ресурсы системы направлены только на решение этой задачи с максимальной эффективностью. В традиционных же системах — на домашних компьютерах или же на рабочих станциях — одновременного решения требует множество задач, каждая из которых решается не одной программой, а целым программным комплексом. Поэтому задача планирования заданий носит более глобальный характер и, как правило, слабо ориентирована на конкретную конфигурацию аппаратного обеспечения. Грубо говоря, если в рамках решения задачи требуется использование параллельных вычислений, то, независимо от того, сколько процессоров установлено на данный момент в системе, эта необходимость будет реализована тем или иным методом, в зависимости от механизма планирования процессов, который может быть осуществлен на данной аппаратной платформе.

Механизм планирования заданий определяет облик операционной системы в целом, ее парадигму, а механизм планирования процессов отвечает за работу операционной системы на конкретном аппаратном обеспечении, и его тип определяется на этапе установки операционной системы на данную аппаратную платформу. Задача планирования заданий, таким образом, сводится к необходимости планирования, в какой момент времени какому процессу, отвечающему за некоторый этап решения задачи, какое количество процессорного времени необходимо выделить.

На данный момент существует два класса операционных систем, кардинально различающихся по подходу к задаче планирования заданий, — операционные системы разделения времени и операционные системы реального времени. Системы первого класса каждому заданию выделяют столько времени, сколько нужно, чтобы создать и поддерживать иллюзию монопольной работы в системе. К данному классу относятся операционные системы для домашнего использования или для рабочих станций. Системы второго класса спроектированы для задач, на время решения которых существует жесткое ограничение. Такова, к примеру, задача управления транспортными потоками города, в рамках которой необходимо планировать режимы работы всех светофоров на всех перекрестках таким образом, чтобы не возникало заторов.

Таким образом, можно сделать заключение, что:

· на этапе планирования заданий операционная система определяет, на какой этап решения задачи сколько процессорного времени выделять;

· на этапе планирования процессов — сколько и каких ресурсов выделять конкретным процессам в соответствии с приоритетом заданий и самих процессов;

· на этапе планирования ресурсов — как спланировать использование ресурсов с учетом потребностей всех процессов с максимальной эффективностью.

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Источник

Если процесс уже получивший какой либо ресурс и не освобождая его

рТПГЕУУПТОПЕ ЧТЕНС Й ПРЕТБФЙЧОБС РБНСФШ СЧМСАФУС ЛМАЮЕЧЩНЙ ТЕУХТУБНЙ МАВПК пу, ВЕЪ ОЙИ ОЕ НПЦЕФ ЧЩРПМОСФШУС ОЙ ПДЙО РТПГЕУУ. тЕУХТУЩ, ЛПФПТЩЕ НЩ ТБУУНБФТЙЧБЕН Ч ЬФПК ЗМБЧЕ, СЧМСАФУС НПОПРПМШОП ЙУРПМШЪХЕНЩНЙ: ОЕРЕТЕТБУРТЕДЕМСЕНЩНЙ Й ОЕТБЪДЕМСЕНЩНЙ. уЧПКУФЧП ОЕРЕТЕТБУРТЕДЕМСЕНПУФЙ ПЪОБЮБЕФ, ЮФП ТЕУХТУ ОЕ НПЦЕФ ВЩФШ ПФПВТБО Х РТПГЕУУБ ЧП ЧТЕНС ЕЗП ЙУРПМШЪПЧБОЙС. рТЕДУФБЧШФЕ УЕВЕ, ЮФП РТПГЕУУ ЧЩЧПДЙФ РМБФЕЦОХА ЧЕДПНПУФШ ОБ РТЙОФЕТ. еУМЙ НЩ Ч УЕТЕДЙОЕ РЕЮБФЙ ПФВЕТЕН Х РТПГЕУУБ ТЕУХТУ-РТЙОФЕТ Й ПФДБДЙН ЕЗП ДТХЗПНХ РТПГЕУУХ, ФП ЛПЗДБ РЕТЧЩК РТПГЕУУ ЧОПЧШ ПВТЕФЕФ ЬФПФ ТЕУХТУ, ЕНХ РТЙДЕФУС ОБЮБФШ РЕЮБФШ УОБЮБМБ. лБЛ НЩ ХЧЙДЙН ДБМШЫЕ, ОЕПФВЙТБЕНЩИ ТЕУХТУПЧ Ч УЙУФЕНЕ ВЩФШ ОЕ ДПМЦОП, РПЬФПНХ ХФПЮОЙН РПОСФЙЕ ОЕРЕТЕТБУРТЕДЕМСЕНПУФЙ: ТЕУХТУ ОЕ НПЦЕФ ВЩФШ ПФПВТБО ВЕЪ ЖБФБМШОЩИ ДМС РТПГЕУУБ РПУМЕДУФЧЙК. оБ ФПН ЦЕ РТЙНЕТЕ РЕЮБФЙ РПСУОЙН РПОСФЙЕ ОЕТБЪДЕМСЕНПУФЙ: ДЧБ РТПГЕУУБ ОЕ НПЗХФ ЧЩЧПДЙФШ ДБООЩЕ ОБ ПДЙО Й ФПФ ЦЕ РТЙОФЕТ ПДОПЧТЕНЕООП. тЕУХТУЩ РТПГЕУУПТОПЗП ЧТЕНЕОЙ Й РБНСФЙ, ЛБЛ НЩ ХЧЙДЕМЙ ЧЩЫЕ, УЧПКУФЧБНЙ ОЕРЕТЕТБУРТЕДЕМСЕНПУФЙ Й ОЕТБЪДЕМСЕНПУФЙ ОЕ ПВМБДБАФ.

тЕУХТУЩ, ЛПФПТЩЕ НЩ ТБУУНБФТЙЧБЕН, СЧМСАФУС ФБЛЦЕ РПЧФПТОП ЙУРПМШЪХЕНЩНЙ. ьФП ПЪОБЮБЕФ, ЮФП ТЕУХТУЩ РПУМЕ ЙИ ЙУРПМШЪПЧБОЙС РТПГЕУУБНЙ ОЕ РТПРБДБАФ Й ОЕ ХВЩЧБАФ, Б НПЗХФ ВЩФШ ЙУРПМШЪПЧБОЩ ДТХЗЙН РТПГЕУУПН. бМШФЕТОБФЙЧХ ЙН УПУФБЧМСАФ РПФТЕВМСЕНЩЕ ТЕУХТУЩ, ЛПФПТЩНЙ ЮБЭЕ ЧУЕЗП НПЗХФ ВЩФШ ЧИПДОЩЕ ДБООЩЕ Й УППВЭЕОЙС, РПУФХРБАЭЙЕ Ч РТПГЕУУ ЙЪЧОЕ.

нЩ ВХДЕН ОБЪЩЧБФШ ЛМБУУПН ТЕУХТУБ РХМ ЙДЕОФЙЮОЩИ ОЕЙНЕОПЧБООЩИ ЕДЙОЙГ ТЕУХТУБ. оЕЙНЕОПЧБООЩНЙ НЩ УЮЙФБЕН ЙИ Ч ФПН УНЩУМЕ, ЮФП РТПГЕУУ РТЙ ЪБРТПУЕ ТЕУХТУБ ОЕ ХЛБЪЩЧБЕФ, ЛБЛХА ЙНЕООП ЕДЙОЙГХ ЙЪ РХМБ ПО ИПЮЕФ РПМХЮЙФШ, ЧУЕ ЕДЙОЙГЩ ТЕУХТУБ ПДЙОБЛПЧЩ. чУЕ ТЕУХТУЩ ПДОПЗП ЛМБУУБ ХРТБЧМСАФУС ПДОЙН НЕОЕДЦЕТПН.

рЕТЧЩК ЧЩЪПЧ ЧЩДЕМСЕФ РТПГЕУУХ number ТЕУХТУПЧ ЙЪ ЛМБУУБ class Й ЧПЪЧТБЭБЕФ НБОЙРХМСФПТ ( handle ) ЧЩДЕМЕООПЗП ТЕУХТУБ, ЛПФПТЩК РТЙ ЧУЕИ ДБМШОЕКЫЙИ ПРЕТБГЙСИ РТПГЕУУБ У ТЕУХТУПН УМХЦЙФ ДМС ЙДЕОФЙЖЙЛБГЙЙ ТЕУХТУБ. нБОЙРХМСФПТ ЛБЛЙН-ФП ПВТБЪПН БДТЕУХЕФ ДЕУЛТЙРФПТ ТЕУХТУБ. ч ЪБЭЙЭЕООЩИ УЙУФЕНБИ ФБЛПК ДЕУЛТЙРФПТ ТБУРПМБЗБЕФУС Ч ОЕДПУФХРОПН ДМС РТПГЕУУБ БДТЕУОПН РТПУФТБОУФЧЕ. нБОЙРХМСФПТ ПВЩЮОП СЧМСЕФУС ОПНЕТПН Ч УЙУФЕНОПК ФБВМЙГЕ ЙМЙ УРЙУЛЕ ДЕУЛТЙРФПТПЧ, Й РП ОЕНХ СДТП (ОП ОЕ РТПГЕУУ) ЧЩВЙТБЕФ ФТЕВХЕНЩК ДЕУЛТЙРФПТ ТЕУХТУБ.

дМС ЛБЦДПК ЕДЙОЙГЩ ТЕУХТУБ ЙНЕЕФУС ЪБРЙУШ Ч ФБВМЙГЕ ЕДЙОЙГ, УПДЕТЦБЭБС, ЛБЛ НЙОЙНХН, ЙОДЙЛБФПТ ЪБОСФПУФЙ ТЕУХТУБ Й ЙДЕОФЙЖЙЛБФПТ РТПГЕУУБ, ЛПФПТПНХ ТЕУХТУ ТБУРТЕДЕМЕО (ЕУМЙ ПО ОЕ УЧПВПДЕО).

нБОЙРХМСФПТ ТЕУХТУБ ЛБЛЙН-ФП ПВТБЪПН БДТЕУХЕФ ДЕУЛТЙРФПТ ТЕУХТУБ. ч ЪБЭЙЭЕООЩИ УЙУФЕНБИ УБН ДЕУЛТЙРФПТ ТЕУХТУБ ТБУРПМБЗБЕФУС Ч БДТЕУОПН РТПУФТБОУФЧЕ, ОЕДПУФХРОПН ДМС РТПГЕУУБ. нБОЙРХМСФПТ РТЕДУФБЧМСЕФ УПВПК ОПНЕТ ДЕУЛТЙРФПТБ Ч УЙУФЕНОПК ФБВМЙГЕ ЙМЙ Ч УЙУФЕНОПН УРЙУЛЕ ДЕУЛТЙРФПТПЧ ТЕУХТУПЧ ДБООПЗП ФЙРБ. рТЙ ЧЩРПМОЕОЙЙ УЙУФЕНОПЗП ЧЩЪПЧБ, РБТБНЕФТПН ЛПФПТПЗП СЧМСЕФУС НБОЙРХМСФПТ ТЕУХТУБ, РТПЙУИПДЙФ РЕТЕЛМАЮЕОЙЕ Ч ЛПОФЕЛУФ СДТБ, ДМС НПДХМС пу, ЧЩРПМОСАЭЕЗП УЙУФЕНОЩК ЧЩЪПЧ, ФБВМЙГБ ДЕУЛТЙРФПТПЧ УФБОПЧЙФУС ОЕРПУТЕДУФЧЕООП ДПУФХРОПК, Й ЬФПФ НПДХМШ ЧЩРПМОСЕФ ДЕКУФЧЙС ОБД ДЕУЛТЙРФПТПН, ОПНЕТ ЛПФПТПЗП ПО РПМХЮЙМ Ч ЛБЮЕУФЧЕ РБТБНЕФТБ.

йОЖПТНБГЙС П ТЕУХТУБИ, ЧЩДЕМЕООЩИ РТПГЕУУХ, ИТБОЙФУС ФБЛЦЕ Ч ВМПЛЕ ЛПОФЕЛУФБ РТПГЕУУБ.

5.2. пВЕДБАЭЙЕ ЖЙМПУПЖЩ

лМБУУЙЮЕУЛПК ХЦЕ УФБМБ ОЕЖПТНБМШОБС РПУФБОПЧЛБ ЪБДБЮЙ ТБУРТЕДЕМЕОЙС ТЕУХТУПЧ, ОПУСЭБС ОБЪЧБОЙЕ «РТПВМЕНЩ ПВЕДБАЭЙИ ЖЙМПУПЖПЧ» Й РПЛБЪБООБС ОБ тЙУХОЛЕ 5.1.

тЙУ.5.1. пВЕДБАЭЙЕ ЖЙМПУПЖЩ. фХРЙЛ

еУМЙ ЦЕ НЩ ХУФБОПЧЙН, ЮФП ЖЙМПУПЖ ДПМЦЕО ЧЪСФШ ПВЕ РБМПЮЛЙ УТБЪХ, ФП НПЦЕФ ЧПЪОЙЛОХФШ УЙФХБГЙС, РПЛБЪБООБС ОБ тЙУ.5.2. жЙМПУПЖ юЦХБО ИПЮЕФ ЧЪСФШ РБМПЮЛЙ, ОП ПВОБТХЦЙЧБЕФ, ЮФП ЕЗП РТБЧБС РБМПЮЛБ ЪБОСФБ ЖЙМПУПЖПН нП. юЦХБО ПЦЙДБЕФ. фЕН ЧТЕНЕОЕН ЖЙМПУПЖ нЬО ВЕТЕФ УЧПЙ РБМПЮЛЙ Й ОБЮЙОБЕФ ЕУФШ. нП ЕУФШ ЪБЛБОЮЙЧБЕФ, ОП юЦХБО ОЕ НПЦЕФ ОБЮБФШ ЕУФШ, ФБЛ ЛБЛ ФЕРЕТШ ЪБОСФБ ЕЗП МЕЧБС РБМПЮЛБ. еУМЙ нП Й нЬО ЕДСФ РПРЕТЕНЕООП, ФП юЦХБО РПРБДБЕФ Ч РПМПЦЕОЙЕ, ЛПФПТПЕ ОБЪЩЧБЕФУС ЗПМПДБОЙЕН (starvation) ЙМЙ ВЕУЛПОЕЮОЩН ПФЛМБДЩЧБОЙЕН.

тЙУ.5.2. пВЕДБАЭЙЕ ЖЙМПУПЖЩ. вЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ

фХРЙЛ РТЕДУФБЧМСЕФ УПВПК УЙФХБГЙА ВПМЕЕ ПРБУОХА, ЮЕН ВЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ: РТПГЕУУЩ, РПРБЧЫЙЕ Ч ФХРЙЛ, ХДЕТЦЙЧБАФ РТЙ ЬФПН УЙУФЕНОЩЕ ТЕУХТУЩ. дБЦЕ ЕУМЙ ФХРЙЛ ОЕ ЗМПВБМШОЩК, УЙУФЕНБ РТПДПМЦБЕФ ТБВПФБФШ У ХНЕОШЫЕООЩН ПВЯЕНПН ТЕУХТУПЧ, УМЕДПЧБФЕМШОП, У РПОЙЦЕООПК РТПЙЪЧПДЙФЕМШОПУФША. вЕУЛПОЕЮОПЕ ЦЕ ПФЛМБДЩЧБОЙЕ ПДОПЗП ЙМЙ ОЕУЛПМШЛЙИ РТПГЕУУПЧ НПЦЕФ Й ОЕ РПЧМЙСФШ ОБ УТЕДОАА РТПРХУЛОХА УРПУПВОПУФШ УЙУФЕНЩ, ОП, ЛПОЕЮОП ЦЕ, ЧМЙСЕФ ОБ РПЛБЪБФЕМЙ УРТБЧЕДМЙЧПУФЙ ПВУМХЦЙЧБОЙС.

5.3. фХРЙЛЙ: РТЕДХРТЕЦДЕОЙЕ, ПВОБТХЦЕОЙЕ, ТБЪЧСЪЛБ

ч ТБНЛБИ ЪБМРПЧПК УФТБФЕЗЙЙ ЧПЪНПЦОЩ ДЧБ ЧБТЙБОФБ: ЧЩДЕМСФШ ЧУЕ ТЕУХТУЩ РТЙ УПЪДБОЙЙ РТПГЕУУБ Й ПУЧПВПЦДБФШ РТЙ ЕЗП ЪБЧЕТЫЕОЙЙ ЙМЙ ЦЕ РПЪЧПМЙФШ РТПГЕУУХ ЪБРТБЫЙЧБФШ/ПУЧПВПЦДБФШ ТЕУХТУЩ ОЕУЛПМШЛП ТБЪ Ч ИПДЕ УЧПЕЗП ЧЩРПМОЕОЙС (ОП ПВСЪБФЕМШОП ЧУЕ «ЪБМРПН»). пЮЕЧЙДОП, ЮФП ЧФПТПК ЧБТЙБОФ ВПМЕЕ МЙВЕТБМШОЩК, ФБЛ ЛБЛ ПО РПЪЧПМСЕФ ХНЕОШЫЙФШ ЙОФЕТЧБМ ЧТЕНЕОЙ ХДЕТЦЙЧБОЙС ТЕУХТУПЧ Й ТБЪОЕУФЙ ЙУРПМШЪПЧБОЙЕ ТБЪОЩИ ТЕУХТУПЧ РП ТБЪОЩН «ЪБМРБН». йОФЕТЕУОЩ ТБЪМЙЮЙС Ч API ДМС ЬФЙИ ДЧХИ ЧБТЙБОФПЧ. ч РЕТЧПН УМХЮБЕ ФТЕВПЧБОЙС ОБ ТЕУХТУЩ НПЗХФ ВЩФШ ЧППВЭЕ ЧЩОЕУЕОЩ ЪБ РТЕДЕМЩ РТПЗТБННОПЗП ЛПДБ РТПГЕУУБ Й ЪБДБЧБФШУС ЧП ЧОЕЫОЙИ ПРЙУБФЕМСИ РТПГЕУУБ (ОБРТЙНЕТ, Ч СЪЩЛЕ ХРТБЧМЕОЙС ЪБДБОЙСНЙ). чП ЧФПТПН УМХЮБЕ УЙУФЕНОЩК ЧЩЪПЧ getResource СЧМСЕФУС ПВСЪБФЕМШОЩН, РТЙЮЕН ПВСЪБФЕМШОП ДПМЦОБ ВЩФШ ПВЕУРЕЮЕОБ ЧПЪНПЦОПУФШ ЪБРТПУБ Ч ПДОПН ЧЩЪПЧЕ ТЕУХТУПЧ ТБЪОЩИ ЛМБУУПЧ Й ЧЩДЕМЕОЙЕ ЧУЕИ ЪБРТПЫЕООЩИ ТЕУХТУПЧ ПДОПК ОЕРТЕТЩЧБЕНПК ПРЕТБГЙЕК.

йЕТБТИЙЮЕУЛБС УФТБФЕЗЙС СЧМСЕФУС УБНПК МЙВЕТБМШОПК ЙЪ УФТБФЕЗЙК, РТЕДПФЧТБЭБАЭЙИ ЧПЪОЙЛОПЧЕОЙЕ ФХРЙЛПЧ ВЕЪ ДПРПМОЙФЕМШОПК ЙОЖПТНБГЙЙ. вПМЕЕ МЙВЕТБМШОЩЕ УФТБФЕЗЙЙ РТЕДПФЧТБЭЕОЙС ФТЕВХАФ РТЕДЧБТЙФЕМШОПЗП ЪОБОЙС П ИБТБЛФЕТЙУФЙЛБИ РТПГЕУУПЧ.

ч РТПФЙЧОПН УМХЮБЕ УЙФХБГЙС ОБЪЩЧБЕФУС ПРБУОПК.

В) ПРБУОБС
тЙУ.5.3. бОБМЙЪ УЙФХБГЙЙ

бМЗПТЙФН зБВЕТНБОБ.
дТХЗБС БМЗПТЙФНЙЮЕУЛБС ТЕБМЙЪБГЙС УФТБФЕЗЙЙ У РТЕДЧБТЙФЕМШОЩНЙ ЪБСЧЛБНЙ ЙЪЧЕУФОБ ЛБЛ БМЗПТЙФН зБВЕТНБОБ. ьФПФ БМЗПТЙФН ЙММАУФТЙТХЕФУС УМЕДХАЭЙН РТПЗТБННОЩН МЙУФЙОЗПН:

тЙУ.5.4. бМЗПТЙФН зБВЕТНБОБ

дЧЙЗБСУШ ДБМШЫЕ Ч УФПТПОХ МЙВЕТБМЙЪБГЙЙ, НЩ РЕТЕУЕЛБЕН ФХ ЗТБОЙГХ, ДП ЛПФПТПК НПЦОП ВЩМП РТЕДПФЧТБФЙФШ ФХРЙЛЙ. фЕРЕТШ ФХРЙЛЙ ЧПЪНПЦОЩ. й ФЕРЕТШ ЧЕДХЭЕЕ ЪОБЮЕОЙЕ РТЙПВТЕФБАФ НЕФПДЩ ПВОБТХЦЕОЙС ФХРЙЛПЧ.

ч РТПФЙЧОПН УМХЮБЕ УЙФХБГЙС СЧМСЕФУС ФХРЙЛПЧПК.

Б) ОЕФХРЙЛПЧБС.

a)
В) ФХРЙЛПЧБС.
тЙУ.5.5. бОБМЙЪ УЙФХБГЙЙ

рТЙ ЙУУМЕДПЧБОЙЙ РТПВМЕНЩ ФХРЙЛПЧ ХДПВОП РТЕДУФБЧМСФШ УЙУФЕНХ Ч ЧЙДЕ ЗТБЖБ. рТЙНЕТ ФБЛПЗП ЗТБЖБ РПЛБЪБО ОБ тЙУХОЛЕ 5.6.

тЙУ.5.6. зТБЖ ТЕУХТУПЧ Й РТПГЕУУПЧ

еУМЙ ФХРЙЛ ПВОБТХЦЕО, ФП ЛБЛ ЕЗП МЙЛЧЙДЙТПЧБФШ? л УПЦБМЕОЙА, ТБЪЧСЪЛБ ФХРЙЛБ РТБЛФЙЮЕУЛЙ ЧУЕЗДБ УЧСЪБОБ У РПФЕТСНЙ. еДЙОУФЧЕООЩН ТЕБМШОЩН УРПУПВПН ТБЪЧСЪЛЙ СЧМСЕФУС РТЙОХДЙФЕМШОПЕ РТЕЛТБЭЕОЙЕ ПДОПЗП ЙМЙ ОЕУЛПМШЛЙИ РТПГЕУУПЧ Й ПУЧПВПЦДЕОЙЕ ХДЕТЦЙЧБЕНЩИ ЙНЙ ТЕУХТУПЧ. лБЛ ЧЩВТБФШ ЦЕТФЧХ ДМС РТЕЛТБЭЕОЙС? чП-РЕТЧЩИ, пу, ЛПОЕЮОП, ДПМЦОБ ВЩФШ ХЧЕТЕОБ Ч ФПН, ЮФП РТЙ РТЕЛТБЭЕОЙЙ ЧЩВТБООЩИ РТПГЕУУПЧ ПУЧПВПДЙФУС ПВЯЕН ТЕУХТУПЧ, ДПУФБФПЮОЩК ДМС ТБЪЧСЪЛЙ ФХРЙЛБ. чП-ЧФПТЩИ, ПГЕОЙЧБЕФУС ПВЯЕН РПФЕТШ, УЧСЪБООЩИ У РТЕЛТБЭЕОЙЕН ФПЗП ЙМЙ ЙОПЗП РТПГЕУУБ. рТЕЛТБЭЕООЩК РТПГЕУУ, УЛПТЕЕ ЧУЕЗП, ВХДЕФ ЪБРХЭЕО РПЧФПТОП, ФБЛЙН ПВТБЪПН, ТЕУХТУЩ, ЙУРПМШЪПЧБООЩЕ ЙН РТЙ ЕЗП ОЕЪБЛПОЮЕООПН ЧЩРПМОЕОЙЙ, УПУФБЧМСАФ РТСНЩЕ РПФЕТЙ. рПЬФПНХ ЕУФЕУФЧЕООЩН ТЕЫЕОЙЕН РТЕДУФБЧМСЕФУС РТЕЛТБЭЕОЙЕ ФПЗП РТПГЕУУБ, ЛПФПТЩК Л ЬФПНХ НПНЕОФХ ЙУРПМШЪПЧБМ НЕОШЫЕ ЧУЕЗП ТЕУХТУПЧ (ОЕ ФПМШЛП НПОПРПМШОЩИ, ОП МАВЩИ ТЕУХТУПЧ ЧППВЭЕ). рПУЛПМШЛХ УБНЩН ДПТПЗПУФПСЭЙН ТЕУХТУПН ПВЩЮОП СЧМСЕФУС РТПГЕУУПТОПЕ ЧТЕНС, ЧЩВПТ ЦЕТФЧЩ РП ЛТЙФЕТЙА НЙОЙНБМШОПЗП ЙУРПМШЪПЧБООПЗП ЧТЕНЕОЙ РТПЙЪЧПДЙФУС ОБЙВПМЕЕ ЮБУФП.

цЕМБФЕМШОП, ЮФПВЩ «РПУФТБДБЧЫЙК» РТПГЕУУ ВЩМ УОПЧБ ЪБРХЭЕО, РТЙЮЕН, ЧПЪНПЦОП ДБЦЕ, У РПЧЩЫЕООЩН РТЙПТЙФЕФПН. оП ЧУСЛЙК МЙ РТПГЕУУ НПЦОП РТЕТЧБФШ ОБ УЕТЕДЙОЕ, Б РПФПН ЪБРХУФЙФШ УОБЮБМБ? рТЕДУФБЧШФЕ УЕВЕ РТПГЕУУ-РТПЗТБННХ, ЛПФПТБС ДПМЦОБ ОБЮЙУМЙФШ ЧЪОПУЩ ОБ 10 ВБОЛПЧУЛЙИ УЮЕФПЧ. ьФБ РТПЗТБННБ РТЙОХДЙФЕМШОП ЪБЧЕТЫБЕФУС Ч ФПФ НПНЕОФ, ЛПЗДБ ПОБ ХУРЕМБ ПВТБВПФБФШ ФПМШЛП 5 УЮЕФПЧ. еУМЙ РТЙ РЕТЕЪБРХУЛЕ РТПЗТБННБ ОБЮОЕФ ЧЩРПМОСФШУС У ОБЮБМБ, ПОБ РПЧФПТОП ОБЮЙУМЙФ ЧЪОПУЩ ОБ РЕТЧЩЕ 5 УЮЕФПЧ. пу ОЕ НПЦЕФ ЪОБФШ, РТЙЧЕДЕФ МЙ РЕТЕЪБРХУЛ РТПГЕУУБ Л ОЕЦЕМБФЕМШОЩН РПУМЕДУФЧЙСН, РПЬФПНХ ТЕЫЕОЙЕ П РПЧФПТОПН ЪБРХУЛЕ ПВЩЮОП РЕТЕЛМБДЩЧБЕФУС ОБ РПМШЪПЧБФЕМС.

5.4. вЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ

рТПГЕУУЩ, ПЦЙДБАЭЙЕ ТЕУХТУПЧ, ЧУФБАФ Ч ПЮЕТЕДЙ Л ЬФЙН ТЕУХТУБН. фБЛБС ПЮЕТЕДШ НПЦЕФ ПВУМХЦЙЧБФШУС МАВПК ОЕЧЩФЕУОСАЭЕК УФТБФЕЗЙЕК РМБОЙТПЧБОЙС. нПНЕОФПН, ЛПЗДБ НЕОЕДЦЕТ ТЕУХТУБ РТЙОЙНБЕФ ТЕЫЕОЙЕ ПВ ПВУМХЦЙЧБОЙЙ, СЧМСЕФУС ПУЧПВПЦДЕОЙЕ ТЕУХТУБ.

рПУЛПМШЛХ ФХРЙЛПЧБС УЙФХБГЙС ВПМЕЕ ПРБУОБ, ЮЕН ВЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ, пу ЧУЕ ЦЕ ПФДБЕФ РТЕДРПЮФЕОЙЕ ЛТЙФЕТЙСН ВЕЪПРБУОПУФЙ, УМЕДПЧБФЕМШОП, ЪБЧЕДПНП РТЕДПФЧТБФЙФШ ВЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ ОЕЧПЪНПЦОП. вЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ РТПГЕУУБ ХУФБОБЧМЙЧБЕФУС РП ЧТЕНЕОЙ ЕЗП РТЕВЩЧБОЙС Ч ПЮЕТЕДЙ: ЕУМЙ РТПГЕУУ РТЕВЩЧБЕФ Ч ПЮЕТЕДЙ ДПМШЫЕ ОЕЛПФПТПЗП ХУФБОПЧМЕООПЗП ЧТЕНЕОЙ, ФП УЮЙФБЕФУС, ЮФП ПО ПЦЙДБЕФ ВЕУЛПОЕЮОП. ч ЪБЧЙУЙНПУФЙ ПФ РПМЙФЙЛЙ пу Ч ПФОПЫЕОЙЙ УРТБЧЕДМЙЧПУФЙ ПВУМХЦЙЧБОЙС Й ПФ ИБТБЛФЕТЙУФЙЛ РТПГЕУУБ (ЕУМЙ ПОЙ ЙЪЧЕУФОЩ) ДПРХУФЙНПЕ ЧТЕНС ПЦЙДБОЙС НПЦЕФ ХУФБОБЧМЙЧБФШУС ВПМШЫЙН ЙМЙ НЕОШЫЙН. еУМЙ ЦЕ ВЕУЛПОЕЮОПЕ ПФЛМБДЩЧБОЙЕ ХУФБОПЧМЕОП, ФП ДМС ЕЗП МЙЛЧЙДБГЙЙ пу РТЙПУФБОБЧМЙЧБЕФ ЧЩДБЮХ ТЕУХТУПЧ ОПЧЩН РТПГЕУУБН, РПЛБ ОЕ ВХДЕФ ПВУМХЦЕО ПФМПЦЕООЩК РТПГЕУУ.

рТПВМЕНБ ФХРЙЛПЧ ДП ОЕЛПФПТПК УФЕРЕОЙ ФЕТСЕФ БЛФХБМШОПУФШ Ч УПЧТЕНЕООЩИ пу, ФБЛ ЛБЛ ПОЙ ЙНЕАФ ФЕОДЕОГЙА Л ХНЕОШЫЕОЙА ЛПМЙЮЕУФЧБ ОЕТБЪДЕМСЕНЩИ ТЕУХТУПЧ. пДОЙН ЙЪ УРПУПВПЧ УДЕМБФШ ОЕТБЪДЕМСЕНПЕ ХУФТПКУФЧП ТБЪДЕМСЕНЩН СЧМСЕФУС ВХЖЕТЙЪБГЙС, ЛПФПТХА НЩ ТБУУНПФТЙН Ч УМЕДХАЭЕК ЗМБЧЕ. уЙУФЕНОЩЕ УФТХЛФХТЩ ДБООЩИ ТБЪДЕМСАФУС У ЙУРПМШЪПЧБОЙЕН УТЕДУФЧ ЧЪБЙНОПЗП ЙУЛМАЮЕОЙС ДПУФХРБ, ЛПФПТЩН ВХДЕФ РПУЧСЭЕОБ ЗМБЧБ 8. ьФБ РТПВМЕНБ, ПДОБЛП, УФБОПЧЙФУС ЧУЕ ВПМЕЕ БЛФХБМШОПК ДМС УПЧТЕНЕООЩИ ухвд, ЛПФПТЩЕ ПВЕУРЕЮЙЧБАФ ПДОПЧТЕНЕООЩК ДПУФХР Л ТЕУХТУБН-ДБООЩН ДМС ФЩУСЮ Й ДЕУСФЛПЧ ФЩУСЮ РПМШЪПЧБФЕМЕК.

Источник

Организация вычислительного процесса

5.8. Семафоры и мониторы

Одним из первых механизмов, предложенных для синхронизации поведения процессов, стали семафоры, концепцию которых описал Дейкстра (Dijkstra) в 1965 году. Семафор представляет собой целую переменную, принимающую неотрицательные значения, доступ любого процесса к которой, за исключением момента ее инициализации, может осуществляться только через две атомарные операции : P (от датского слова proberen – проверять) и V (от verhogen – увеличивать). Классическое определение этих операций выглядит следующим образом:

Семафор empty будем использовать для организации ожидания производителя при заполненном буфере, а семафор mutex – для организации взаимоисключения на критических участках, которыми являются действия put_item и get_item ( операции «положить информацию» и «взять информацию» не могут пересекаться, поскольку возникнет опасность искажения информации). Тогда решение задачи выглядит так:

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

В сложных программах произвести анализ правильности использования семафоров с карандашом в руках становится очень непростым занятием. В то же время обычные способы отладки программ зачастую не дают результата, поскольку возникновение ошибок зависит от interleaving ‘а атомарных операций, и ошибки могут быть трудно воспроизводимы. Для того чтобы облегчить труд программистов, в 1974 году Хоаром (Hoare) был предложен механизм еще более высокого уровня, чем семафоры, получивший название мониторов. Рассмотрим конструкцию, несколько отличающуюся от оригинальной.

Легко убедиться, что приведенный пример действительно решает поставленную задачу.

5.9. Взаимоблокировки (тупики)

Коффман и другие исследователи доказали, что для возникновения тупиковой ситуации должны выполняться четыре условия [37].

При столкновении с взаимоблокировками используются четыре стратегии.

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

Рассмотрим методы обнаружения взаимоблокировок.

Обнаружение взаимоблокировки при наличии одного ресурса каждого типа достаточно просто. Для такой системы можно построить граф ресурсов и процессов, о котором уже говорилось, и если в графе нет циклов, система в тупик не попала.

Например, пусть система из семи процессов (A, B, C, D, E, F, G) и шести ресурсов (R, S, T, V,W, U) в некоторый момент соответствует следующему списку [17].

Вопрос: заблокирована ли эта система, и если да, то какие процессы в этом участвуют?

Чтобы ответить на этот вопрос, нужно составить граф ресурсов и процессов (рис. 5.14).

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

Этот граф содержит цикл, указывающий, что процессы D, E, G заблокированы (зрительно легко видно). Однако в этом случае в операционной системе необходима реализация формального алгоритма, выявляющего тупики.

Введем в рассмотрение две матрицы:

C=i,j| i = 1, 2,…, n; j = 1, 2, …, m> – матрица текущего распределения ресурсов, где ci,j – количество ресурсов j-ого класса, которые занимает процесс Pi ;

R=i,j| i = 1, 2,…, n; j = 1,2, …, m> – матрица требуемых (запрашиваемых) ресурсов, ri,j – количество ресурсов j-ого класса, которые хочет получить процесс Pi.

Справедливо m соотношений по ресурсам:

если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть фото если процесс уже получивший какой либо ресурс и не освобождая его. Смотреть картинку если процесс уже получивший какой либо ресурс и не освобождая его. Картинка про если процесс уже получивший какой либо ресурс и не освобождая его. Фото если процесс уже получивший какой либо ресурс и не освобождая его

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

Алгоритм обнаружения тупиков состоит из следующих шагов.

Первый – принудительная выгрузка ресурсов: способность забирать ресурс у процесса, отдавать его другому процессу, а затем возвращать назад так, что исходный процесс не замечает того, в значительной мере зависит от свойств ресурса. Выйти из тупика, таким образом, зачастую трудно или невозможно.

Третий подход – восстановление путем уничтожения одного или более процессов. Это грубейший, но простейший выход из тупика. Проблема – решить, какой процесс уничтожать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *