Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС.doc
Скачиваний:
45
Добавлен:
12.04.2015
Размер:
3.62 Mб
Скачать

2.3. Операции над процессами и связанные с ними понятия

Создание процесса

    • Порождение нового PCB с состоянием процесса «рождение»

    • Присвоение идентификационного номера

    • Выделение ресурсов (из ресурсов родителя, из ресурсов ОС)

    • Занесение в адресное пространство кода и установка значения программного счетчика (дубликат родителя, из файла)

    • Окончание заполнения PCB

    • Изменение состояния процесса на «готовность»

Завершение процесса

    • Изменение состояния процесса на «закончил исполнение»

    • Освобождение ресурсов

    • Очистка соответствующих элементов в PCB

    • Сохранение в PCB информации о причинах завершения

Запуск процесса

    • Выбор одного из процессов, находящихся в состоянии «готовность»

    • Изменение состояния выбранного процесса на «исполнение»

    • Обеспечение наличия в оперативной памяти информации, необходимой для его выполнения

    • Восстановление значений регистров

    • Передача управления по адресу, на который указывает программный счетчик

Приостановка процесса

    • Автоматическое сохранение программного счетчика и части регистров (работа оборудования)

    • Передача управления по специальному адресу (работа оборудования)

    • Сохранение динамической части регистрового и системного контекстов в PCB

    • Изменение состояния процесса на «готовность»

    • Обработка прерывания

Блокирование процесса

  • Обработка системного вызова

  • Сохранение контекста процесса в PCB

  • Перевод процесса в состояние «ожидание»

Разблокирование процесса

    • Уточнение того, какое именно событие произошло

    • Проверка наличия процесса, ожидающего этого события

    • Перевод ожидающего процесса в состояние «готовность»

    • Обработка произошедшего события

Набор операций

Одноразовые

создание процесса – завершение процесса

Многоразовые

запуск процесса – приостановка процесса

блокирование процесса – разблокирование процесса

(изменение приоритета)

Переключение контекста,

Переключение контекста (англ. Context Switch) — в многозадачных ОС и средах, процесс прекращения выполнения процессором одной задачи (процесса, потока, нити) с сохранением всей необходимой информации и состояния, необходимых для последующего продолжения с прерванного места, и восстановления и загрузки состояния задачи, к выполнению которой переходит процессор.

Переключение контекста происходит в момент, когда процессор переключается с одного процесса на другой. При переключении контекста система сохраняет контекст текущего процесса и восстанавливает контекст следующего процесса, выбранного для использования процессора. БУП-блок прерванного процесса при этом обновляется, а также изменяется значение поля состояния процесса (т.е. признак состояния выполнения заменяется признаком другого состояния: готовности, блокирования или «зомби»). Сохраняется и обновляется содержимое регистров процессора, состояние стека, данные об идентификации (и привилегиях) пользователя и процесса, а также о стратегии планирования и учетная информация.

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

Переключение контекста происходит в случаях, когда:

• процесс выгружается;

• процесс добровольно отказывается от процессора;

• процесс делает запрос к устройству ввода-вывода или должен ожидать наступления события;

• процесс переходит из пользовательского режима в режим ядра.

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