1 분 소요


1. 캐시

1.1 캐시란?

캐시란 자주 사용하는 데이터나 값을 복사해놓는 임시 저장 장소를 말한다. (느린 저장장치에서 빠른 저장장치로 복사 -> 병목현상 해결)

  • 데이터 접근 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 줄이고 싶은 경우 사용한다.
  • 캐시는 CPU 사이 위치하고 메모리보다 빠른 SRAM 기반 저장장치이다.


1.2 캐시 작동 방식

  • CPU는 메모리를 접근해야 할 때 캐시를 먼저 방문하여 원하는 데이터가 있는지 찾아본다.
    • 캐시에서 원하는 데이터를 찾았으면 캐시 히트라고 하며, 그 데이터를 바로 사용한다.
    • 캐시에서 원하는 데이터를 못 찼았으면 캐시 미스라고 하며, 메모리로 가서 데이터를 찾는다.
    • 캐시 공간은 작으므로, 공간이 모자라게 되면 안 쓰는 데이터부터 삭제하여 공간을 확보한다. (Eviction)


캐시 메모리는 Level1부터 Level3까지 단계를 나누어 사용한다.

  • CPU(코어)와의 거리를 기반으로 L1, L2, L3 캐시라고 부른다.
  • L1 캐시는 CPU가 가장 먼저 접근하는 메모리다.


1.3 캐싱

데이터나 정보를 캐시에 저장하거나 캐시에서 불러와서 사용하는 과정을 의미한다.

즉, 캐시하는 과정을 캐싱이라고 하는 것이다.



2. 버퍼

2.1 버퍼란?

버퍼란 데이터를 모아서 전송함으로써 두 저장장치의 속도를 완화하는 장치를 말한다.

  • 적은 작업량으로 많은 데이터를 옮길수 있다.
  • 느린 입출력 장치에서 데이터를 읽을 때마다 하나씩 전송하면 실제로 전송되는 데이터 양이 매우 작지만, 일정량의 데이터를 모아 전송하면 적은 노력으로도 많은 데이터를 옮길 수 있는 것이다.
  • e.g., 유튜브 재생바, 유튜브 · 넷플릭스 · 왓챠 등 스트리밍 서비스에 많이 사용함!!
  • 버퍼에 대해 아주 자세히 알고싶다면 여기를 클릭하자


2.2 버퍼링

버퍼를 진행하는 과정을 버퍼링이라고 한다.



3. 스풀

3.1 스풀이란?

스풀은 CPU가 입출력장치가 독립적으로 동작하도록 고안된 S/W 버퍼를 말한다.

  • 디스크의 일부를 스풀공간이라 부르는 매우 큰 버퍼처럼 사용한다.
  • 디스크를 버퍼로 사용한다.
  • 스풀러는 인쇄할 내용을 순차적으로 출력하는 S/W로, 출력 명령을 내린 프로그램과 독립적으로 동작한다.


예시: 프린터의 스풀러

  • 인쇄할 내용을 H/W의 스풀러 공간에 저장하여 CPU가 다른 작업을 수행할 수 있도록 한다.
  • 스풀러가 없다면 프린터의 출력이 끝날 때까지 워드를 사용하지 못할 것이다.


3.2 스풀러 vs 버퍼

버퍼의 경우 여러 프로그램에 데이터들을 모아서 한번에 전송하지만, 스풀러의 경우 한 인쇄물이 완료될때까지 다른 인쇄물이 끼어들 수 없다.


카테고리:

업데이트:

댓글남기기