Все зависит от оборудования. Если все, что у вас есть, это общая память, и у вас нет другого способа связи, тогда вам нужно использовать какой-то опрос.
Оба ваших процессора работают под Linux? Как они обрабатывают общую память?
Хорошее решение - использовать связанный список как fifo. На этом fifo вы помещаете дескриптор данных, такой как адрес и размер.
Например, у вас может быть входной и выходной fifo, и вы можете пойти так:
Конечно, тяжелая часть находится в замке. Может быть, вам следует переформулировать свой вопрос, чтобы подчеркнуть, что это не «стандартный» SMP.
Если у вас нет атомарного теста и установлена битовая операция в памяти, я полагаю, вам нужно использовать схему, в которой для некоторой зоны памяти записывается только один процессор, а для другого - только чтение.
Редактировать: См. Ответ Хастуркуна о способах передачи сообщений от одного процессора к другому с использованием упорядоченной записи вместо атомарности для обеспечения сериализованного доступа к некоторым предопределенным данным.