이 블로그 검색

2012년 3월 30일 금요일

Buffering & Spooling


Buffering


  Buffering은 I/O channel을 통하여 data가 buffer에 저장된 후,CPU가 buffer에 접근하여
연산을 수행하도록 한다. CPU가 buffer를 접근하는 동안 I/O channel을 통하여 data를 입력하는
것은 불가능하지만 CPU가 연산을 수행하는 동안에는 입력하는 것이 가능하다.
  따라서, buffer가 하나일 경우에는 CPU가 buffer에 접근하는 동안 I/O device는 idle 상태에 
있게 된다. 그러나 buffer를 두 개 사용하는 double buffering에서는 CPU가 하나의 버퍼에 접근하는
동안 다른 버퍼는 다음 data를 계속 입력받음으로써 CPU의 동작과 I/O device의 동작을 동시에
수행할 수 있게된다. circular buffering은 이러한 개념을 확장하여 세 개이상의 buffer를 사용한다.
출력도 이와 유사한 buffering을 할 수 있다.


Spooling (Simultaneous Peripheral Operation On-line )


   buffering은 I/O device마다 buffer를 두지만 spooling은 disk를 하나의 매우 큰 buffer처럼 사용하며
disk를 통하여 I/O를 수행한다.


Comparison


   buffering과 spooling은 모두 I/O device와 CPU간의 속도 차이를 줄여 CPU 이용률을 개선하기 위한
방법이다. buffering은 단지 하나의 작업의 I/O와 CPU 연산을 동시 수행할 수 있지만 spooling은 여러 작업들간의 I/O와 CPU 연산을 동시에 수행할 수 있다. 따라서 spooling은 buffering에 비하여 system 성능에 직접적인 향상 효과를 일으킬 수 있다.


댓글 없음:

댓글 쓰기