Vyšlo v týdeníku Computerworld č. 23/92 v roce 1992
Vytištěno z adresy: http://www.earchiv.cz/a92/a223c120.php3

Spooling

Představte si následující scénu, jako vystřiženou z počítačového hororu: v počítačové síti se dva uživatelé přibližně ve stejný okamžik rozhodnou něco si vytisknout na téže sdílené tiskárně. Jejich aplikační programy proto začnou postupně předávat tiskárně jednotlivé znaky, a tato je průběžně tiskne. Vůbec ji nezajímá, jaký je jejich smysl a od koho pochází. Jednoduše je vytiskne - jeden znak od prvního uživatele, pak například dva od druhého, pak hned celé slovo od prvního, od druhého opět jeden znak atd. Výsledek snad ani není třeba pojmenovávat.

Na naší scénce není podstatné to, že jsme ji situovali do počítačové sítě - mohla se stejně tak dobře odehrát na kterémkoli samostatném víceuživatelském počítači, a dokonce také i v jednoúlohovém prostředí, ve kterém právě běžící aplikace průběžně vytváří více než jeden výstupní soubor na tiskárně. Podstatná není ani tiskárna, stejná situace nastává i u některých jiných výstupních zařízení.

Podstatou problému je skutečnost, že šlo o současné využití takového zařízení, které nelze sdílet. Tedy u kterého není možné, aby s ním přímo pracovalo více programů, procesů či úloh současně. Jinak je tomu například u diskových pamětí - zde je docela dobře možné, aby každé jednotlivé čtení či zápis sektoru "patřilo" jiné úloze. Na tiskárně, plotteru a podobných výstupních zařízeních však může tisknout, resp. kreslit v daný okamžik vždy jen jedna úloha, jinak by došlo k nežádoucímu promíchání jednotlivých výstupů.

Právě naznačený problém se samozřejmě musel objevit již u prvních víceúlohových operačních systémů, a byl vyřešen technikou, označovanou jako spooling (od anglického: SPOOL resp. Simultaneous Peripheral Operations On-Line, neboli: simultánní operace s periferními zařízeními, prováděné ve spřaženém režimu).

Myšlenka spoolingu je velmi jednoduchá. Výstup více úloh na zařízení, které není možné sdílet, je ve skutečnosti průběžně shromažďován na takovém zařízení, které sdílet lze. V námi zvoleném případě tisku na tiskárně by to byl nejspíše disk - výstupní data jednotlivých úloh, určená pro tiskárnu, by se proto ve skutečnosti průběžně ukládala na disk. Z disku by se pak přenesla na tiskárnu a skutečně vytiskla jako celek, a to až v okamžiku, kdy budou připravena všechna. Tedy až poté, co příslušná úloha "dokončí" svůj tisk (přesněji v okamžiku, kdy uzavře příslušný výstupní soubor).

Technika spoolingu se původně používala i pro sdílení "nesdílitelných" vstupních zařízení, především snímačů děrných štítků - z nich se nejprve obsah jednotlivých štítků přenesl na disk a každá jednotlivá úloha si pak svá vstupní data ve skutečnosti četla z disku. Bylo to navíc i výrazně rychlejší, než přímé čtení z pomalých snímačů.

V dnešní době se však spooling používá prakticky jen pro výstupní operace, nejčastěji právě pro sdílení tiskáren. Na myšlence spoolingu jsou pak založeny mimo jiné všechny tiskové servery (print servery).