▶ 캐시
- 캐시
- 캐시란 자주 사용하는 데이터나 값을 복사해놓는 임시 저장 장소를 말한다.
(느린 저장장치에서 빠른 저장장치로 복사 -> 병목현상 해결)
- 데이터 접근 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 줄이고 싶은 경우 사용한다.
- 캐시는 CPU 사이 위치하고 메모리보다 빠른 SRAM 기반 저장장치이다.
- 캐시 작동 방식
- CPU는 메모리를 접근해야 할 때 캐시를 먼저 방문하여 원하는 데이터가 있는지 찾아본다.
- 캐시에서 원하는 데이터를 찾았으면 캐시 히트라고 하며, 그 데이터를 바로 사용한다.
- 캐시에서 원하는 데이터를 못 찼았으면 캐시 미스라고 하며, 메모리로 가서 데이터를 찾는다.
- 캐시 공간은 작으므로, 공간이 모자라게 되면 안 쓰는 데이터부터 삭제하여 공간을 확보한다. (Eviction)
- 캐시 메모리는 Level1부터 Level3까지 단계를 나누어 사용한다.
- CPU(코어)와의 거리를 기반으로 L1, L2, L3 캐시라고 부른다.
- L1 캐시는 CPU가 가장 먼저 접근하는 메모리다.
- 캐싱
- 데이터나 정보를 캐시에 저장하거나 캐시에서 불러와서 사용하는 과정을 의미한다.
- 즉, 캐시하는 과정을 캐싱이라고 하는 것이다.
▶ 버퍼
- 버퍼
- 버퍼란 데이터를 모아서 전송함으로써 두 저장장치의 속도를 완화하는 장치를 말한다.
- 적은 작업량으로 많은 데이터를 옮길수 있다.
- 느린 입출력 장치에서 데이터를 읽을 때마다 하나씩 전송하면 실제로 전송되는 데이터 양이 매우 작지만, 일정량의 데이터를 모아 전송하면 적은 노력으로도 많은 데이터를 옮길 수 있는 것이다.
- ex) 유튜브 재생바, 유튜브 · 넷플릭스 · 왓챠 등 스트리밍 서비스에 많이 사용함!!
- 버퍼에 대해 아주 자세히 알고싶다면 여기를 클릭하자!!!
▶ 스풀
- 스풀
- 스풀은 CPU가 입출력장치가 독립적으로 동작하도록 고안된 S/W 버퍼를 말한다.
- 디스크의 일부를 스풀공간이라 부르는 매우 큰 버퍼처럼 사용한다.
- 디스크를 버퍼로 사용한다.
- 스풀러는 인쇄할 내용을 순차적으로 출력하는 S/W로, 출력 명령을 내린 프로그램과 독립적으로 동작한다.
- 예시: 프린터의 스풀러
- 인쇄할 내용을 H/W의 스풀러 공간에 저장하여 CPU가 다른 작업을 수행할 수 있도록 한다.
- 스풀러가 없다면 프린터의 출력이 끝날 때까지 워드를 사용하지 못할 것이다.
- 스풀러 vs 버퍼
- 버퍼의 경우 여러 프로그램에 데이터들을 모아서 한번에 전송하지만, 스풀러의 경우 한 인쇄물이 완료될때까지 다른 인쇄물이 끼어들 수 없다.
📎참조