русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Условная (барьерная) синхронизация


Дата добавления: 2013-12-23; просмотров: 2305; Нарушение авторских прав


Метод семафоров

Метод семафоров применяют в задачах, которые называются «производитель – потребитель» и «писатель – читатель».

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

Для работы с семафорами используются два примитива: V и P.

1. V(S) – операция, увеличивающая переменную S на 1. S:=S+1, причем выборка, наращивание и запоминание должно выполняться единой *, чтобы не было прерываний.

2. P(S) – уменьшение переменной на единицу S:=S-1.

В первом случае, применение операции V невозможно, если буфер полон. Во втором случае применение операции P не возможно, если буфер пуст.

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

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

Скорость записи может превышать скорость чтения, и наоборот.

Когда буферы будут заполнены необходимо приостановить процесс *, когда буферы будут пусты – приостановить чтение.

Для синхронизации применяют 2 буфера

e – число пустых буферов e=N,

f – число полных буферов f=0,

N – число буферов.

e и f – представляют число полных и пустых буферов, -это два счётчика, тогда операция: P(e)-уменьшение числа пустых буферов; V(e)- увеличение числа пустых буферов; P(f)- уменьшение числа полных буферов; V(f)- увеличение числа полных буферов.

Процессов “писателей”, “читателей” может быть множество- это может привести к конфликту при доступе, могут несколько процессов “писателей”, “читателей” войти в критическую секцию.

Для этого необходима операция записи и чтения из буфера, необходимо уст.* блоки переменную b. Необходимо произвести операцию P(b), если Р=0, то b установить в 1, и применить операцию V(b) –освободить ресурс.



Проанализировать ситуацию если Р(b)- в начало, а V(b) в конец, не приведёт ли эта операция к блокировке (RICH).

Условная синхронизация применяется в тех случаях, если выполнение некоторого процесса cзависит от результата выполнения процессов Аи В.

Условная синхронизация может производиться как в пользовательском пространстве так и в пространстве ядра. Имеется несколько процессов A,B,C,D. Которые взаимосвязаны между собой. Процессы не могут переступить барьер до тех пор пока все они не достигнут его.

В этом случае выполнение процесса делится на фазы, имеется четыре процесса. На второй фазе три процесса достигли барьера и выполняют примитив барьер путём системного вызова, после чего процесс приостанавливается. Когда последний процесс достигнет барьера то они не переходят в следующую фазу (3).



<== предыдущая лекция | следующая лекция ==>
Блокирующей переменной с использованием системного вызова | Метод граничных ресурсов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.