
- •Часть 1
- •Жизненный цикл выполнения программы
- •Управление оперативной памятью
- •Вторая стратегия: Распределение разделами
- •Третья Стратегия : Выделение перемещаемыми разделами
- •Логическая схема алгоритма перемещения
- •Четвертая стратегия: Выделение страницами
- •Пятая стратегия: Выделение страниц по запросу
- •Реализация виртуальной памяти
- •Алгоритмы обслуживания и вытеснения страниц
- •Шестая стратегия: Сегментное распределение
- •Седьмая стратегия: Странично-сегментное распределение
- •Резюме (Итоги)
- •Семь схем распределения памяти
- •Методы обеспечения виртуальной памяти
- •Основные термины
- •Адресация
- •Эффекты
- •Управление процессами
- •Понятие дескриптора
- •Прерывания
- •Планирование и диспетчеризация процессов и задач
- •Планирование заданий в системах без мультипрограммирования
- •Диспетчеризация в системах с мультипрограммированием
- •Синхронизация заданий и процессов
- •Резюме по управлению процессами
- •Основные понятия:
- •Виды вычислительных процессов:
- •Управление процессами. Задачи:
- •Функциональные компоненты ос по управлению процессами:
- •Место функциональных компонентов на схеме «Жизненный цикл задания»
- •Прерывания и механизм прерывания:
- •Функции по управлению задачами:
- •Диспетчеризация:
- •Конфликтные ситуации:
- •Управление информацией и внешними устройствами
- •Файловая система
- •Задача 1. Минимизация операций в/в
- •Управление внешними устройствами
- •Накопители на магнитных дисках
- •Резюме: Управление информацией и внешними устройствами
- •Основные понятия
- •Единицы хранения информации:
- •2. Управление информацией.
- •3. Структура файловой системы:
- •4. Структуры данных:
- •5. Доступ к данным:
- •4. Физический уровень файловой системы:
Диспетчеризация в системах с мультипрограммированием
F
CFS (First come – first served) – прямая очередь
критерий- t поступления
Невытесняющая многозадачность, т.е без принудительного перераспределения времени процессора между задачами
+ Простота
– Сильно увеличивается время обслуживания и время ожидания
SJN (shortest job next) – следующим выполняется короткое задание
критерий -t выполнения
Для каждого задания должны быть определены потребности во времени процессора. Только одна очередь – очередь процессов, готовых к выполнению, т.е. те задания, которые были заблокированы по вв/выв, снова помещаются в очередь наравне с новыми.
SRT (shortest remaining time) – следующее задание требует меньше времени до конца обслуживания
критерий - сколько осталось до конца выполнения
З
десь
используется разница между временем
требуемым и временем уже полученным.
Если используется однопользовательская
система, но с мультипрограммированием,
желательно, чтобы фоновые задания
получали меньше времени, чем активные.
Поэтому
RR (round robin) – карусель с квантами. Каждое задание получает одинаковый квант времени обслуживания, независящий от приоритета задания
Существует одна очередь, если все задания имеют одинаковый приоритет. Если приоритет разный, то будет организация нескольких очередей.
Синхронизация заданий и процессов
Должен существовать механизм разрешения конфликтных ситуаций, вызванных условиями соперничества.
Существует два вида конфликтных ситуаций:
Состязание. Возникают тогда, когда несколько процессов обращаются к ресурсу, который может использоваться только монопольно.
Например, процесс обращается к печатающему устройству, на котором в этот момент выполняется печать другого процесса. Если допустить одновременное использование печатающего устройства, то строки окажутся перемешанными, поэтому должен существовать приостановки выполнения процессов, если устройство, ему необходимое, занято.
Обычный принтер
Процесс Р1 и Р2 выполняются мультипрограммно. Каждый из них требует печати строки. Строки обоих процессов будут перепутаны. Одним из способов решения этой ситуации является использование виртуального устройства.
Сетевой принтер
2. К
линч
– ситуация, при которой соперничающие
процессы блокируют друг друга, т.к.
каждый пытается получить доступ к
ресурсу, используемому другим монопольно.
В системах с мультипрограммированием клинчи весьма вероятны, поэтому предлагаются следующие пути борьбы с ними:
* контроль над распределением, т.е. реализация либо стандартными способами распределения, либо механизм регулируемого распределения.
* предварительное распределение всех совместно используемых ресурсов.
* обнаружение и восстановление.
С точки зрения ОС возможно решение клинчевой ситуации и состязания путем создания виртуального устройства.
В каждый момент времени на каждом ресурсе может развиваться только один процесс! Поэтому выполнение процессов должно быть синхронизировано.
Механизм синхронизации между двумя процессами выполняется с помощью механизма семафора, у которого есть две операции P и V: P – операция занять, V – операция освободить. Операции производятся над семафором – переменной, выполняющей функции счётчика:
-
P(S)
V(S)
1. S:=S-1
1. S:=S+1
2. Если S<0, выполнить оповещение (S)
2. Если S>=0, выполнить ожидание(S)
Ожидание блокирует обслуживание процесса. Делает отметку об этом в дескрипторе S. Оповещение просматривает очередь дескрипторов процессов, связанных с этим счётчиком. Если очередь не пуста, то очередной процесс из этой очереди поступит в очередь готовых процессов.