151
сталкивается с определёнными трудностями, поскольку до настоящего
времени не существует дисциплины диспетчеризации, однозначно
признанной лучшей. Все эксперты сходятся во мнении о
необходимости применения вытесняющей многозадачности и
карусельного (round robin) принципа диспетчеризации для реализации
вычислительной среды. Однако остаётся ряд вопросов, на которые нет
чёткого ответа. Как должна быть реализована обработка прерываний: с
относительными
или абсолютными приоритетами? Какими
критериями следует руководствоваться при выборе дисциплины
диспетчеризации? Данный доклад рассматривает некоторые из
поставленных вопросов.
Краткий обзор дисциплин диспетчеризации
Все дисциплины диспетчеризации подразделяются на два крупных
класса – бесприоритеные и приоритетные. Бесприоритетные
дисциплины диспетчеризации обусловливают крайне низкую скорость
реакции системы на входящие запросы, а потому должны быть сразу
отброшены. Приоритетные дисциплины диспетчеризации, в свою
очередь, подразделяются на дисциплины со статическими и
динамическими приоритетами. Дисциплины со статическими
приоритетами предполагают, что приоритет события
, возникающего в
системе, должен быть определён заранее и должен оставаться
неизменным в течение всего времени работы системы. Напротив,
дисциплины с динамическими приоритетами декларируют
непрерывную корректировку приоритета события. Каждый из
подходов имеет и достоинства, и недостатки.
Быстродействующие устройства в составе аппаратуры компьютера
требуют немедленной реакции системы. Для обработки прерываний от
этих
устройств необходимо устанавливать очень высокий приоритет,
не изменяющийся во времени.
Как показывает практика, событие, однажды определённое как
требующее немедленной реакции системы, продолжает оставаться
таковым постоянно. К таким событиям можно отнести, например,
необходимость подготовки новой порции данных для контроллера
прямого доступа к памяти в составе накопителя на жёстких дисках или
сетевого адаптера
. Малейшее увеличение времени реакции здесь
приводит к резкому снижению пропускной способности всей
операционной системы. К тому же на изменение приоритета задачи,
будь то программный или аппаратный способ реализации, уйдёт