Проблема критической секции имеет место тогда, когда несколько процессов могут асинхронно изменять содержимое общего участка памяти.
Критическая секция – часть процесса в кот.происходит доступ к общим данным.
Семафором Дейкстра называл переменную, принимающую целые, не отрицательные значения.
Виды семафоров:
1.Двоичный (S= {0;1})
2.Общий (K={0;1;…;n} – уровень(ранг) семафора)
Семафорный примитив – операция нал семафором, кот.выполняется как единое, неделимое действие. Одновременное обращение 2х и более процессов к 1му семафору рассматривается как последовательное обращение в произвольном порядке.
Решение критической проблемы по Дейкстра:
Дейкстра предположил, что проблема критической секции будет решена, если будут выполнены 2 условия:
1. Необходимо обеспечить взаимное исключение (в текущий момент времени в критической секции может находиться только 1 процесс).
2. Необходимо устранить 2 вида блокировки:
· Процессы не должны бесконечно долго решать, кто из них войдет первым.
· Процессы, оставшиеся вне своей критической секции, не должны препятствовать другим процессам входить в свои секции.