Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ (Часть 1) OS1...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.79 Mб
Скачать

Диспетчеризация в системах с мультипрограммированием

  1. F CFS (First come – first served) – прямая очередь

критерий- t поступления

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

+ Простота

– Сильно увеличивается время обслуживания и время ожидания

  1. SJN (shortest job next) – следующим выполняется короткое задание

критерий -t выполнения

Для каждого задания должны быть определены потребности во времени процессора. Только одна очередь – очередь процессов, готовых к выполнению, т.е. те задания, которые были заблокированы по вв/выв, снова помещаются в очередь наравне с новыми.

  1. SRT (shortest remaining time) – следующее задание требует меньше времени до конца обслуживания

критерий - сколько осталось до конца выполнения

З десь используется разница между временем требуемым и временем уже полученным. Если используется однопользовательская система, но с мультипрограммированием, желательно, чтобы фоновые задания получали меньше времени, чем активные. Поэтому

  1. RR (round robin) – карусель с квантами. Каждое задание получает одинаковый квант времени обслуживания, независящий от приоритета задания

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

Синхронизация заданий и процессов

Должен существовать механизм разрешения конфликтных ситуаций, вызванных условиями соперничества.

Существует два вида конфликтных ситуаций:

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

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

Обычный принтер

Процесс Р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. Оповещение просматривает очередь дескрипторов процессов, связанных с этим счётчиком. Если очередь не пуста, то очередной процесс из этой очереди поступит в очередь готовых процессов.