1 of 13

Лекция 2: Процессы в среде

операционных систем

2 of 13

Что такое процесс?

Процесс — это выполняющаяся программа со всем своим окружением.

Программа

Процесс

Статичный код и данные на диске

Динамический объект в памяти

Не выполняется самостоятельно

Активно работает в процессе выполнения

Не занимает ресурсы системы

Использует CPU, память, файлы и другие ресурсы

Компоненты процесса:

  • Исполняемый код
  • Текущие значения переменных
  • Состояние регистров процессора
  • Счетчик команд
  • Выделенная память
  • Открытые файлы и т.д.

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

3 of 13

Контекст и дескриптор процесса

Контекст процесса

Набор значений, необходимых для выполнения процесса в любой момент времени:

Значение счетчика команд — какую инструкцию выполнять следующей

Значения в регистрах процессора — данные, адреса, состояние

Данные в оперативной памяти

Исполняемый программный код

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

Дескриптор процесса

Структура данных в ядре ОС, которая хранит всю информацию о процессе:

Идентификатор процесса (PID)

Уникальный номер процесса в системе

Состояние процесса

Выполняется, готов, ожидает

Степень привилегированности

Уровень доступа к ресурсам системы

Адрес кодового сегмента

Расположение кода в памяти

Указатели на выделенные ресурсы

Файлы, память, устройства и другие ресурсы

4 of 13

Состояния процесса

Исполнение

Процесс выполняется центральным процессором

Готовность

Процесс готов к выполнению и ждет, когда планировщик выделит ему процессор

Блокировка/Ожидание

Процесс приостановлен и ждет наступления внешнего события (например, завершения операции ввода-вывода)

Планировщик

Прерывание

Событие

Важно: Процесс может перейти в состояние "Исполнение" только из состояния "Готовность".

5 of 13

Управление процессами. Планировщик.

Планировщик (Scheduler) — подсистема ОС, которая управляет процессами и распределяет процессорное время между ними.

Очередь готовности

Планировщик

CPU

Задачи планировщика

Решать, какой процесс из состояния "Готовность" будет выполняться следующим

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

Управлять очередями процессов в состояниях "Готовность" и "Ожидание"

Цели планирования

Максимальная загрузка CPU

Высокая пропускная способность (больше задач в единицу времени)

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

Минимальное время отклика для интерактивных приложений

6 of 13

Уровни планирования

В операционных системах выделяют три уровня планирования процессов:

Долгосрочное планирование

  • Решает, какие процессы допустить в систему для выполнения
  • Определяет степень мультипрограммирования
  • Контролирует общее количество процессов в системе

Краткосрочное планирование

  • Непосредственно выбирает следующий процесс для выполнения на CPU
  • Основная функция планировщика
  • Отвечает за переключение между процессами (context switching)

Среднесрочное планирование

  • Принимает решение о "свопинге" — временном перемещении процессов
  • Перемещает процессы из оперативной памяти на диск и обратно
  • Освобождает память при необходимости

7 of 13

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

Параметры процесса

Статические параметры

  • Определяются при создании процесса
  • Необходимый объем памяти
  • Лимиты на ввод-вывод
  • Права доступа и привилегии

Динамические параметры

  • Описывают текущее состояние
  • Количество занятой памяти
  • Время выполнения
  • Текущие ресурсы и состояние

Временные характеристики

CPU Burst

|

I/O Burst

CPU Burst: период активного использования процессором для вычислений

I/O Burst: период ожидания завершения операции ввода-вывода

Характер процесса (вычислительный или ориентированный на ввод-вывод) определяется соотношением этих фаз

8 of 13

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

Вытесняющие стратегии

ОС может приостановить выполнение текущего процесса и передать CPU другому.

  • Приоритет:Обеспечивает многозадачность и реактивность
  • Справедливость:Каждый процесс получает равный доступ к CPU
  • Быстрота отклика:Хорошо подходит для интерактивных приложений
  • Сложность:Необходим таймер прерывания через фиксированные интервалы
  • Затраты:Дополнительные накладные расходы на сохранение контекста

Невытесняющие стратегии

Процесс выполняется, пока сам не завершится или не перейдет в состояние ожидания.

  • Простота:Легче в реализации и отладке
  • Предсказуемость:Хорошо работает для пакетных задач
  • Долгие ожидания:Короткие процессы могут долго ждать
  • Неэффективность:Может привести к "convoy-эффекту"

Области применения:

