[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Если есть два процессора - передающий (1) и принимающий (2), то техника работы следующая :
исходно флаг сброшен - для (2) это признак неготовности данных
(1) пишет в память структуру, после чего устанавливает флаг.
(2) считывает флаг, определяет , что данные готовы - флаг установлен, обрабатывает их и после этого сбрасывает флаг.
Пока (2) обрабатывает данные, флаг все еще установлен, (1) считывает флаг, видит это, что для него является сигналом занятости памяти, и ждет, пока флаг не будет сброшен. Когда он определяет, что флаг сброшен, он может снова повторять вышеописанную процедуру.
При этом в любой момент времени только один из процессоров пишет в флаг и в структуру.
Для (1) установленный флаг означает занятость памяти другим процессором и возможное некорректное содержание этого участка памяти. Для (2) установленный флаг означает предоставление ему данного участка памяти для монопольной записи.
E-mail: info@telesys.ru