Spooling ist ein Vorgang in Betriebssystemen, bei welchem zu bearbeitende Aufträge (etwa Druckaufträge) in einem Puffer im Speicher oder auf einem externen Datenspeicher gelagert werden, bevor sie der eigentlichen Verarbeitung zugeleitet werden. Die Abarbeitung der im Puffer gehaltenen Aufträge durch das verarbeitende System erfolgt als Stapelverarbeitung.
Durch diese Trennung der Produktion und Weiterverarbeitung oder Ausgabe von Daten ist es möglich, die Auslastung der Teilsysteme zu verbessern. So können einerseits die produzierenden Prozesse ohne Verzögerung weiterarbeiten (solange Speicherplatz im Puffer vorhanden ist), wenn die Verarbeitung langsamer erfolgt; andererseits kann das verarbeitende System zurückliegende Aufträge abarbeiten, während das produzierende System zeitaufwändige Berechnungen durchführt.
Typisches Beispiel ist hier die Druckerwarteschlange, in der Druckaufträge gesammelt und nacheinander abgearbeitet werden. Auch Mailserver sammeln zu versendende Mails üblicherweise in einem Spool-Verzeichnis, von dem aus sie dann verschickt werden.
Spooling bietet mehrere Vorteile:
Spool wird meist als Akronym des englischen Begriffs Simultaneous Peripheral Operation On-Line angesehen (also etwa Gleichzeitiger Gerätebetrieb während der Verarbeitung), es kann sich aber auch um ein Backronym handeln. In der Tat war auf Mainframe-Rechnern der Speicherplatz auf Festplatten und im Hauptspeicher wesentlich teurer als der Speicherplatz auf Magnetbändern, sodass Druckjobs auf ein Band (auf Spulen, engl. "spools") geschrieben wurden, das dann vom Drucksystem gelesen wurde.