Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800564

.pdf
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
5.57 Mб
Скачать

2.7. Справедливое планирование

До сих пор мы предполагали, что каждый процесс управляется независимо от того, кто его хозяин. Поэтому если пользователь 1 создаст 9 процессов, а пользователь 2 - 1 процесс, то с использованием циклического планирования или в случае равных приоритетов пользователю 1 достанется 90 % процессора, а пользователю 2 всего 10.

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

В качестве примера рассмотрим систему и двух пользователей, каждому из которых отведено по 50 % процессора. У первого пользователя четыре процесса: А, В, С и D, у второго один процесс Е. Если используется циклическое планирование, цепочка процессов, удовлетворяющая всем требованиям, будет выглядеть следующим образом:

AEBECEDEAEBECEDE...

С другой стороны, если первому пользователю положено вдвое больше ресурсов, чем второму, мы получим

ABECDEABECDE...

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

Задание. Имеется операционная система. Необходимо реализовать программу для демонстрации работы алгоритма планирования процессов.

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

101

Варианты задания представлены в табл. 5.

 

 

Варианты задания

Таблица 5

 

 

 

 

 

№ ал-

 

 

 

 

 

Кол-во

Вари-

 

 

Алгоритм пла-

 

 

процес-

ант

горит-

ОС

нирования

 

 

сов

 

ма

 

 

 

 

 

(N)

 

 

 

 

 

 

 

1.

1.1

Система пакет-

"Первым при-

 

10, 12, 14

 

 

ной обработки

шел - первым

 

 

 

 

 

данных

обслужен"

 

 

 

2.

1.2

- // -

 

«Кратчайшая

 

13, 11, 9

 

 

 

 

задача - пер-

 

 

 

 

 

 

 

вая"

 

 

 

3.

2.1

Интерактивные

 

Циклическое

 

15, 17

 

 

системы

 

планирование

 

 

4.

2.2

- // -

 

Приоритетное

 

20, 24

 

 

 

 

планирование

 

 

5.

2.3

- // -

 

Несколько оче-

 

12, 14

 

 

 

 

редей

 

 

6.

2.4

- // -

 

"Самый корот-

 

8, 10, 12

 

 

 

 

кий процесс -

 

 

 

 

 

 

следующий"

 

 

7.

2.5

- // -

 

Гарантирован-

 

9, 10

 

 

 

 

ное планирова-

 

 

 

 

 

 

ние

 

 

8.

2.6

- // -

 

Лотерейное пла-

 

26, 28,

 

 

 

 

нирование

 

30

9.

2.7

- // -

 

Справедливое

 

12, 14

 

 

 

 

планирование

 

 

102

Выполнение задания:

1) Исходными данными является следующая информа-

ция:

имя процесса;

время выполнения процесса;

время ожидания процессом выполнения события или освобождения ЦП;

квант времени работы ЦП (для интерактивных ОС).

2)На форме отобразить исходные данные, поле с информацией о готовых процессах, поле с информацией о процессах в режиме блокировки.

3)Установить на форме кнопку для пошагового выполнения алгоритма.

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

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

6)Как только время ожидания у процесса будет равно нулю, он переходит в очередь готовых процессов и участвует в алгоритме.

7)Как только время выполнения процесса будет равно нулю, процесс завершается.

8)Работа алгоритма завершается, как только будут пусты две очереди процессов.

9)Если очередь готовых процессов пуста, а очередь блокированных не пуста, то запускается «пустой» процесс до тех пор, пока в очереди готовых процессов нет процесса.

103

Вопросы по теме:

1.Критерии планирования процессов: когда планировать, т.е. выбор момента принятия решений.

2.Три среды для реализации различных алгоритмов планирования.

3.Задачи алгоритмов планирования: для всех систем и для каждой среды реализации алгоритмов.

104

ЛАБОРАТОРНАЯ РАБОТА № 6. ВИРТУАЛЬНАЯ ПАМЯТЬ. ПРОЕЦИРУЕМЫЕ В ПАМЯТЬ ФАЙЛЫ – ОДИН ИЗ МЕТОДОВ ОРГАНИЗАЦИИ ОБМЕНА ДАННЫМИ МЕЖДУ ПРИЛОЖЕНИЯМИ

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

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

Краткие теоретические сведения

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

Функции ОС по управлению памятью в мультипро-

граммных системах:

отслеживание (учет) свободной и занятой памяти;

первоначальное и динамическое выделение памяти процессам приложений и самой ОС и освобождение памяти по завершении процессов;

настройка адресов программы на конкретную область физической памяти;

полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры ОП недостаточны для размещения всех процессов, и возвращение их в ОП;

защита памяти, выделенной процессу от возможных вмешательств со стороны других процессов;

дефрагментация памяти.

105

Преобразование адресов программы при ее загрузке в

ОП

Для идентификации переменных и команд на разных этапах жизненного цикла программы используются:

символьные имена,

виртуальные адреса (математические, условные, логические - все это синонимы),

физические адреса.

Порядок преобразования адресов программы представлен на рис. 57.

Рис. 57. Порядок преобразования адресов программы

106

Подходы к преобразованию виртуальных адресов в физические

1.Преобразование выполняется один раз для каждого процесса во время начальной загрузки программы в память. Программа загружается в память в виртуальных адресах (рис. 58).

2.Во время выполнения программы при каждом обращении к памяти ОС преобразует виртуальные адреса в физические.

Рис. 58. Пример загрузки программы в память

Классификация методов распределения памяти представлена на рис. 59.

107

Рис. 59. Классификация методов распределения памяти

Распределение памяти без использования внешней памяти фиксированными разделами

Рис. 60. Пример распределения памяти

108

Трудности при использовании разделов с одинаковым размером

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

2.Использование ОП крайне неэффективно. Любая программа, независимо от ее размера, занимает раздел целиком. При этом могут оставаться неиспользованные участки памяти большого размера (внутренняя фрагментация).

Использование разделов с разными размерами

1.Каждый процесс размещается в наименьшем разделе, способном вместить данный процесс.

Достоинство: возможность распределения процессов между разделами ОП, чтобы минимизировать внутреннюю фрагментацию.

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

Например, если нет ни одного процесса размером от 7 до 12 Мбайт, то раздел размером 12 Мбайт будет пустовать.

2.Использование одной очереди для всех процессов.

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

Недостатки методов распределения ОП фиксированными разделами:

109

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

2.Поскольку размеры разделов устанавливаются заранее во время генерации системы, небольшие задания приводят

кнеэффективному использованию памяти.

Динамическое распределение памяти

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

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

Пример распределения памяти динамическими разделами (64 Мб) представлен на рис. 61.

Рис. 61. Пример распределения памяти

110