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

Программа

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

Задание

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

Процесс (задача)

абстракция, описывающая выполняющуюся программу

Поток

последовательный переход процессора от одной команды программы к другой

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

Каждый поток имеет собственный счетчик команд и стек.

Планирование и диспетчеризация потоков (процессов)

Задачи планирования

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

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

переключение контекстов "старого" и "нового" процессов

Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков

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

Предсказуемость

Минимальные накладные расходы

Сбаллансированная загрузка ресурсов ВС

Масштабируемость

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

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

Эффективность

Сокращение полного времени выполнения

Сокращение времени ожидания

Сокращение времени отклика

Планирование может быть динамическим и статическим

Диспетчеризация

это реализация найденного в ходе планирования решения, т.е. организация переключения с одного потока на другой

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

вытесняющие

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

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

квантование

приоритеты

абсолютные

относительные

Механизм прерываний

поддерживается

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

программными средствами ОС

Существуют 2 способа, с помощью которых шины выполняют прерывания

векторный (vectored)

опрашиваемый (polled)

Механизм прерываний чаще всего поддерживает приоритезацию и маскирование прерываний

Прерывания

прерывания делятся на три больших класса

внешние (аппаратные)

внутренние (исключения)

программные

Проблемы при отсутствии синхронизации

гонки

тупики

Проблема тупиков включает в себя следующие задачи:

предотвращение тупиков

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

восстановление системы после тупиков

Подсистема управления процессами

планирует выполнение процессов

занимается созданием и уничтожением процессов

обеспечивает процессы необходимыми системными ресурсами

поддерживает взаимодействие между процессами

Примеры описателей процесса

блок управления задачей (ТСВ — Task Control Block) в OS/360

управляющий блок процесса (РСВ — Process Control Block) в OS/2

дескриптор процесса в UNIX

объект-процесс (object-process) в Windows NT

Очередь процессов

дескрипторы отдельных процессов, объединенные в списки

Набор операций над процессами

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

приостановка процесса (исполнение → готовность) – запуск процесса (готовность → исполнение)

блокирование процесса (исполнение→ ожидание) – разблокирование процесса (ожидание→ готовность)

Операции создания и завершения процесса являются одноразовыми.
Остальные операции, связанные с изменением состояния процессов, являются многоразовыми

Синхронизация процессов и потоков

в операционных системах используются специальные механизмы

Критические секции

Сигналы

Семафоры

События

Таймеры