Гарантии обслуживания
Более жестким требованием к системе, чем просто гарантированное завершение процесса, является его гарантированное завершение к указанному времени или за указанный интервал времени. Стратегия, учитывающая жесткие временные ограничения, является частным случаем стратегии, при которой предпочтение отдается привилегированным пользователям. Какие процессы имеют жесткие временные ограничения? В системе с пакетными и интерактивными процессами на последние можно наложить жесткие временные ограничения, чтобы обеспечивать необходимое время ответа. В некоторых прикладных системах управления процесс, связанный с устройствами, внешними по отношению к вычислительной системе, может требовать установки его на процессор с определенной частотой или в определенные моменты времени. Для программы составления платежной ведомости временным ограничением является требование eе выполнения за день или два до выплаты денег. Существуют дисциплины планирования, учитывающие жесткие временные ограничения, но не существует дисциплин, которые могли бы предоставить больше процессорного времени, чем может быть в принципе выделено.
Планирование с учетом жестких временных ограничений легко реализовать, организуя очередь готовых к исполнению процессов в порядке возрастания их временных ограничений. Основным недостатком такого простого упорядочивания является то, что процесс за счет других процессов может быть обслужен быстрее, чем ему необходимо. Например, 5-минутному пакетному процессу, который должен быть выполненен в течение 20 минут, нужна только одна четверть процессорного времени, доступного в течение ближайших 20 минут. Если приоритет этого процесса больше, чем у других, и его временные ограничения самые маленькие, то он может быть поставлен на процессор и выполнен до конца. Это задержит остальные процессы, даже очень короткие, на целых 5 минут.
Чтобы обеспечить необходимое время ответа, можно воспользоваться другим подходом: вместо того, чтобы выполнять процесс за один раз до конца, как это было в предыдущем случае, выделять ему процессор несколько раз в течение некоторого времени. Гарантировать обслуживание можно тремя разными способами:
1. Выделять минимальную долю процессорного времени некоторому классу процессов, если по крайней мере один из процессов готов к исполнению.
2. Выделять минимальную долю процессорного времени некоторому конкретному процессу, если он готов к исполнению.
3. Выделять столько процессорного времени некоторому процессу, чтобы он мог выполнить необходимые действия к сроку.
В первом случае разным классам процессов соответствуют требования, выраженные в терминах различных временных периодов. Например, можно отводить 10 % от каждых 10 мсек процессам реального времени, 45 % от каждых 2с - интерактивным процессам и 25 % от каждых 10 мин - пакетным процессам. Конечно, сумма гарантированного времени обслуживания не должна превышать 100 %.
Во втором случае можно гарантировать время обслуживания, исходя из оплачиваемых приоритетов или из необходимости выполнять демонстрационную программу при большой загрузке системы. Третий способ применим к пакетным процессам, таким, например, как программы, выдающие сообщения о состоянии пациентов больницы.
Второй способ можно рассматривать как частный случай первого, класс которого имеет одного представителя. Третий способ можно свести ко второму, выделяя процессу определенный процент времени, равный отношению заказанного времени к разности между временем появления процесса в системе и временем, к которому процесс должен быть завершен, учитывая при этом пребывание процесса в заблокированном состоянии.