Минимизируйте время переключения контекста между процессами
У меня 4 процесса с общим семафором, все процессы имеют одинаковый приоритет. Критическая область внутри блокировки имеет операцию чтения / записи, включая вызов fflush().
В журналах я заметил, что после выделения семафора из определенного процесса другой процесс затрачивает значительное время на получение блокировки.
Поскольку все 4 процесса блокируются в одной точке, существует проблема производительности на встроенном устройстве. Если блокировка разделяется между потоками, pthread_cond_t может использоваться для минимизации времени переключения. Теперь, что можно сделать, чтобы минимизировать время переключения между процессами?
1 ответ
Переключение контекста между процессами внутри ядра. Задача ядра планировщика заключается в переключении контекста, поэтому здесь вы не можете ничего сделать, кроме как попытаться ускорить путь переключения контекста планировщика. Другой альтернативой может быть попытка выяснить проблему и улучшить приложение за счет уменьшения конкуренции за блокировку (возможно).