Cтраница 2
Важной функцией, которую можно легко выполнять при генерировании системы, является изменение внешней конфигурации всей системы аппаратуры, так что программист прикладных задач может игнорировать различия между машинами. Это ценное свойство при управлении технологическими процессами позволяет прогонять прикладные программы на машине в условиях лаборатории или опытного производства точно так же, как на машине, имеющей иную конфигурацию и расположенной на действующем производстве. Этот метод может быть распространен как на центральный процессор, так и на устройства и подсистемы ввода-вывода. Операционная система просто заполняет таблицы эквивалентности, устанавливающие связь между действительной и моделирующей конфигурациями. Моделирующая машина или устройство может быть даже проще или по крайней мере понятнее программисту прикладных задач. Например, имеет смысл моделировать магнитную ленту на запоминающем устройстве прямого доступа для целого ряда программ. В этом случае программа обслуживания магнитной ленты должна содержать индикаторы того, какие ленты являются рабочими, а какие - моделирующими. [16]
Например, запоминание состояния ЦП во время обработки прерывания прерывать нельзя, иначе невозможно гарантировать возвращение к программе. Кроме того, маскирование или запрещение прерываний - это способ управления ресурсами, позволяющий программисту управлять теми частными функциями, которые не допускают последовательного повторного использования. Однако злоупотребление маской, аппаратной или программной, может значительно снизить эффект от преимуществ применения принципа приоритетного прерывания. Поэтому использование маски должно быть объектом пристального внимания как разработчика ОС, так и программиста прикладных задач. [17]
Одна очевидная функция приспособления относится к заданию таблиц переменной длины, которые динамически используются системой и обычно хранятся в главной памяти. Важно, чтобы такие таблицы контролировались пользователем. Конкретная АСУ может быть такой, что лишь отдельные таблицы действительно оказываются большими. Разрешая пользователю определять длину таких таблиц, можно избежать резервирования большого объема главной памяти, а именно той ее части, которая редко используется. Однако для этого нужно разобраться в конкретном применении; кроме того, требуется определенный навык и опыт программиста прикладных задач. Именно по этой причине разработчик ОС не в состоянии принимать подобные решения. Примером такой таблицы может служить любая таблица очереди, содержащая не более N позиций. Однако у некоторых пользователей это значение N может лишить почти всякого смысла формирование очереди за соответствующим ресурсом. [18]