Контекстное переключение между процессами всегда включает ввод привилегированного режима на уровне процессора. Планировщик должен получить доступ к таблице процессов и карте распределения памяти следующего процесса, оба из которых не доступны для старого процесса и поэтому требуют расширения полномочий; и затем планировщик должен указать на MMU на карту распределения памяти нового процесса, которая все еще требует поднятых полномочий.
Контекстное переключение между потоками того же процесса не должно включать ядро вообще.
Таким образом, то, какой происходит чаще всего, зависит от того, есть ли у Вас много легких потоков в Вашей системе.
Дополнительное чтение: вне Википедии, эта статья (контекстные переключения в Проекте информации о Linux). И конечно Понимая Ядро Linux (глава 3).
Можно изменить синтаксические свойства символов с помощью modify-syntax-entry
функция (C-h f
modify-syntax-entry
в emacs для большего количества информации):
Например, если Вы пишете .tex документы, Вы могли бы добавить следующее к Вашему .emacs
:
(add-hook
'TeX-mode-hook
'(lambda ()
(modify-syntax-entry ?_ "w")
(modify-syntax-entry ?- "w")
))
Это говорит emacs рассматривать _
и -
поскольку символы "слова", когда Вы находитесь в режиме TeX, таким образом передавать-слово и обратное слово, сделают то, что Вы хотите.
Использовать forward-whitespace
совершенствоваться пробелами, вкладками или новыми строками. Несколько пробелов рассматривают как один разделитель. С отрицательным аргументом пойдите назад тем количеством пробелов.