Вы не говорите, под какой операционной системой вы программируете. Я предполагаю, что Linux является самой распространенной системой Unix.
Есть несколько хороших книг по программированию ядра Linux. Драйверы устройств Linux доступны онлайн, а также на бумаге. Глава 5 имеет дело с параллелизмом; Вы можете сразу перейти к главе 5, хотя лучше сначала просмотреть хотя бы главы 1 и 3. В последующих главах также есть соответствующие разделы (в частности, очереди ожидания обсуждаются в главе 6 ).
Модель параллелизма ядра Linux построена на общих переменных. Существует широкий спектр методов синхронизации: атомарные целочисленные переменные, блокировки взаимного исключения (спин-блокировки для неблокирующих критических секций, семафоры для блокировки критических секций), блокировки чтения-записи, условные переменные, очереди ожидания,…