Kategorier: Alle - алгоритмы - процессы - управление - синхронизация

af Алина Владимировна Шлёма 2 år siden

159

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

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

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

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

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

в операционных системах используются специальные механизмы
Таймеры
События
Семафоры
Сигналы
Критические секции

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

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

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

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

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

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

объект-процесс (object-process) в Windows NT
дескриптор процесса в UNIX
управляющий блок процесса (РСВ — Process Control Block) в OS/2
блок управления задачей (ТСВ — Task Control Block) в OS/360

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

поддерживает взаимодействие между процессами
обеспечивает процессы необходимыми системными ресурсами
занимается созданием и уничтожением процессов
планирует выполнение процессов

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

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

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

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

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

гонки

Прерывания

прерывания делятся на три больших класса
программные
внутренние (исключения)
внешние (аппаратные)

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

Механизм прерываний чаще всего поддерживает приоритезацию и маскирование прерываний
Существуют 2 способа, с помощью которых шины выполняют прерывания
опрашиваемый (polled)
векторный (vectored)
поддерживается
программными средствами ОС
аппаратными средствами компьютера

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

приоритеты
относительные
абсолютные
квантование

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

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

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

Диспетчеризация
это реализация найденного в ходе планирования решения, т.е. организация переключения с одного потока на другой
Планирование может быть динамическим и статическим
Цели планирования
Сокращение времени отклика
Сокращение времени ожидания
Сокращение полного времени выполнения
Эффективность
Справедливость
Свойства планирования
Масштабируемость
Сбаллансированная загрузка ресурсов ВС
Минимальные накладные расходы
Предсказуемость
Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков
Задачи планирования
переключение контекстов "старого" и "нового" процессов
выбор процесса на выполнение из очереди готовых процессов
определение момента времени для смены выполняемого процесса

Поток

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

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

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

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

Задание

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

Программа

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