Планирование и диспетчеризация процессов. Приоритеты. Алгоритмы планирования. Коммуникация и синхронизация процессов в

  • 20 февр. 2011 г.
  • 2259 Слова
Материал к данной лекции и приведенный ниже текст практически полностью соответствует различным разделам книги
1. И. Одинцов Профессиональное программирование. Системный подход. – «БХВ-Петербург» - 2004. – 610 с.
Кроме того, при изложении алгоритма Деккера используется материал курса

2. В.П. Гергель, Р.Г. Стронгин Основы параллельных вычислений для многопроцессорных вычислительныхсистем

Материал к лекции №6 (в том числе и дополнительный для самостоятельного изучения). Лекция – 2 часа, самостоятельная работа – 2 часа, практикум – 2 часа, итого – 6 часов.

Планирование и диспетчеризация процессов.
Приоритеты. Алгоритмы планирования.
Коммуникация и синхронизация процессов
в централизованных архитектурах

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

Три уровня планирования2
Пять основных целей планирования 2
Приоритеты 2

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

Коммуникация и синхронизация процессов в централизованных архитектурах 3

Основные понятия и определения. 3
Алгоритм Деккера 4
Листинг алгоритма Деккера 5
Аппаратная поддержка взаимоисключений 6
Листинг. Программный интерфейс команды test_and_set 6
О крутящейся блокировке и блокировке сзапретом прерываний 6
Семафоры 7
Мониторы 8
Задачи передачи данных между процессами «читатель-писатель» 8
Тупики 8

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

С точки зрения распределения процессорного времени операционные системы можно разделить на три группы.

❑ Системы с однопользовательским режимом. Система запускает одну задачу и ждет ее полного завершения.

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

❑ Системы с многозадачным режимом. Переключение происходит по истечении некоторого кванта времени. Многозадачный режим примени в интерактивных системах и системах реального времени.

Три уровня планирования

❑ Планированиеверхнего уровня – это планирование при поступлении в систему, планирование стадии «оформления» процесса и его допуска его в систему.

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

❑ Планирование нижнего уровня (диспетчеризация) - это планирование очереди готовых к помещению напроцессор процессов.

Пять основных целей планирования

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

❑ Завершение максимального количества процессов в единицу времени. Эта цель особенно актуальна для пакетных систем

❑ Обеспечение приемлемого времени ответа максимальному числупользователей. Цель особенно актуальна для интерактивных систем.

❑ Предсказуемость планирования, определяемая тем, что одна и та же задача должна выполняться в системе за одно и то же время, независимо от условий. Цель особенно актуальна для систем реального времени.

❑ Постепенное снижение работоспособности системы.

Приоритеты

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

❑ статические (не меняющиеся с момента поступления процесса в систему) и динамические

❑ Присваемые автоматически (system defined и назначенные извне (user defined);

❑ Купленные (например, в 70 годах 20 века в американских вычислительных центрах за назначение высокого приоритета платили деньги) изаслуженные

❑ Рациональные (назначенные из разумных соображений) и случайные (random)

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

Перечислим основные алгоритмы планирования, ориентированные на пакетные операционные системы.

❑ Первый, пришедший в очередь процесс, обслуживается первым (First Comes, First Served - FCFS). Процессы получают процессор в порядке их...