스풀링

스풀(, )이란 Simultaneous Peripheral Operation On-Line의 줄임말로서 컴퓨터 시스템에서 중앙처리장치와 입출력장치가 독립적으로 동작하도록 함으로써 중앙처리장치에 비해 주변장치의 처리속도가 느려서 발생하는 대기시간을 줄이기 위해 고안된 기법이다. 스풀링()은 스풀을 적용하는 것 또는 스풀을 위해 마련된 저장공간을 채우는 동작을 뜻한다. 스풀러(, ) 또는 인쇄 관리 소프트웨어는 우선 순위를 작업에 할당할 수 있게 하고, 인쇄할 때 사용자에게 알리며, 프린터끼리 서로 작업을 나누는 등의 일을 담당한다.

역사 
주변 기기들은 늘 핵심 처리 장치들보다 속도가 훨씬 느렸다. 이는 특히 초기 메인프레임에게 심각한 문제였다. 이를테면, 천공 카드나 인쇄된 출력물을 직접 읽는 잡(job)이 느린 기계 장치들의 속도에 맞추어 강제 실행되었다. IBM의 "스풀 시스템"(7070-IO-076)과 같은 최초의 스풀링 프로그램들은 데이터를 천공 카드로부터 자기 테이프로 복사하거나 테이프에서 거꾸로 천공 카드 및 프린터로 복사하였다. 훨씬 더 빠르면서 랜덤 액세스를 지원하는 하드 디스크들은 1960년대 중반에 자기 테이프를 대체하기 시작했으며 1970년대까지 이러한 테이프 이용은 근절되었다.

1960년대 초 IBM 메인프레임의 유닛 레코드 장비가 너무 느렸기 때문에 스풀링 대신 1401과 같은 소형 오프라인 머신을 사용하는 것이 일반적이었다.

스풀(spool)이라는 용어는 Simultaneous Peripheral Operations On-Line(SPOOL) 소프트웨어에서 기원한 것으로 짐작된다. 어원 자체는 확실하지 않다. Simultaneous peripheral operations on-line는 배크로님일 수 있다. 다른 설명으로는 이것이 자기 테이프의 스풀, 즉 릴을 의미하는 것이기도 하다.

적용 예 
스풀을 적용하는 가장 대표적인 곳은 프린터 출력 작업이다. CPU가 프린터 출력을 직접 제어한다면 프린터의 인쇄 작업이 끝날 때까지 다른 일을 하지 못하게 된다. 그런데 실제로 작업시간의 대부분은 CPU가 프린터의 요청을 기다리는 시간이기 때문에 CPU 사용효율이 매우 낮다. 이런 문제를 해결하기 위해 프린터로 전송될 데이터를 하드디스크에 잠시 저장하고, CPU는 다른 일을 처리하면서 필요할 때마다 조금씩 프린터로 보내주는 방식으로 CPU 사용효율을 향상시킬 수 있다.

윈도의 프린터 스풀 
대부분의 운영체제는 프린터에 대해 스풀 기능을 제공한다. 윈도의 프린터 속성 창에는 스풀 기능을 끄거나 켜는 옵션, 스풀 종료 후 인쇄하거나 바로 인쇄를 시작하는 옵션, 작업 스케줄링에서 스풀된 문서를 먼저 인쇄하는 옵션 등이 있다. 스풀 기능 사용, 바로 인쇄 시작, 스풀된 문서를 먼저 인쇄하는 것이 기본 옵션이다.

같이 보기 
 버퍼

각주 

운영체제 기술
유닉스 소프트웨어