Студенческий конспект по СППО Часть III.
Часть 3
Элементы функционирования операционных систем
Характеристика методов распределения ресурсов
Операционная система = управляющие программы + сервисные программы (прикладное программное обеспечение)
Концепция расширенной машины:
Сервисные
программы
Управляющие
программы
аппаратура
Уровни управляющей программы (с точки зрения ОС):
Нижний уровень – уровень синхронизации процессов и распределения времени центрального процессора
Уровень управления операционной памятью
Верхний уровень (управление процессами) – процессы создаются и уничтожаются (нижний уровень управления информацией)
Процесс состоит из: программа (код и данные)+управляющая информация(PCB)
Управление устройствами ввода вывода
Управление информацией (верхний уровень)
Каждый верхний уровень использует средства нижнего уровня.
Верхний уровень управления информацией – управление информацией в операционной системе нижний – доступ к содержанию файла из программы.
Методы распределения ресурсов:
1)Статический
2)Динамический
Статическое выделение ресурсов – выделение ресурса (монопольное) на этапе создания процесса и этот ресурс принадлежит процессу в момент его завершения (понижает эффективность использования ресурса).
Динамическое выделение ресурса – распределение ресурса по запросу, но в момент выполнения процесса (повышает эффективность работы ОС, но алгоритм более сложен – менее надёжен)
Проблема тупиков:
Процесс
А Ресурс
1
Процесс
Б Ресурс
2
Решение – убить один из процессов.
Независимо от того, какой ресурс выделяется принцип управления одинаков
Управления ресурсами:
Отслеживание состояния ресурса с помощью управляющей таблицы
Поддержка алгоритмизации управления ресурсами (как предоставить ресурс, в каком объёме)
Физическое выделение ресурса
Освобождение ресурса
Синхронизация процессов при выделении ресурсов
PCBa
Процесс
A РЕСУРС
PCBb
Таблица
ресурса
Процесс
B 1
/0
Диспетчер
ресурса (выделение ресурса)
PCBc
Процесс
C
Динамическая область
Симофоры – используются для синхронизации ресурсов
1)Симофор двоичный – это специальное управляющее поле содержащее
информацию о том свободен ресурс или занят(0 – свободен, 1 - занят).
Если ресурс занят то симофор не равен нулю, следовательно, диспетчер блокирует ресурс на процессе B.
PQ– очередь к ресурсу еслиPQравен 0 то ресурс свободен если не равен нулю тоPQсодержит адрес первого процесса который ждёт своей очереди.
Если ресурс запрашивают несколько процессов то создаётся список.
После исполнения процесса А идёт освобождение ресурса следовательно происходит разблокирование всех ресурсов.
2) Симофор считающий:
S=1 - ресурс свободенS=0 – ресурс занят
P(S)-операции на симофоре:S=S-1 если жеS<0 то процесс ставится в очередь
S(-1) - В в очередь
S(-2) – С в очередь
Модуль Sравен числу процессов стоящих в очереди.
V(S):S=S+1 если же симофор меньше либо равен нулю то процесс удаляется из очереди.
Бит доступа к управляющим таблицам - указывает можно ли корректировать. таблицу Устанавливается с помощью команды setandtest– без прерывания.
Управление процессами - нижний уровень
Распределение времени центрального процессора:
а b
f готов активен
e d Блокирован
a– с верхнего уровня поступают процессы один из которых является активным.
f- процесс завершается.
d– запрос ресурса у активного процесса который недоступен следовательно данный процесс становится заблокированным.
c– если процесс не завершился а время предоставленное процессу закончилось он может вернуться в очередь.
e– если заблокированному процессу предоставлен недостающий ресурс он переходит в разряд активных.
Характеристики алгоритмов управления процессами:
Как организована очередь управления процессов.
По какому правилу предоставляется время работы с процессором.
Квант времени – это минимальная единица времени, предоставляемая процессу для работы с процессором. Обычно процессу выделяется несколько квантов времени.
Время работы с процессором может предоставляться по следующим принципам:
Бесконечно.
Конечно и одинаково для всех процессов.
Конечно но вычисляемо.
Возможны и комбинации.
Очередь готовых процессов:
1) FIFO (First in First out) - без приоритетов.
По приоритетам то есть каждому процессу выделяется диспетчерский приоритет и очередь формируется в соответствии с приоритетом.
Очередь с обратной связью Очередь готовых процессов разбивается на несколько очередей.
В основном используется понятие диспетчерских приоритетов.
Очередь
1
M1
Очередь
2
M2
Mn
Очередь
n
После очереди 1 просматривается очередь 2.
Очередь обслуживается до тех пор, пока в ней имеются процессы (по приоритету).
Такой алгоритм формирования очереди предназначен для вынесения длинных процессов в конец.
Основные алгоритмы управления процессами(END)
1) FIFO- формирование очереди и выделения квантов времени происходит следующим образом – очередь формируется по принципуFIFO, а квант времени выделяется бесконечный.
2) RR(RoundRobin) - – очередь формируется по принципуFIFO, а квант времени постоянный (этот алгоритм наилучший, если обслуживание процессов равноправно).
3) Приоритетное планирование – квант времени постоянный очередь формируется по приоритетам, которые процессы выпадают из обслуживания, но данный алгоритм позволяет выделить превелигированные процессы.
4) Алгоритм с вычисляемым квантом времени – очередь формируется по принципу FIFO, а квант времени вычисляется по приоритету(qk=q*pk, гдеpkназывается диспетчерским приоритетом).
5) Алгоритм с использованием очередей с обратной связью – очередь формируется по принципу очередей с обратной связью, а квант времени вычисляется по приоритету
Алгоритм с вычисляемой многозадачностью
Данный алгоритм является модификацией предыдущих алгоритмов. В алгоритме с вычисляемой многозадачностью используется два приоритета: базовый (формировка очереди) и текущий (очередь переходит между активным и пассивным состоянием).
31
Постоянна
16
15 Приоритеты
реального вр.
Динамическая
область памяти
1
0
Очередь динамически делится на несколько групп (основная, выше основной, ниже основной, наинизшая наивысшая) – это очередь с обратной связью (существует 32 очереди с различными приоритетами).
готовый выбранный активный
ожидание
блокирован
Данный алгоритм позволяет ускорить процесс выполнения.
Блокирование может происходить с частью управляющей информации об этом процессе. Для него операционная система должна подгрузить остаток управляющей информации.
Если в очереди нет процесса с таким же приоритетом, то ему выделяется больше времени. Данный процесс выполняется до тех пор, пока не кончится его квант времени или не поступит процесс с более высоким приоритетом. При вытеснении данного процесса процессом с более высоким приоритетом старым процесс сохранит свой квант времени.