Как я могу безопасно выполнить переключение контекста в потоке ОС заранее (а не совместно) практически без потери произвC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу безопасно выполнить переключение контекста в потоке ОС заранее (а не совместно) практически без потери произв

Сообщение Anonymous »

TLDR; внизу
Я пытаюсь создать среду выполнения с Green Threads для моего языка, вдохновленную процедурами и планировщиком Go Golang.
Среда выполнения написан на C++, и я пытаюсь реализовать упреждающее переключение контекста для потоков ОС.
Я сосредоточен на упреждающем переключении, главным образом, чтобы программистам не приходилось беспокоиться о блокировке потоков. Это позволит им просто беспокоиться о логике, а не о том, что другие потоки не получают достаточного процессорного времени.
Среда выполнения уже имеет совместное планирование, но для тяжелых вычислительных задач эти задачи могут блокировать весь поток ОС в течение значительного времени.
[tldr] Я попробовал реализацию, в которой выполнял переключение контекста внутри обработчиков прерываний. > но это было бы действительно небезопасно из-за особенностей того, как ЦП устанавливает стек + биты ЦП для обработки прерываний.
Мой вопрос:
Как я могу реализовать контекст переключение на C++ (Linux), так что я могу безопасно переключаться между контекстами задач выполнения практически без потери производительности.
Мне нужна только реализация потока, способного переключаться между двумя задачами упреждающе, безопасно и эффективно.
Спасибо все заранее.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ly-not-coo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»