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

Встраиваемый процессор, запускающий операционную систему, может поддержать многопользовательские процессы режима в том же процессоре. В этом случае процессы обычно связываются друг с другом использующим асинхронные вызовы 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. Обработанные данные затем возвращаются к Process1, полученному асинхронной задачей.

Результаты

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

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

| | |