Процесс определяется значениями его регистра. Некоторые из них будут общими регистрами, которые может изменить любое приложение, а другие будут системными регистрами, которые могут быть изменены только в режиме ядра.
Большинство процессоров определяют структуру, которая часто называется блоком контекста процесса. PBC определяет, где хранится каждый регистр, определяющий состояние процесса. Некоторым процессорам требуется несколько PCB-подобных структур, таких как регистр с плавающей запятой и другие типы регистров отдельно.
Большинство процессоров имеют инструкции Load Process Context и Save Process Context (или их эквиваленты. Обычно в этих инструкциях есть только один операнд: адрес PCB.
Изменение процесса выглядит следующим образом:
SAVEPCTX address_of_pcb_for_current_process
LOADPCT address_of_pcb_for_next_process ; after this, in a new process.
REI ; Return to user mode.
На некоторых процессорах с плохим дизайном эти шаги более сложны.
Термин «выделить ЦП» не соответствует тому, что я представляю о переключении контекста.
Все зависит от того, как вы думаете об этом. Процессор всегда должен быть запущен (если у вас нет процессора, предназначенного для мобильных устройств, который можно легко отключить). Итак, является ли контекстный переключатель назначением процессора процессу или процессом, назначаемым процессору?