Re[10]: внутренняя реализация std::mutex?
От: barney  
Дата: 17.05.18 08:24
Оценка:
lpd>Переход в режим ядра и тем более переключение контекста на другой поток — достаточно долгие операции.

возникла идея безумная. вот смотрите, ведь все равно- потоки используют общую память. т.е им не нужен "защищенный режим" изоляции друг от друга
можно ли на уровне ОС сделать "user mode" потоки?
например юзермодовское прерывание таймера, которое не меняет контекст (user to kernel)?
т.о. потоки в рамках одного процесса могут быстро останавливаться — юзермод таймер прерыванием — быстро переключать стек регистров — и продолжать управление.
т.е если общий квант времени, отведенного на процесс не истек — то получим сверхшустрые потоки в рамках этого кванта

lpd>Это разные операции. В теории одну можно свести к другой, но это не очень удобно.

lpd>И мьютекс, и условная переменная реализуются через системный вызов sys_futex().

Понятно. Я так понимаю это смотреть имплементацию POSIX cond_variable в ядре линукс?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.