Посоветуйте книгу по многопоточному программированию
Ищу книгу, которая бы объяснила, как на низком уровне работают потоки, мьютексы, семафоры. В своё время книга Джеффа Элджера «C++ для настоящих программистов» мне очень помогла разобраться в некоторых особенностях C++. И меня интересует книга такого же уровня доступности. Я уже имею опыт программирования многопоточных приложений на C++/Qt и Java. Но всё равно есть ощущение, что фреймворки скрывают большую часть работы. А мне хотелось бы понять, как операционная система управляет потоками, блокировками, семафорами, как это всё организовано на более низком уровне, возможно даже на уровне команд процессора.
Посоветуйте, пожалуйста, какую-нибудь хорошую книгу. Можно на английском.
Еще я обнаружил главу про мультипоточность в Structured Computer Organization. Я сам не читал, но беглый осмотр главы показал наличие описания hyperthreading и прочего.
Вообще тема довольно сложная и запутанная. Куча архитектур со своими особенностями.