2013-08-15 2 views
0

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

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

Когда я пытаюсь перенести этот процесс из ядра 0 в ядро ​​1, я не уверен, что регистры процессора необходимы в этот период. Конечно, есть много регистров CPU: eax, ebx, ... esp, esi (в руководстве по использованию Intel) и так далее. Но я пытаюсь найти абсолютно важное значение для миграции.

+0

В чем вопрос? – Raptor

+0

@ShivanRaptor Я хочу найти необходимый регистр процессора для миграции – Chans

ответ

0

Это не отличается от нескольких процессов на одном ядре.

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

Итак, когда речь идет о планировании процесса на другом ядре, чем тот, на котором он в последний раз выполнялся (миграция), теперь это другое - ОС просто восстанавливает это состояние регистрации на другое ядро ​​ЦП.

+0

Спасибо за ответ. Итак, вы имеете в виду, что все регистры в ЦП необходимы для миграции, и ОС автоматически обрабатывает этот процесс? – Chans

+0

Да. Что касается процесса, это единственное, что работает на процессоре. Поэтому все его регистры должны оставаться неизменными в любое время, потому что процесс может быть заменен в любой момент его выполнения. –

+0

Я понимаю это. Благодаря! – Chans

Смежные вопросы