Вытесняющие: Интерактивные системы, системы реального времени, многозадачные ОС

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

9 of 13

Базовые алгоритмы планирования (1)

FIFO / FCFS

Процессы выполняются в том порядке, в котором они поступили в очередь готовности.

Характеристики:

Прост в реализации

Тип: Невытесняющий

Плюсы и минусы:

Простая логика работы

"С convoy-эффект" — если первым в очереди стоит долгий процесс, короткие процессы вынуждены долго ждать

Round Robin

Каждому процессу выделяется фиксированный квант времени (Time Quantum). Если процесс не завершился за квант, он прерывается и помещается в конец очереди.

Характеристики:

Обеспечивает справедливость

Тип: Вытесняющий

Плюсы и минусы:

Хорошее время отклика для интерактивных приложений

Длительность кванта времени влияет на производительность системы

10 of 13

Базовые алгоритмы планирования (2)

SJF (Shortest Job First)

Описание: Выбирается процесс с наименьшим CPU Burst.

Временная линия выполнения:

P1

P2

P3

P4

Характеристики:

  • Оптимален для минимизации среднего времени ожидания
  • Сложно предсказать длительность следующего CPU Burста

Тип: Может быть как вытесняющим, так и невытесняющим

SRTF (Shortest Remaining Time First)

Описание: Вытесняющая версия SJF. При появлении нового процесса с меньшим оставшимся временем выполнения, текущий процесс вытесняется.

Временная линия выполнения:

P1

P3

P1

P2

P4

Характеристики:

  • Обеспечивает еще лучшее среднее время ожидания, чем SJF
  • Частые вытеснения могут увеличивать overhead системы

Тип: Обычно вытесняющий

Сравнение:

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

11 of 13

Базовые алгоритмы планирования (3)

HPF (Наивысший приоритет первый)

Каждому процессу назначается приоритет. Процесс с наивысшим приоритетом выполняется первым.

Обычно вытесняющий алгоритм.

Проблема:

Голодание — процессы с низким приоритетом могут никогда не получить CPU.

Решение:

Динамическое старение — постепенное увеличение приоритета процессов, которые долго ждут.

Гарантированное планирование

Система гарантирует, что каждому из N пользователей достанется ~1/N процессорного времени.

Обеспечивает справедливое распределение ресурсов между пользователями.

Коэффициент справедливости:

K = (ti * N) / Ti

Где ti — полученное время, Ti — время в системе.

Принцип работы:

Процессы с малым K (долго ждут) получают приоритет.

Высокий приоритет

Средний приоритет

Время ожидания

Приоритет

12 of 13

Многоуровневые очереди

Multilevel Queue

Очередь 1 (высокий приоритет)

P1

P2

Очередь 2 (средний приоритет)

P3

P4

P5

Очередь 3 (низкий приоритет)

P6

P7

Процессы разделяются на несколько групп по типу или приоритету.

  • Каждая очередь может иметь свою стратегию планирования
  • Между очередями существует приоритетное обслуживание
  • Процесс не может мигрировать между очередями

Multilevel Feedback Queue

Очередь 1 (высокий приоритет)

P1

P2

Очередь 2 (средний приоритет)

P3

P4

Очередь 3 (низкий приоритет)

P5

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

  • Процессы могут перемещаться между очередями
  • Учет поведения процессов (CPU intensive vs I/O intensive)
  • Самый гибкий и сложный алгоритм

Сравнение

Multilevel Queue: Простая и предсказуемая работа, но menos гибкость.

Multilevel Feedback Queue: Более сложный, но обеспечивает лучшую адаптивность к различным типам процессов.

13 of 13

Итоги

Концепция процесса

Процесс

Единица работы в ОС, обладающая контекстом

Контекст процесса

Значения счетчика команд, регистров, памяти

Дескриптор процесса

Структура в ядре, хранящая info о процессе

Состояния и управление

Состояния процесса

Исполнение, готовность, блокировка

Планировщик

Подсистема ОС, управляющая процессами

Уровни планирования

Долгосрочное, краткосрочное, среднесрочное

Стратегии планирования

Типы стратегий

Невытесняющие и вытесняющие

Временные характеристики

CPU Burst, I/O Burst, соотношение

Параметры оценки

Загрузка CPU, пропускная способность

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

Базовые алгоритмы

FIFO, RR, SJF, SRTF, приоритетный

Многоуровневые очереди

Multilevel Queue, Multilevel Feedback

Цели алгоритмов

Справедливость, скорость отклика