Минимизируйте время переключения контекста между процессами

У меня 4 процесса с общим семафором, все процессы имеют одинаковый приоритет. Критическая область внутри блокировки имеет операцию чтения / записи, включая вызов fflush().

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

Поскольку все 4 процесса блокируются в одной точке, существует проблема производительности на встроенном устройстве. Если блокировка разделяется между потоками, pthread_cond_t может использоваться для минимизации времени переключения. Теперь, что можно сделать, чтобы минимизировать время переключения между процессами?

1 ответ

Переключение контекста между процессами внутри ядра. Задача ядра планировщика заключается в переключении контекста, поэтому здесь вы не можете ничего сделать, кроме как попытаться ускорить путь переключения контекста планировщика. Другой альтернативой может быть попытка выяснить проблему и улучшить приложение за счет уменьшения конкуренции за блокировку (возможно).

Другие вопросы по тегам