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

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

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

Enum.Parse(typeof(ThreadPriority), Convert.ToString (trackBar3.Value - 1));

}

private void trackBar4_Scroll(object sender, EventArgs e)

{

pause = trackBar4.Value * 100;

}

Результат работы программы представлен на рис. 48.

Рис. 48. Результат работы программы

81

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

1.Взаимоисключения: понятие, требования к критическому участку.

2.Механизм межпроцессного взаимодействия - семафоры: типы, операции и действия.

3.Механизм межпроцессного взаимодействия: мьютекс, монитор, передача сообщений, барьер.

4.Сравнительная характеристика объектов синхрониза-

ции.

82

ЛАБОРАТОРНАЯ РАБОТА № 5. КРИТЕРИИ ПЛАНИРОВАНИЯ В ПОДСИСТЕМЕ УПРАВЛЕНИЯ ПРОЦЕССАМИ

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

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

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

Критерии планирования процессов

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

Эта ситуация возникает при наличии двух и более процессов в состоянии готовности.

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

ритмом планирования

Поведение процесса представлено на рис. 49.

83

Рис. 49. Поведение процесса

Периоды использования процессора, чередующиеся с ожиданием ввода-вывода:

процесс, ограниченный возможностями процессора (а);

процесс, ограниченный возможностями устройств вво- да-вывода (б)

Когда планировать (выбор момента принятия решений).

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

какой процесс запустить: родительский или дочерний. Поскольку оба процесса находятся в состоянии готовно-

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

2.Планирование необходимо, когда процесс завершает

работу.

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

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

84

3.Когда процесс блокируется на операции ввода-

вывода, семафоре, или по какой-либо другой причине, необходимо выбрать и запустить другой процесс.

4.Необходимость планирования может возникнуть при появлении прерывания ввода-вывода.

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

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

Вразличных средах требуются различные алгоритмы планирования.

Это связано с тем, что различные ОС и различные приложения ориентированы на разные задачи.

Т.е., то, для чего следует оптимизировать планировщик, различно в разных системах.

Можно выделить три среды:

1. Системы пакетной обработки данных.

Вэтих системах нет пользователей, сидящих за терминалами и ожидающих ответа.

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

Такой метод уменьшает количество переключений между процессами и улучшает эффективность.

2. Интерактивные системы.

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

Из-за ошибки в программе один процесс может заблокировать остальные.

85

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

3. Системы реального времени.

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

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

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

Задачи алгоритмов планирования

Все системы:

справедливость - предоставление каждому процессу справедливой доли процессорного времени;

принудительное применение политики - контроль за выполнением принятой политики;

баланс - поддержка занятости всех частей системы.

Системы пакетной обработки данных:

пропускная способность - максимальное количество задач в час;

оборотное время - минимизация времени, затрачиваемого на ожидание обслуживания и обработку задачи;

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

Интерактивные системы:

время отклика - быстрая реакция на запросы; 86

соразмерность - выполнение пожеланий пользователя.

Системы реального времени

окончание работы к сроку - предотвращение потери данных;

предсказуемость - предотвращение деградации качества

вмультимедийных системах.

Планирование в системах пакетной обработки данных

1.Первым пришел - первым обслужен

2.Кратчайшая задача – первая

Первым пришел - первым обслужен

Демонстрация работы алгоритма представлена на рис. 50

– рис. 53.

Рис. 50. Очередь готовых процессов

87

Рис. 51. Процесс P1 занял ЦП и выполняется

Рис. 52. Процесс P1 будет ожидать выполнение события через 2 условные единицы работы ЦП

88

Рис. 53. Процесс P1 покинул ЦП, перешел в очередь блокированных процессов

Описание алгоритмов планирования

1. Планирование в системах пакетной обработки данных

1.1. "Первым пришел - первым обслужен"

Алгоритм без переключений "первым пришел - первым обслужен" является, пожалуй, самым простым из алгоритмов планирования. Процессам предоставляется доступ к процессору в том порядке, в котором они его запрашивают. Чаще всего формируется единая очередь ждущих процессов. Как только появляется первая задача, она немедленно запускается и работает столько, сколько необходимо. Остальные задачи ставятся в конец очереди. Когда текущий процесс блокируется, запус-

89

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

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

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

Конечный результат будет следующим: каждый из процессов, ограниченных возможностями устройств вводавывода, считывает 1 блок данных в секунду, и им потребуется по 1000 с, чтобы закончить работу. Если алгоритм планирования будет прерывать процесс, ограниченный возможностями процессора, раз в 10 мс, процессы, ограниченные возможностями устройств ввода-вывода, закончат за 10 с вместо 1000 с

90