Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS_REDACTED_БИЛЕТЫ.docx
Скачиваний:
9
Добавлен:
01.04.2022
Размер:
1.15 Mб
Скачать
  1. Опишите механизмы создания и уничтожения процессов Создание процесса

Существуют четыре основных события, приводящих к созданию процессов.

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

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

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

4. Инициация пакетного задания. Применимо только к системам пакетной обработки данных. Когда ОС решает, что у нее достаточно ресурсов для запуска еще одного задания, она создает новый процесс и запускает новое задание из имеющейся у нее очереди входящих заданий.

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

Удаление процесса

Рано или поздно новые процессы будут завершены, обычно в силу следующих обстоятельств:

              1. обычного выхода (добровольно);

              2. выхода при возникновении ошибки (добровольно);

              3. возникновения фатальной ошибки (принудительно), например, неверная инструкцию, ссылку на несуществующий адрес памяти или деление на нуль;

              4. уничтожения другим процессом (принудительно).

  1. Опишите основные состояния процессов и возможные переходы между ними. Дайте определение переключению контекста.

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

1. выполняемый (в данный момент использующий центральный процессор);

2. готовый (работоспособный, но временно приостановленный, чтобы дать возможность выполнения другому процессу);

3. заблокированный (неспособный выполняться, пока не возникнет какое-нибудь внешнее событие).

Переходы:

Переключение контекста – переключение ЦП с одной программы, процесса, потока на другое. Переключение контекста может быть описано несколько более подробно как kernel (т. е. ядро операционной системы), выполняющее следующие действия в отношении процессов (включая потоки) на CPU: (1) приостановка прогрессии одного процесса и сохранение состояния CPU (т. е. контекста) для этого процесса где-то в памяти, (2) извлекая контекст следующего процесса из памяти и восстанавливая его в регистрах CPU и (3) возвращаясь в место, указанное счетчиком программы (т. е. возвращаясь к строке кода, в которой процесс был прерван), чтобы возобновить процесс.

При переключении контекста происходит сохранение и восстановление: регистрового контекста РОН, контекста с плавающей точкой, состояния управляющих регистров, сегментных и ММХ.