Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Синхронизация на основе P и V операций

Списки готовых и ждущих процессов | Основные события и состояния процесса пользователя в реальном времени | Основные операции управления процессами | ПРОЦЕССЫ В UNIX | Префикс программного сегмента PSP | Создание дочерних процессов | Db 0 ; конец дополнительного окружения | Взаимодействие процессов | Взаимное исключение процессов | Критические интервалы |


Читайте также:
  1. Автоматизация учета кассовых операций на предприятии
  2. Анализ состояния и использования кассовых операций на предприятии
  3. Аудит кассовых операций и его этапы
  4. Буферное звено» может формироваться руководителем и на не­гативной социально-психологической основе: плохое руководство компенсируется самоорганизацией персонала.
  5. В основе каждого из этих форматов лежит математическая модель, с помощью которой объект отображается на экране монитора.
  6. В основе процесса холодного чтения
  7. В основе — одинаковые

Объектом операций Р и V является "семафор" (аналог с железнодорожным - путь открыт или закрыт), как неотрицательная целая переменная. Для каждого запрошенного ресурса и события заводится свой семафор. К семафору применяются две операции: Р (имя семафора) - уменьшает семафор на единицу, если возможно (когда не 0) и V (имя светофора) - увеличивает семафор на единицу. Необходимое условие: Р и V должны выполняться как неделимые.

Формально операции P и V для семафора S можно определить следующим образом:

 

P(S): if S>0

then S=S-1

else блокировать процесс по S, поставить процесс в "ожидание".

V(S): if есть ожидающий процесс по семафору S

then перевести процесс в "готов"

S=S+1

 

Как неделимые последовательности они выполняются под управлением ОС. Операции P(S) и V(S) включаются в каждую программу, которая имеет критические интервалы для взаимоисключения и в точки синхронизации. По ним осуществляется программно-управляемое прерывание.

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

P(S) включается в начале критического интервала, а V(S) - в конце. S при запуске (инициализации) устанавливается в "1". Если S для выполняющегося процесса ¹0, то операция P(S) уменьшает S, в противном случае процесс переводится в "ожидание". Другие процессы по мере получения ЦП доходят до P(S) и, если S=0, то операция P(S) переводит их в состояние "ожидание", т.е. только один процесс может войти в критический интервал. По достижении V(S) выполняющегося процесса (он выполнял критический интервал) в S будет записана "1". Если хотя бы один процесс был остановлен этим семафором, он будет переведен в состояние "готово".

Для синхронизации по данным или событиям семафор инициализируется в 0. P(S) ставится в точке синхронизации процесса, который должен ожидать выполнения какого-либо события. Пока S=0, этот процесс будет находиться в режиме "ожидание". Второй процесс в точке свершения события имеет V(S). Как только второй процесс дойдет до V(S), семафор переводится в "1", а первый процесс перейдет в "готово". Если второй процесс раньше достигнет V(S), чем первый процесс - P(S), то первый не перейдет в "ожидание", так как S=1.

В ряде машин имеются специальные команды по реализации P(S) и V(S). Современные ОС имеют средства работы с семафорами.

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


Дата добавления: 2015-10-02; просмотров: 45 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Синхронизация процессов| Монитор Хоара

mybiblioteka.su - 2015-2024 год. (0.007 сек.)