Требует ли изменение значения любого регистра (DR, IR и т. Д.) Переключения из пользовательского режима в режим ядра?

1) Итак, в книге, которую я читаю, говорится, например, что изменение регистра IR не требует переключения из пользовательского режима в режим ядра, но я этого не понимаю, как я могу узнать, требуется ли переключение или нет?

2) также как насчет других регистров, таких как DR, PSW, PC и т. Д., Как я могу узнать, требует ли он переключения или нет?

3) последняя проблема заключается в том, что в какой-то момент в книге говорится что-то вроде: для изменения значения «регистров управления памятью» требуется режим ядра, но я даже не знаю, что это за регистр ?!


person Richard Jones    schedule 31.10.2017    source источник
comment
О какой архитектуре вы говорите? x86?   -  person Tsyvarev    schedule 31.10.2017
comment
Я готовлюсь к экзамену по ОС, так что он подходит для большинства современных компьютеров.   -  person Richard Jones    schedule 01.11.2017
comment
В разных архитектурах разный набор регистров. Хотя регистры имеют некоторые общие черты во всех (современных) архитектурах, имена таких регистров и правила различаются. how can i know if it requires switching or not? - Прочтите документацию по конкретной архитектуре. "memory management registers" ... but i don't even know what this register is?! - Мы тоже не знаем, потому что разные архитектуры имеют разные регистры управления памятью.   -  person Tsyvarev    schedule 01.11.2017


Ответы (1)


В большинстве систем регистры можно разделить на три группы:

1) Общие регистры: это регистры, которые процесс может изменять по желанию.

2) Регистр определения процесса: это регистры, которые можно изменить только в режиме ядра. Такие регистры обычно включают в себя состояние процессора и регистры, определяющие адресное пространство процесса. Обратите внимание, что значение состояния процессора можно изменить в пользовательском режиме с помощью инструкций, но значение регистра не может быть установлено в пользовательском режиме.

3) Системный регистр: это регистры, используемые всеми процессами. Эти изменения можно изменить только в режиме ядра. Например, обычно есть регистр, который определяет расположение вектора прерывания.

1) Итак, в книге, которую я читаю, говорится, например, что изменение регистра IR не требует переключения из пользовательского режима в режим ядра, но я этого не понимаю,

Что такое регистр «IR». Это обычно называется программным счетчиком (ПК)? Если да, то это можно изменить в пользовательском режиме.

как я могу узнать, требуется ли переключение? и 2) также как насчет других регистров, таких как DR, PSW, PC и т. д., как я могу узнать, требует ли он переключения или нет?

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

Если ваш регистр R0, R1, R2, .... или имеет псевдоним, например SP, BP, PC, вы можете изменить его в пользовательском режиме. В противном случае предположите, что ему нужен режим ядра.

3) последняя проблема заключается в том, что в какой-то момент в книге говорится что-то вроде: для изменения значения «регистров управления памятью» требуется режим ядра, но я даже не знаю, что это за регистр ?!

Это зависит от вашего процессора.

person user3344003    schedule 01.11.2017