Качество диспетчеризации и гарантии обслуживания

Одна из проблем, которая возникает при выборе подходящей дисциплины обслу­живания — это гарантия обслуживания. Дело в том, что в некоторых дисципли­нах, например в дисциплине абсолютных приоритетов, низкоприоритетные про­цессы получаются обделенными многими ресурсами и, прежде всего, процессорным временем. Возникает реальная дискриминация низкоприоритетных задач, в резуль­тате чего они достаточно длительное время могут не получать процессорное время. В конце концов, некоторые процессы и задачи вообще могут быть не выполнены к заданному сроку. Известны случаи, когда вследствие высокой загрузки вычисли­тельной системы отдельные процессы вообще не выполнились, несмотря на то что прошло несколько лет (!) с момента их планирования. Поэтому вопрос гарантии обслуживания является очень актуальным.

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

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


64__________________________________________ Глава 2. Управление задачами

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

Гарантировать обслуживание можно, например, следующими тремя способами.

- Выделять минимальную долю процессорного времени некоторому классу про­
цессов, если по крайней мере один из них готов к исполнению. Например, можно
отводить 20 % от каждых 10 мс процессам реального времени, 40 % от каждых
2 с — интерактивным процессам и 10 % от каждых 5 мин — пакетным (фоно­
вым) процессам.

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

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

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

- Загрузка центрального процессора (CPU utilization). В большинстве персональ­ных систем средняя загрузка процессора не превышает 2-3 %, доходя в момен­ты выполнения сложных вычислений и до 100 %. В реальных системах, где компьютеры (например, серверы) выполняют очень много работы, загрузка про­цессора колеблется в пределах от 15-40 % (для легко загруженного процессо­ра) до 90-100 % (для тяжело загруженного процессора).

- Пропускная способность центрального процессора (CPU throughput). Пропус­кная способность процессора может измеряться количеством процессов, кото­рые выполняются в единицу времени.

- Время оборота (turnaround time). Для некоторых процессов важным критери­
ем является полное время выполнения, то есть интервал от момента появления
процесса во входной очереди до момента его завершения. Это время названо
временем оборота и включает время ожидания во входной очереди, время ожи­
дания в очереди готовых процессов, время ожидания в очередях к оборудова­
нию, время выполнения в процессоре и время ввода-вывода.

- Время ожидания (waiting time). Под временем ожидания понимается суммар­
ное время нахождения процесса в очереди готовых процессов.

- Время отклика (response time). Для интерактивных программ важным показа­телем является время отклика, или время, прошедшее от момента попадания процесса во входную очередь до момента первого обращения к терминалу.

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

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


Диспетчеризация задач с использованием динамических приоритетов_____________ 65

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

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

В случае мультипроцессорных систем применяются следующие методы повыше­ния производительности системы:

- совместное планирование, при котором все потоки одного приложения (небло-
кированные) одновременно ставятся на выполнение процессорами и одновре­
менно снимаются с выполнения (для сокращения переключений контекста);

- планирование, при котором находящиеся в критической секции задачи не пре­рываются, а активно ожидающие входа в критическую секцию задачи не ста­вятся на выполнение до тех пор, пока вход в секцию не освободится;

- планирование с учетом так называемых подсказок (hints) программы (во время
ее выполнения), например, в известной своими новациями ОС Mach имелось
два класса таких подсказок: во-первых, указания (разной степени категорично­
сти) о снятии текущего процесса с процессора, во-вторых, указания о том про­
цессе, который должен быть выбран взамен текущего.

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








Дата добавления: 2016-09-20; просмотров: 975;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.