[운영체제] 스풀링 & 버퍼링

[운영체제] 스풀링 & 버퍼링



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

스풀링

  • 스풀링은 디스크의 일부를 스풀공간이라 부르는 매우 큰 버퍼처럼 사용하는 방식으로 CPU와 입출력장치 사이의 속도 차이를 해소하기 위해 사용
  • 디스크에 수록된 파일을 미리 입력 장치로부터 읽어들이고, 출력장치가 그것을 받을 수 있을 때까지 일시적으로 저장함으로써, 한 작업의 출력을 프린터를 통해서 인쇄하는 동안에 다른 작업의 입력을 읽어들일 수 있으며, 이 시간 동안 또 다른 작업이 수행 될 수 있다.
  • 다중작업
  • 즉, 많은 작업의 계산과 입출력을 중복할 수 있다.
  • 작업 풀(Job Pool)이라는 중요한 데이터 구조를 제공하는데, 이는 디스크에 읽혀져 실행을 위해 대기하고 있는 여러 개의 작업을 수행할 수 있도록 준비해 주고, 디스크에 저장된 작업들은 프로세서 이용률을 향상시키기 위해 OS가 다음에 수행할 작업을 선택할 수 있도록 해준다.
  • 스풀 : 일정한 기억장소로 하드디스크의 공간을 스풀이라고 함


버퍼링

  • 빠른 CPU와 상대적으로 속도가 느린 입출력장치 사이에 효율을 높이기 위해서 사용
  • CPU와 입출력 장치를 항상 활용하고자 함
  • 주기억장치 내에 버퍼를 둠으로써 입력시에는 CPU가 버퍼의 내용을 가져다 쓰고 입출력장치가 버퍼에 내용을 기록
  • 단일작업
  • 출력시에는 CPU가 연산된 결과를 버퍼에 저장하고, 출력장치는 버퍼의 내용을 꺼내서 출력
  • 한 레코드가 읽혀 CPU가 그것에 대해 연산을 시작함과 동시에 입출력 장치는 곧 다음에 필요한 레코드를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요로 하는 레코드를 기다림 없이 전달해 줄 수 있음.
  • 주기억 장치의 일정 부분을 버퍼로 사용
  • 버퍼 : 파일로부터 데이터 전송을 하여 저장하기 위한 주기억장치 공간으로 비교적 빠른 CPU와 느린 보조기억장치 사이의 완충 역할


추가 용어 정리

  • 가상기억장치(Virtual Memory)
    • 보조기억장치인 하드디스크 일부를 주기억장치처럼 사용하는 기술
    • 단점은 SSD가 아닌 HDD를 사용하기 때문에 속도가 느려질 수 있다.
  • 가상 디스크(Virtual Disk)
    • 주기억장치 일부를 보조기억자이인 하드디스크처럼 사용하는 기술(요즘 잘 안씀)
  • 인터리빙(Interleaving)
    • 중앙처리장치와 기억장치간의 실질적인 대역폭을 늘이기 위한 방법
    • 효율적인 주기억장치의 접근을 위하여 주기억장치를 독립된 기억장치 모듈로 나누어 동시에 주기억장치 모듈에 접근할 수 있도록 하는 방법이다.
    • 메모리 인터리빙은 단위시간에 여러 메모리에 동시 접근이 가능하도록 하여 메모리의 대역폭을 높이기(속도가 빠르다) 위한 구조이다. 
    • 즉, 인터리빙은 주기억장치의 액세스 속도를 빠르게 한다.
  • 사이클 스틸링(Cycle Stealing)
    • 중앙처리장치(CPU)가 입출력 전용 프로세서인 채널(Channel)에게 주기억장치의 접근을 양보하여 입출력의 효율을 높이기 위한 방법
    • DMA 모듈이 버스 사용권을 위해 CPU 동작을 일시 중단
    • 상태 정보를 저장하지 않음
    • 버스 사이클 동안 잠시 CPU를 제어
    • 주기억 장치 상이클의 특정한 주기만 정지


출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?