-1

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

1) Я хотел получить разъяснения по части диаграммы, обозначенной как функция ОС. Является ли эта часть абсолютно одинаковой для всех пользовательских процессов? Другими словами, является ли этот общий код доступным для каждого процесса?

2) Единственная разница между функциями переключения процессов (серая основа на диаграмме) и функциями ОС заключается в том, что функции ОС выполняются как пользовательские процессы, тогда как функции переключения процессов работают как процессы ОС? Почему должна быть такая разница?

Одна архитектура, которая может быть использована для выполнения операционной системы

Сопровождающий текст для обеспечения контекста диаграммы:

«Альтернатива, которая характерна для операционных систем на небольших компьютерах (ПК, рабочих станциях), - запуск практически всего программного обеспечения ОС в контексте пользовательского процесса.Представление состоит в том, что ОС - это прежде всего набор подпрограмм, которые пользователь вызывает для выполнения различных функций, выполняемых в среде пользовательского процесса .... В любой момент ОС управляет n образами процессов ......... Когда происходит прерывание, прерывание или вызов супервизора, процессор переводится в режим ядра и управление передается ОС. Чтобы передать управление от пользовательской программы к ОС, контекст режима сохраняется, и переключение режима происходит в рутину операционной системы. Однако выполнение продолжается в текущем пользовательском процессе. Таким образом, переключение процессов не выполняется, просто переключение режимов в одном и том же процессе ».

(Стр.136 Операционные системы от Stallings)

1 ответ1

1

При объяснении пользовательского процесса и взаимоотношений ОС и ядра необходимо учитывать множество аспектов. Здесь есть структура памяти и адресное пространство, уровни передачи данных, процессор и уровни выполнения / привилегии, а также различные схемы планирования.

Диаграмму, которая была вырвана из контекста, довольно сложно точно объяснить. Откуда взялась эта диаграмма? Каков был сопроводительный текст для этой диаграммы? Это может представлять что-то об организации кода так же, как о планировании процессов.

добавление

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

ОС поддерживает информацию о состоянии каждого процесса: значение регистров, стека и виртуальной памяти; в совокупности это называется контекстом "процесса". Не менее важен уровень безопасности / привилегий процессора, "режим".

Сталлингс упоминает, что ОС может переключать либо "процесс", либо "режим" процессора. В приведенном вами абзаце эти состояния процессора используются в качестве альтернативного метода (эффективной) обработки системных вызовов, прерываний и прерываний. То есть ОС может просто выполнить просто переключение "режима" (из пользовательского режима в режим ядра) в текущем "процессе" для обслуживания прерывания /trap /syscall. Каждый процесс теперь обязан распределять достаточно стекового пространства для размещения системных прерываний / прерываний, а также для собственных нужд. Это должно частично ответить на ваш # 2.

Для вопроса № 1 в физической памяти (обычно) есть только одна копия кода ядра. Таким образом, "функции ОС" будут общим кодом. Конечно, процесс должен быть в режиме ядра, чтобы иметь разрешение на выполнение кода ядра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .