Межпроцессная передача данных в операционных системах

Встраиваемый процессор, запускающий операционную систему, может поддержать многопользовательские процессы режима в том же процессоре. В этом случае процессы обычно связываются друг с другом использующим асинхронные вызовы API программного обеспечения операционной системы. Для получения дополнительной информации о межпроцессной передаче данных в операционных системах смотрите Межпроцессное взаимодействие веб-сайта Википедии.

Interprocess Data Read SoC Blockset™, Interprocess Data Channel и блоки Interprocess Data Write симулируют связь между двумя процессами, управляемыми операционной системой. Чтобы создать односторонний канал данных между двумя процессами, добавьте блок Interprocess Data Write в первую эталонную модель процесса, которая отправляет данные. Затем добавьте блок Interprocess Data Read в другую эталонную модель процесса, которая получает данные. В каждой модели осушите порты события к модели верхнего уровня с помощью Outport и блоков Inport, соответственно. Наконец, соедините порты события в модели верхнего уровня использование блока Interprocess Data Channel.

Двумя путями межпроцессное взаимодействие

В этом примере показано, как к двухсторонней межпроцессной передаче данных между двумя процессорами, запускающимися в операционной системе управляемый процессор.

Модель

Process1 отправляет сообщение данных, с помощью блока Interprocess Data Write, с блоком Interprocess Data Channel в 0,01 секунды интервалы. Process2 получает и обрабатывает сообщения данных асинхронно, с помощью блока Interprocess Data Read. Обработанные данные возвращаются к первому процессу и получены асинхронной задачей.

Результаты

Во вкладке Simulation нажмите Run. Когда симуляция завершится, откройте Инспектора Данных моделирования, чтобы просмотреть получившиеся сигналы и выполнение задачи. Process1 отправляет пакет данных при завершении Task11. Task21 в триггерах Process2 после получения события, обрабатывает пакет данных и передает пакет обратно в Process1. Task12 в Process1 выполняется непосредственно после получения пакета данных, вытесняя Task11.

Смотрите также

| | |