Введение
Форма многозадачности в компьютерах, использование этого термина для обозначения изменений тяги в реактивных двигателях.
use of this term to refer to thrust changes in jet engines
В вычислительной технике спулинг – это специализированная форма многопрограммного режима, предназначенная для копирования данных между различными устройствами. В современных системах он обычно используется в качестве посредника между компьютерным приложением и медленным периферийным устройством, таким как принтер. Спулинг позволяет программам "передавать" задачу на выполнение периферийным устройством, а затем переходить к другим задачам или не начинать выполнение, пока ввод не будет преобразован. Специальная программа, называемая спулером, поддерживает упорядоченную последовательность заданий для периферийного устройства и передает ему данные с его собственной скоростью. И наоборот, для медленных устройств ввода, таких как считыватель карт, спулер может поддерживать последовательность вычислительных заданий, ожидающих данных, запуская каждое задание, когда весь необходимый ввод будет доступен; см. пакетную обработку. Сам спул относится к последовательности заданий или области хранения, где они хранятся. Во многих случаях спулер способен управлять устройствами на их полной номинальной скорости с минимальным влиянием на другие процессы. Спулинг – это сочетание буферизации и постановки в очередь.
Печатное катушки
В настоящее время наиболее распространенное применение буферизации — печать: документы, отформатированные для печати, сохраняются в очереди со скоростью компьютера, а затем извлекаются и печатаются со скоростью принтера. Несколько процессов могут записывать документы в буфер без ожидания и выполнять другие задачи, в то время как процесс "буферизатор" (или "спулер") управляет принтером. Например, когда крупная организация готовит расчетные ведомости, вычисление занимает всего несколько минут или даже секунд, а печать может занять несколько часов. Если бы программа для расчета заработной платы печатала ведомости напрямую, она не смогла бы перейти к другим вычислениям, пока не были напечатаны все ведомости. Аналогично, до добавления буферизации в операционные системы ПК, текстовые процессоры не могли выполнять никаких других действий, включая взаимодействие с пользователем, во время печати. Программное обеспечение для управления печатью часто включает в себя различные дополнительные функции, такие как возможность назначения приоритетов заданиям на печать, уведомление пользователей об окончании печати их документов, распределение заданий печати между несколькими принтерами, выбор подходящей бумаги для каждого документа и т. д. Сервер печати использует методы буферизации, чтобы позволить многим компьютерам совместно использовать один и тот же принтер или группу принтеров.
Страница баннера
Печатные очереди можно настроить для добавления баннерной страницы, также называемой страницей разделения, листом задания или разделителем печати, в начало и конец каждого документа и задания. Это позволяет разделять документы друг от друга, идентифицировать каждый документ (например, по его названию) и часто также указывать, кто его напечатал (например, по имени пользователя или имени задания). Баннерные страницы особенно полезны в офисах, где несколько человек используют небольшое количество принтеров. Они также полезны, когда одно задание может создавать несколько документов. В зависимости от конфигурации, баннерные страницы могут генерироваться на каждом клиентском компьютере, на централизованном сервере печати или самим принтером. На принтерах, использующих непрерывные формы с перфорацией, начальная баннерная страница часто печаталась дважды, чтобы одна копия всегда была лицевой стороной вверх при разделении заданий. Страница могла содержать линии, напечатанные поверх перфорации, которые были бы видны по краю стопки распечатанных документов, что позволяло оператору легко разделять задания. Некоторые системы также печатали баннерную страницу в конце каждого задания, чтобы пользователи были уверены, что получили все свои документы.
Другие применения
Спулирование также используется для организации доступа к устройствам чтения и перфорации перфокарт, накопителям на магнитной ленте и другим медленным последовательным устройствам ввода-вывода. Оно позволяет приложению работать с тактовой частотой процессора, а периферийные устройства – функционировать на их максимальной номинальной скорости. В системах пакетной обработки спулирование используется для поддержания очереди задач, готовых к выполнению, которые могут быть запущены, как только система располагает необходимыми ресурсами для их обработки. Некоторые системы обмена сообщениями с сохранением и пересылкой, такие как uucp, использовали термин "spool" для обозначения своих очередей входящих и исходящих сообщений, и эта терминология до сих пор встречается в документации к программам электронной почты и Usenet.
История
Периферийные устройства всегда были значительно медленнее, чем основные вычислительные блоки. Это представляло собой особенно острую проблему для первых мейнфреймов. Например, задание, которое считывало перфокарты или генерировало печатные выходные данные напрямую, было вынуждено выполняться со скоростью этих медленных механических устройств. Первые программы, такие как "SPOOL System" (7070 IO 076) от IBM, копировали данные с перфокарт на магнитную ленту, а затем обратно с ленты на перфокарты и принтеры. Жесткие диски, обеспечивавшие более высокую скорость ввода-вывода и поддержку произвольного доступа, начали заменять магнитную ленту для организации пакетной обработки в середине 1960-х годов, а к 1970-м годам практически полностью вытеснили её. Поскольку оборудование для работы с данными в блочной форме на мейнфреймах IBM начала 1960-х годов было медленным, для более крупных систем было принято использовать небольшой автономный компьютер, например IBM 1401, вместо организации пакетной обработки. Термин "spool" мог возникнуть от программного обеспечения Simultaneous Peripheral Operations On Line (SPOOL), однако происхождение этого термина неясно. Возможно, Simultaneous Peripheral Operations On Line является ретроактивным акронимом. Другое объяснение заключается в том, что он отсылает к "катушкам" или бобинам магнитной ленты, хотя использование слова "spool" в этом контексте нетипично.