exponenta event banner

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

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

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

Двухсторонняя межпроцессная связь

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

Модель

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

Результаты

На вкладке Моделирование (Simulation) щелкните Выполнить (Run). По завершении моделирования откройте инспектор данных моделирования для просмотра полученных сигналов и выполнения задач. Process1 передает пакет данных по завершении Task11. Task21 Process2 триггеры после получения события, обрабатывает пакет данных и отправляет пакет обратно в Process1. Task12 Process1 выполняется сразу после приема пакета данных, упреждая Task11.

См. также

| | |