[운영체제] 스풀링(SPOOLing) 이란?

 

스풀링(SPOOLing) 개념

 

스풀링은 Simultaneous Peripheral Operation OnLine의 약자이다. 버퍼링은 주기억장치를 버퍼로 활용하지만 스풀링은 디스크(Disk)를 매우 큰 버퍼처럼 사용한다. 스풀링은 특히 다중 프로그래밍 환경에서 다수 프로세스들이 입출력장치를 서로 요구하거나 그 장치의 수가 제한되어 있는경우 이를 공유하기 위해 가상장치(Virtual Device)를 각 프로세스에게 제공해주는 개념이다.

 

운영체제 스풀링
운영체제 스풀링의 개념과 효과

보통 가상장치들은 스풀링 통제 프로그램에 의해 다스크에 나타난다. 이 때문에 다수의 프로세스들은 각기 독립적인 입출력장치를 갖게되는 셈이다. 프로세스들은 입력 또는 출력을 실제 입출력장치(Phsycal I/O device)를 통하지 않고 가상 입출력 장치(Virtual I/O device)인 디스크를 매체로 이용한다. 이후 다시 실제 입력과 출력을 행하도록 한다.

 

위와 같은 일련의 과정을 운영체제의 일부인 SPOOL(스풀)이라고 하는 프로그램이 수행하게 된다.

 

스풀링(SPOOLing) 효과

 

 

중앙처리장치 위주의 작업과 입출력 위주의 작업이 혼합된 경우 어느 정도의 디스크 공간과 테이블을 확보함으로써 중앙처리장치는 한 작업의 계산과 다른 작업의 입출력을 중복 수행할 수 있다. 이에 다라 효율을 극대화 할 수 있다.

 

스풀링은 작업 풀(Job Pool)이라고 하는 중요한 형태의 자료구조 형태를 제공함으로써 일반적으로 디스크에 읽혀 들여져 대기하고 있는 여러 작업들이 실행될 수 있도록 준비시키고 운영체제가 다음 수행할 작업을 선탤할 수 있도록 한다.

 

수행될 작업들이 카드 판독기 혹은 자기 테이프로부터 들어온다면, 이 순서를 무시하고 다른 순서로 해당 작업들을 수행할 수 없다. 작업이 들어오는 입력장치의 특성상 FCFS(First Come Firsr Served)가 지켜져야하기 떄문이다.

 

여러개의 작업들이 디스크와 같은 직접 적브(direct access)이 가능한 장치에 있다면, 작업은 완급 또는 우선순위에 따라 작업 스케줄링(job scheduling)이 가능하다.

'Public > 운영체제' 카테고리의 다른 글

[운영체제] 부트스트랩 및 BIOS와 POST  (0) 2020.08.18

+ Recent posts