Управление процессами
Программа
упорядоченная последовательность действий в виде машинных команд или инструкций исполнителю
Задание
совокупность программы, набора команд языка управления заданиями, необходимых для ее выполнения, и входных данных
Процесс (задача)
абстракция, описывающая выполняющуюся программу
Поток
последовательный переход процессора от одной команды программы к другой
Создание потоков требует от ОС меньших накладных расходов, чем процессов.
Каждый поток имеет собственный счетчик команд и стек.
Планирование и диспетчеризация потоков (процессов)
Задачи планирования
определение момента времени для смены выполняемого процесса
выбор процесса на выполнение из очереди готовых процессов
переключение контекстов "старого" и "нового" процессов
Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков
Свойства планирования
Предсказуемость
Минимальные накладные расходы
Сбаллансированная загрузка ресурсов ВС
Масштабируемость
Цели планирования
Справедливость
Эффективность
Сокращение полного времени выполнения
Сокращение времени ожидания
Сокращение времени отклика
Планирование может быть динамическим и статическим
Диспетчеризация
это реализация найденного в ходе планирования решения, т.е. организация переключения с одного потока на другой
Алгоритмы планирования
вытесняющие
невытесняющие
Классификация алгоритмов
квантование
приоритеты
абсолютные
относительные
Механизм прерываний
поддерживается
аппаратными средствами компьютера
программными средствами ОС
Существуют 2 способа, с помощью которых шины выполняют прерывания
векторный (vectored)
опрашиваемый (polled)
Механизм прерываний чаще всего поддерживает приоритезацию и маскирование прерываний
Прерывания
прерывания делятся на три больших класса
внешние (аппаратные)
внутренние (исключения)
программные
Проблемы при отсутствии синхронизации
гонки
тупики
Проблема тупиков включает в себя следующие задачи:
предотвращение тупиков
распознавание тупиков
восстановление системы после тупиков
Подсистема управления процессами
планирует выполнение процессов
занимается созданием и уничтожением процессов
обеспечивает процессы необходимыми системными ресурсами
поддерживает взаимодействие между процессами
Примеры описателей процесса
блок управления задачей (ТСВ — Task Control Block) в OS/360
управляющий блок процесса (РСВ — Process Control Block) в OS/2
дескриптор процесса в UNIX
объект-процесс (object-process) в Windows NT
Очередь процессов
дескрипторы отдельных процессов, объединенные в списки
Набор операций над процессами
создание процесса – завершение процесса
приостановка процесса (исполнение → готовность) – запуск процесса (готовность → исполнение)
блокирование процесса (исполнение→ ожидание) – разблокирование процесса (ожидание→ готовность)
Операции создания и завершения процесса являются одноразовыми.
Остальные операции, связанные с изменением состояния процессов, являются многоразовыми
Синхронизация процессов и потоков
в операционных системах используются специальные механизмы
Критические секции
Сигналы
Семафоры
События
Таймеры