Здравствуйте, Sharov, Вы писали:
S>При переключение потоков контекст процесса не переключается, в отличие переключения процессов.
Переключение контекста процесса как раз значительно проще — для этого всего-то нужно перезагрузить несколько регистров (в том числе MMU). Там потери в основном на перезагрузки кэшей, но это происходит и при работе потоков без переключения. Во многих случаях переключение между двумя потоками одного процесса может перетряхивать кэши сильнее, чем между двумя потоками из разных процессов.
S>lock-free алгоритмы в ядре. Легко сделать сильно неочевидный баг. В ядрах все должно быть максимально просто.
Когда реально нужны оптимизация/функциональность, в ядро тащат все, что требуется.