Нужно ли переключать контекст в планировщике linux?

У меня есть общий вопрос о планировщике linux и некоторых других подобных системных вызовах ядра.

Является ли планировщик linux «процессом», и каждый вызов планировщика требует переключения контекста, как если бы это был просто еще один процесс?

Допустим, у нас есть тактовый сигнал, который прерывает текущий запущенный процесс пользовательского режима, и теперь нам нужно вызвать планировщик.Вызывает ли сам вызов планировщика переключение контекста? Есть ли у планировщика свой набор регистров и U-область и еще что-то, что он должен восстанавливать при каждом вызове?

И этот вопрос относится ко многим другим системным вызовам. Ведут ли себя процессы ядра как обычные процессы в отношении переключения контекста, с той лишь разницей, что у них больше разрешений и доступ к процессору?

Я спрашиваю об этом, потому что накладные расходы на переключение контекста обходятся дорого. И звучит странно, что сам вызов планировщика провоцирует переключение контекста для восстановления состояния планировщика, а после этого планировщик вызывает для запуска другой процесс и снова другое переключение контекста.

14
задан Omair 1 June 2012 в 21:58
поделиться