Что именно это означает для выделения ЦП другому процессу в переключателе контекста? - PullRequest
0 голосов
/ 27 октября 2018

Я изучаю компьютерную организацию и операционную систему. Меня сильно смущает Что именно означает выделение ЦП для процесса в переключателе контекста?

Термин « выделить ЦП » не соответствует тому, что я представляю о переключении контекста.

Итак, я хочу убедиться, что я прав, по моему мнению:

Архитектура хранимой программы сохраняет инструкции в основной памяти, эти инструкции такие же, как в текстовом разделе процесса.

С точки зрения компьютерной организации, только счетчик программ решает, какую команду выполнить.

Если ядро ​​решает переключить распределение с Процесса 1 на Процесс 2, а именно переключение контекста, оно делает:

  1. Store Обработка данных 1 в PCB 1
  2. Загрузка Обработка данных 2 , а именно PCB 2 в ядро ​​
  3. Обновление всех значений регистра с PCB 2 ( Включает ПК )
  4. Итак, адрес компьютера обновляется до другого текстового раздела. Диаграмма ниже показывает мою мысль.

Context Switch

Итак, могу ли я сказать, что ядро ​​действительно выполняет другой Процесс, выполняет ли оно переключение контекста и в основном просто изменяет адрес счетчика программ на адрес текстового раздела другого процесса?

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Процесс определяется значениями его регистра. Некоторые из них будут общими регистрами, которые может изменить любое приложение, а другие будут системными регистрами, которые могут быть изменены только в режиме ядра.

Большинство процессоров определяют структуру, которая часто называется блоком контекста процесса. 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.

На некоторых процессорах с плохим дизайном эти шаги более сложны.

Термин «выделить ЦП» не соответствует тому, что я представляю о переключении контекста.

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

0 голосов
/ 27 октября 2018

«Изменение счетчика программы» - это низкоуровневое аппаратное представление о происходящем.

«Выделение ЦП» - это представление операционной системы о том, что ей нужно для отслеживания системных ресурсов, что, конечно, включает загрузку счетчика программы для кода, который теперь должен быть выполнен.

...