Что почитать по real-time multithreading для покрасноглазить?
Посоветуйте, пожалуйста, хорошие книги по real-time multithreading (ессно под linux). Осилил «Programming with Posix Threads» by Butenhof, осиливаю «Unix Systems Programming» by Robbins — нравится до писка. На что ещё хорошего положить свой глаз?:)
18 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівТеперь о Real-time — он Вам действительно нужен? Т.е. у Вас действительно RT задачи стоят? Если да — то Linux, наверное, далеко не самый лучший выбор. Смотрите, rt.wiki.kernel.org или на www.rtlinuxfree.com
Но для RT я бы QNX взял:)
P.S. Если ULK нужен — могу поделиться
Интересует multithreading в Linux и real-time scheduling в частности. Не как устроено и как работает на уровне ядра, а именно как правильно использовать в userspace, т.е. стать гуру в real-time multithreading programming (в userspace).
На счёт real-time. Думаю тут возникло недопонимание. Я говорю о real-time не как о фиксированном быстром отклике на внешние события, а о real-time scheduling. Т.е. хочется изучить ньюансы scheduling policies and priorities, contention scope and allocation domain и всевозможные грабли (а их в этой области достаточно).
Возможно позже понадобится и RT Linux kernel, но это уже скорее всего для обработки видео на DSP и реакции на события от датчиков.
Мне очень нравится “Unix Internals” by Uresh Vahalia
Если под линукс, то посикс вообще читать не надо, надо исходники ядра читать.
Тонко.;)
Ну Cтивенса тоже почитать надо, да, тем более в последнем издании network programming повыкидывали много ненужного типа TLI. В любых книжках все, что про STREAMS можно пропустить, если конечно не собираешься какие-то драйвера под HPUX или Solaris делать.
Насчет исходников — их конечно много, но: исключаешь драйвера — сразу −90%. В остальном коде все более менее структурировано по подсистемам. Ну, а весь ’core’ — в каталоге ’kernel’ ~170, 000 строчек — не потеряться в этом вполне посильно, от корки до корки ж читать незачем. Чем сейчас и занимаюсь.
Какое отношение код ядра Linux имеет к multithreading программированию под Linux в userspace? Кроме знаний драйверов и внутренней структуры ядра надо ещё и приложения писать, иначе это будет хорошо отлаженное и совершенно бесполезное ядро.
Ну в целом, конечно на автомобиле ездить можно (и правильно), не открывая капота, но хотя бы поинтересоваться внутренностями имхо надо. Чтобы хотя бы знать сколько там ремней и где они, хоть куда жидкость омывателя заливать, и где уровень масла проверять.
Как бы это сказать... Не Вы первый кто ковыряется под капотом в ремнях и жидкостях, но размахивать этим флагом желания нет.:) Ядро и rootfs на железяке за пару месяцев готово и стабилизированно. После копота и т.д. перехожу к следующей фазе — изучению advanced вождение. По сути топика (по вождению) есть что сказать?:)
Со Стивенсом я согласился выше. Не очень помню, что там про реалтайм, к сожалению. Как словите priority inversion или starvation на потоке, поинтересуетесь и scheduler’ом, который у вас в ядре.
Вот для того, чтобы не ловить priority inversion и т.д. надо читать умные книжки _до_ того как писать программы. Тогда будете знать и о FIFO/RR/Other scheduling policies, и о scheduling inheritance, и о priority ceiling / priority inheritance mutexes. А чтение исходников ядра не откроет Вам ньюансы использования conditional variables и thread-specific data, как лучше применять semaphores и чего избегать при использовании signals.
C этим соглашусь, пожалуй (блин, как тут квотить?!)
«А чтение исходников ядра не откроет Вам ньюансы использования conditional variables и thread-specific data, как лучше применять semaphores и чего избегать при использовании signals.»
Но вы сами заявили про линукс в начале топика. И таки оно все сильно далеко от posix, а sched.c — хоть и запутанный кусок кода, но таки проливает свет на то, как оно работает. Да хотя бы тот же futex, на котором все эти мьютексы и cond variables построены. О нем-то придется знать, вы его будете в отладчике, strace, и в корках видеть.
Коментар порушує правила спільноти і видалений модераторами.
2) Кого из докладчиков вы хотели бы услышать? — no matter (should be just good qualified)
Ммм?
Извините, не в том топике ответил.
www.amazon.com/...s/dp/0138995923
Почему именно эта книга (судя по отзывам на амазоне — так себе)?
Следующей жертвой выбрал (+ за компанию первый том):www.amazon.com/...s/dp/0130810819
Это ты прaвильно выбрал. Ричард Стивенс один из лучших в этой области (был к сожалению).