Проблема критической секции, ее решение по Дейкстра

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

Критическая секция – часть процесса в кот.происходит доступ к общим данным.

Семафором Дейкстра называл переменную, принимающую целые, не отрицательные значения.

Виды семафоров:

1.Двоичный (S= {0;1})

2.Общий (K={0;1;…;n} – уровень(ранг) семафора)

Семафорный примитив – операция нал семафором, кот.выполняется как единое, неделимое действие. Одновременное обращение 2х и более процессов к 1му семафору рассматривается как последовательное обращение в произвольном порядке.

Решение критической проблемы по Дейкстра:

Дейкстра предположил, что проблема критической секции будет решена, если будут выполнены 2 условия:

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

2. Необходимо устранить 2 вида блокировки:

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: