Скачать 0.75 Mb.
|
Блокирующие переменные (мьютексы):С каждым разделяемым ресурсом связывается двоичная переменная, которая принимает значение 1, если ресурс свободен, и значение 0, если ресурс занят.Неделимая операция обеспечивает принцип взаимного исключения:Т.е. исключает случай, когда процесс 1 определил, что ресурс свободен, но, не успев установить переменную в 0, был прерван; Процесс 2 сделал то же самое и был прерван, после чего управление возвращено процессу 1 для выполнения своей критической секции. «Неделимая операция» может быть реализована использованием неделимой команды анализа и присвоения значения логической переменной (например, команды BTC, BTR, BTS процессора Pentium) или с помощью специальных системных примитивов – базовых функций ОС, которые бы запрещали прерывания на протяжении всей операции проверки и установки. «-»: В течение времени, когда один процесс находится в критической секции, другой процесс, которому требуется тот же ресурс, будет выполнять рутинные действия по опросу блокирующей переменной, бесполезно растрачивая процессорное время. Семафоры ![]() Для устранения этого недостатка во многих ОС предусматриваются специальные системные вызовы (аппарат для работы с критическими секциями. В разных ОС аппарат событий реализован по своему, но в любом случае используются системные функции, которые условно называют WAIT(x) и POST(x), где x – идентификатор некоторого события (например, освобождение ресурса). Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел новые примитивы, обозначаемые V (“открытие”) и P (“закрытие”), оперирующие над целыми неотрицательными переменными, называемыми семафорами. Доступ любого процесса к семафору, за исключением момента его инициализации, может осуществляться только через эти две атомарные операции. Смысл P(S) заключается в проверке текущего значения семафора S, и если S>0, то осуществляется переход к следующей за примитивом операции, иначе процесс переходит в состояние ожидания. P(S): Пока S==0 Процесс блокируется; S=S-1; Операция V(S) связана с увеличением значения S на 1 и переводом одного или нескольких процессов из состояния готовности к исполнению процессором. V(S): S=S+1; В простом случае, когда семафор работает в режиме 2-х состояний (S>0 и S=0), его алгоритм работы полностью совпадает с алгоритмом работы мьютекса и S выполняет роль блокирующей переменной. “+”: пассивное ожидание (постановка в очередь и автоматическая выдача ресурсов)
“-”: не указывают непосредственно на критический ресурс
Мониторы (условные переменные) Для облегчения работы программистов при создании параллельных программ без усилий на доказательства правильности алгоритмов и отслеживание взаимосвязанных объектов (что характерно при использовании семафоров) предложено высокоуровневое средство синхронизации, называемое мониторами. Мониторы – тип данных, обладающий собственными переменными, значения которых могут быть изменены только с помощью вызова функций-методов монитора. Функции-методы могут использовать в работе только данные, находящиеся внутри монитора, и свои параметры. Доступ к мониторам в каждый момент времени имеет только один процесс. Для организации не только взаимоисключений, но и очередности процессов, подобно семафорам f(full) и e(empty), было введено понятие условных переменных, над которыми можно совершать две операции wait и signal, отчасти похожие на операции P и V над семафорами. Функция монитора выполняет операцию wait над какой-либо условной переменной. При этом процесс, выполнивший операцию wait, блокируется, становится неактивным, и другой процесс получает возможность войти в монитор. Когда ожидаемое событие происходит, другой процесс внутри функции совершает операцию signal над той же самой условной переменной. Это приводит к пробуждению ранее заблокированного процесса, и он становится активным. Исключение входа нескольких процессов в монитор реализуется компилятором, а не программистом, что делает ошибки менее вероятными. Требуются специальные языки программирования и компиляторы (встречаются в языках, “параллельный Евклид”,”параллельный Паскаль”,Java). Следует отметить, что условные переменные мониторов не запоминают предысторию, поэтому операцию signal всегда должна выполняться после операции wait(иначе выполнение операции wait всегда будет приводить к блокированию процесса). 10. Проблемы синхронизации(тупики) и способы их разрешения. |
![]() |
2. Структура информационного канала. Информационно-логическая структура доказывания 3 Процессуально-познавательные функции общей информационной модели механизма расследуемого события |
![]() |
Программа государственного экзамена. Направление “Туризм” «Теория и организация туризма» Эволюция понятия «туризм». Виды туризма, их характеристика и перспективы развития. Типы классификации видов туризма. Специфика делового... |
![]() |
План цикла по теме "химия и функции белков" Для педиатрического факультета Основные правила работы в биохимической лаборатории. Работа с мерной посудой, дозаторами, аппаратурой. Техника безопасности (сдача... |
![]() |
Правительство Российской Федерации федеральное государственное автономное... Понятие бренд и его эволюция. Значение бренда для фирм и потребителей |
![]() |
План: Основные понятия Функции гис классификация гис эволюция гис Это может быть план здания, карта экологического мониторинга территории, атлас земельного кадастра или карта природных ресурсов... |
![]() |
План: Основные понятия Функции гис классификация гис эволюция гис Это может быть план здания, карта экологического мониторинга территории, атлас земельного кадастра или карта природных ресурсов... |
![]() |
I. Понятие преступлений против несовершеннолетних и их законодательная эволюция Развитие законодательства об ответственности за преступления против несовершеннолетних в России |
![]() |
Ooo "св-робот" Компьютерные курсы рабочая программа Переменные, операции, выражения в php. Типы переменных. Изменение типа переменной. Динамические переменные. Константы. Комментарии.... |
![]() |
Теоретические вопросы: Общая характеристика организационных звеньев... Общая характеристика организационных звеньев (понятие, цели, функции). Формирование целевых подсистем |
![]() |
Медицинский колледж Вопросы к квалификационному экзамену Мз рф, его структура и функции. Нормативные документы. Фармакологический и фармакопейный комитеты. Департамент государственного контроля... |
![]() |
Студента 2 курса магистратуры группы «Медицинское право» очной формы... Понятие, эволюция и генезис оборота фальсифицированных лекарственных средств 14 |
![]() |
Методические указания составлены в соответствии с рабочей программой... ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин» |
![]() |
Контрольная работа по дисциплине Трудовое право Понятие, содержание и структура коллективного договора. Порядок разработки его проекта |
![]() |
Материально-техническое обеспечение кабинета №6 по профессии «Оператор... Материально-техническое обеспечение кабинета №6 по профессии «Оператор электронно-вычислительных и вычислительных машин» |
![]() |
Российской Федерации Старооскольский технологический институт им. А. А. Угарова ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин» |
![]() |
Российской Федерации Старооскольский технологический институт им. А. А. Угарова ПМ. 03. Выполнение работ по профессии «оператор электронно-вычислительных и вычислительных машин» |
Поиск |