Halo World

버퍼링과 스풀링 본문

개발 지식/OS

버퍼링과 스풀링

_Yeony 2017. 8. 5. 16:32

| 공통점


버퍼링과 스풀링 모두 CPU의 처리속도와 입출력 장치의 속도 차이를 보완하기 위한 방법



| 차이점


  1) 버퍼링

- 버퍼링은 빠른 CPU와 상대적으로 속도가 느린 입출력장치 사이에 효율을 높이기 위해서 사용

- CPU와 입출력 장치를 항상 활용하고자 함

- 주기억장치 내에 버퍼를 둠으로써 입력시에는 CPU가 버퍼의 내용을 가져다 쓰고 입력장치가 버퍼에 내용을 기록

- 출력시에는 CPU가 연산된 결과를 버퍼에 저장하고, 출력장치는 버퍼의 내용을 꺼내서 출력

- 한 레코드가 읽혀 CPU가 그것에 대해 연산을 시작함과 동시에 입출력 장치는 곧 다음에 필요한 레코드를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요로하는 레코드를 기다림 없이 전달해 줄 수 있음

- 주기억 장치를 버퍼로 사용

- 버퍼 : 파일로부터 데이터 전송을 하여 저장하기 위한 주기억장치 공간으로 비교적 빠른 CPU과 느린 보조기억장치 사이의 완충역할



  2) 스풀링

- 스풀링은 디스크의 일부를 스풀공간이라 부르는 매우 큰 버퍼처럼 사용하는 방식으로 CPU와 입출력장치 사이의 속도 차이를 해소하기 위해 사용

- 디스크에 수록된 파일을 미리 입력 장치로부터 읽어들이고, 출력장치가 그것을 받을 수 있을 때까지 일시적으로 저장함으로써, 한 작업의 출력을 프린터를 통해서 인쇄하는 동안에 다른 작업의 입력을 읽어들일 수 있으며, 이 시간 동안 또 다른 작업이 수행될 수 있다.

- 즉, 많은 작업의 계산과 입출력을 중복할 수 있다.

- 작업 풀(Job Pool)이라는 중요한 데이터 구조를 제공하는데, 이는 디스크에 읽혀져 실행을 위해 대기하고 있는 여거 개의 작업을 수행할 수 있도록 준비해 주고, 디스크에 저장된 작업들은 프로세서 이용률을 향상시키기 위해 OS가 다음에 수행할 작업을 선택할 수 있도록 해줌

- 디스크를 버퍼로 사용

- 스풀 : 일정한 기억장소로 하드디스크의 공간을 스풀이라고 함




[참고]

http://m.cafe.daum.net/jeenoh/1KSf/12?q=D_YGnwgdD8Nqc0&http://proneer.tistory.com/entry/%EB%B2%84%ED%8D%BC%EB%A7%81%EA%B3%BC-%EC%8A%A4%ED%92%80%EB%A7%81

'개발 지식 > OS' 카테고리의 다른 글

세그멘테이션 기법  (0) 2017.08.13
로더란?  (1) 2017.08.09
디렉토리 구조  (0) 2017.07.31
시스템 소프트웨어와 응용 소프트웨어  (0) 2017.07.30
디스크 스케줄링  (0) 2017.07.26