Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекция.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.49 Mб
Скачать

Управление процессами

Процесс – это абстракция, описывающая выполняющую программу. Для ОС процесс – это единица работы и заявка на потребление системных ресурсов.

В многозадачной среде процесс может находиться в нескольких основных состояниях: ожидание, выполнение и готовности.

Жизненный цикл начинается с готовности, затем выполнения, а потом остальное.

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

В совокупности структура данных, в которой хранится вся информация, необходимая для выполнения процесса, называется блок выполнения процесса или PCB – Process Control Block. Делится на две части:

1.Содержимое всех регистров (или регистровый контекст процессов)

2.Всё остальное (или системный контекст процессов).

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

Дескриптором процессов (handle) называется структура, включающая идентификатор процесса, состояние, привилегии и место нахождения кодовых процессов. Дескриптор – описатель процесса.

Очереди процессов представляют собой списки их дескрипторов.

Операции над процессом

  1. Операция создания процессов. Создать процесс значит : создать информационные структуры его описывающие – включить дескриптор нового процесса в очередь готовых – загрузить кодовый сегмент в ОП.

  2. Приостановка процесса. Переход из состояния исполнения в состояние готовности. При этому сохраняется счётчик команд и регистр стека исполняемого процесса.

  3. Запуск процесса – обратное приостановке процесса.

  4. Блокировка процесса (переход из исполнения в ожидание). При этом возникает системный вызов, при необходимости сохраняется контекст и происходит смена процесса на выполнение.

  5. Разблокировка – обратное блокировке (из ожидания в готовность).

  6. Завершения процесса – уничтожение описывающих структур и освобождение памяти.

13092012 Лекция 2

Рисунок 1 – Переключение процессов

Алгоритмы планирования

Планирование включает в себя решение задач:

  1. Определение момента времени для смены выполняемого процесса

  2. Выбор процесса на выполнение из очереди готовых

  3. Переключение контекстов

Классификация алгоритмов планирования:

  1. Бесприоритетные – на квантование

    1. Линейные

      1. В порядке очереди

      2. Случайно

    2. Циклические

  2. Приоритетные

    1. С фиксированными приоритетами

      1. Относительные приоритеты

      2. Абсолютные приоритеты

      3. Адаптивное обслуживание

    2. С динамическими приоритетами

      1. Приоритет зависит от времени ожидания

      2. Приоритет зависит от времени обслуживания

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

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

Приоритетные алгоритмы могут снимать процесс с выполнения при появлении более приоритетной заявки (абсолютный приоритет). Относительный приоритет влияет только на порядок выбора из очереди.

Приоритет может назначаться директивно или вычисляться ОС по заданными правилам. Может быть фиксированным или динамическим.

Потоки

Thread (поток) – это часть процесса, способная выполняться квазипараллельно с другими потоками одного процесса. Каждый поток имеет свой собственный программный счётчик, стек, регистры, потомков и состояния. В рамках процесса потоки разделяют адресное пространство, глобальные переменные, открытые файлы, таймеры, семафоры и статистическую информацию.

Как может быть организован вычислительный процесс с помощью потоков:

  1. Модель «Диспетчер»

  2. Модель «Команда»

  3. Модель «Конвейер»

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

Многопоточная обработка может быть реализована в пользовательском пространстве или в пространстве ядра.