Сообщение Re[11]: внутренняя реализация std::mutex? от 17.05.2018 8:30
Изменено 17.05.2018 8:33 lpd
Re[11]: внутренняя реализация std::mutex?
Здравствуйте, barney, Вы писали:
lpd>>Переход в режим ядра и тем более переключение контекста на другой поток — достаточно долгие операции.
B>возникла идея безумная. вот смотрите, ведь все равно- потоки используют общую память. т.е им не нужен "защищенный режим" изоляции друг от друга
B>можно ли на уровне ОС сделать "user mode" потоки?
Раньше лет 15 назад в Linux потоки так и были реализованы без sys_futex(). Детали не знаю, но для переключения контекста можно использовать user-level libc-функции setjmp()/longjmp().
lpd>>Переход в режим ядра и тем более переключение контекста на другой поток — достаточно долгие операции.
B>возникла идея безумная. вот смотрите, ведь все равно- потоки используют общую память. т.е им не нужен "защищенный режим" изоляции друг от друга
B>можно ли на уровне ОС сделать "user mode" потоки?
Раньше лет 15 назад в Linux потоки так и были реализованы без sys_futex(). Детали не знаю, но для переключения контекста можно использовать user-level libc-функции setjmp()/longjmp().
Re[11]: внутренняя реализация std::mutex?
Здравствуйте, barney, Вы писали:
lpd>>Переход в режим ядра и тем более переключение контекста на другой поток — достаточно долгие операции.
B>возникла идея безумная. вот смотрите, ведь все равно- потоки используют общую память. т.е им не нужен "защищенный режим" изоляции друг от друга
B>можно ли на уровне ОС сделать "user mode" потоки?
Раньше лет 15 назад в Linux потоки так и были реализованы без sys_futex(). Детали не знаю, но для переключения исполнения между потоками можно использовать user-level libc-функции setjmp()/longjmp().
lpd>>Переход в режим ядра и тем более переключение контекста на другой поток — достаточно долгие операции.
B>возникла идея безумная. вот смотрите, ведь все равно- потоки используют общую память. т.е им не нужен "защищенный режим" изоляции друг от друга
B>можно ли на уровне ОС сделать "user mode" потоки?
Раньше лет 15 назад в Linux потоки так и были реализованы без sys_futex(). Детали не знаю, но для переключения исполнения между потоками можно использовать user-level libc-функции setjmp()/longjmp().