Большую часть времени, когда программа печати бездействовала, работали
прикладные программы. Как только устройство печати заканчивало вывод
очередной строки, управление передавалось программе операционной системы,
посылавшей новую строку на печать и возвращавшей управление прерванной
прикладной программе до того момента, как устройство печати вновь
освобождалось.
Аналогичный аппарат распечатки использовался в нескольких системах,
включая UNIVAС III. Возможность мультипрограммирования достигалась за счет
незначительного усложнения механизма прерываний. Если происходило
прерывание от устройства ввода-вывода, обработчик соответствующих прерываний
определял, могла ли выполняться программа, поддерживавшая спулинг, и при
необходимости передавал ей управление. Основы современного
мультипрограммирования были заложены уже тогда, когда появился механизм,
обеспечивающий поочередную работу вспомогательной системной программы и
программ пользователей.
Отличительной особенностью систем со спулингом является то, что, как
правило, выводящийся в данный момент на печать файл относится к одной из
закончивших выполнение программ, Программа, поддерживающая спулинг,
потребляет лишь незначительную часть ресурсов вычислительной установки и
минимально влияет на выполнение программ пользователей. Взаимное влияние
прикладных программ и системной программы имеет место только в том случае,
когда первые лишаются услуг процессора или подсистемы ввода-вывода, поскольку
они используются программой поддержки спулинга. В результате таких задержек
общее время выполнения процессором прикладных программ увеличивается.
Однако даже в этой ситуации программы пользователей в целом выполняются
быстрее, чем если бы они были напрямую связаны с устройством печати. Влияние
спулинга на выполнение прикладных программ сводится к минимуму, если для
обмена с устройствами прикладных программ служат выделенные каналы или если
прикладным программам требуется небольшая часть процессорного времени.
Существуют два способа обеспечения спулинга. Один из них, принятый в
системе OS/360, состоит в том, что программа, поддерживающая спулинг,
рассматривается как обычная обрабатывающая программа. Иными словами,
программа системного вывода запускается обычным способом, применяет
стандартные интерфейсы и получает ресурсы на правах одного из компонентов
мультипрограммной смеси. Другой способ нашел свое отражение в системе ЕХЕС II
для машины UNIVAС 1107. Важная особенность этой системы (а также более
поздних систем серии 1100 и системы МVS фирмы IВМ) заключается в
возможности запуска процесса печати до завершения создания прикладной
программой соответствующего файла.
Подход, основанный на концепции разработчиков фирмы UNIVАС,
предусматривает введение специальной системной функции симбионта. Ее связи с
программами пользователей столь тесны, что вызывают ассоциацию с
биологическим симбиозом. Прикладные программы и компонент, реализующий эту