캐시 메모리란
- 주기억장치에서 자주 사용하는 프로그램 or 데이터를 저장해 속도를 빠르게 하는 메모리
- 주기억장치와 캐시 기억 장치 사이에서 정보 옮기는 행위를 사상(매핑)이라고 함
- 매핑의 3가지 방법
- 직접 매핑: 메인 메모리를 여러 구역으로 분할하여 캐시 슬롯과 매핑
- 장점: 절차가 단순하고 신속
- 단점: 높은 캐시 미스율
- 연관 매핑: 메인 메모리의 각 블록이 캐시 어느 슬롯이던 적재 가능
- 장점: 지역성 높은 접근 시 캐시 적중률이 높다.
- 단점: 구현이 어려워 구현 비용이 상승한다.
- 집합 연관 매핑: 캐시와 메모리가 M대 1로 대응한다.
- 장점: 앞의 두 가지 매핑 방법의 장점을 수용
- 단점: 구현 비용이 비쌈
- 직접 매핑: 메인 메모리를 여러 구역으로 분할하여 캐시 슬롯과 매핑
- 캐시 메모리 교체 알고리즘의 종류
- Random - 교체될 페이지를 임의 선정 - 오버헤드가 적음
- FIFO - 가장 오래 있던 페이지를 교체 - 자주 사용되는 페이지가 교체될 수 있다.
- LFU(Least Frequently Used) - 사용 횟수가 가장 적은 페이지 교체 - 최근 적재된 페이지가 교체될 우려가 있다.
- LRU(Least Recently Used) - 가장 오랫동안 사용되지 않은 페이지 교체 - 타임 스탬핑에 의한 오버헤드가 존재할 수 있다.
- Optimal - 향후 가장 참조 되지 않을 페이지를 교체 - 실현 어렵다.
- NUR(Not Used Recently) - 참조 비트와 수정 비트로 미사용 페이지 교체 - 최근 사용되지 않은 페이지 교체
- SCR(Second chance Replacement) - 최초 참조 비트 1로 세팅, 1인 경우 0으로 세팅, 0인 경우 교체 - 한 번 더 기회를 준다.
- 페이지 교체 관리 시 문제점
- 페이지 부재 발생 - 기억장치에 없는 페이지를 사용할 때
- 요구 페이징 - 요구될 때에만 프로세스가 페이지를 적재하는 방식
- 쓰레싱 발생 - 페이지 부재가 너무 빈번해 cpu가 페이지 교체에 더 많은 자원을 소모하는 현상
캐시의 지역성
- 캐시 적중률(히트)를 높여야 캐시 효율성이 좋다.
- 캐시에 저장할 데이터가 지역성을 가져야 한다.
- 그래서 지역성이란?
- 데이터 접근이 시간,공간적으로 가깝게 일어나는 것
- 기억장치 내의 정보를 균일하게 액세스하는 것이 아닌 특정 부분을 집중적으로 참조하는 특성
- 지역성의 종류
- 시간적 지역성
- 특정 데이터가 한 번 접근됐을때, 가까운 미래에 다시 접근할 가능성이 높은 것
- 메모리 상 같은 주소에 여러번 읽기쓰기를 수행할 경우엔 상대적으로 작은 크기를 할당해도 된다.
- 공간적 지역성
- 메모리 주소로 가깝게 접근되었을떄
- 메모리에 접근할때 해당 블록을 전부 가져오게 된다.
- 메모리 주소를 오름차순, 내림차순으로 접근한다면 캐시 효율이 좋아진다.
- 시간적 지역성
'기술면접 > 운영체제' 카테고리의 다른 글
[운영체제] 사용자 수준 스레드와 커널 수준 스레드 (0) | 2022.03.02 |
---|---|
[운영체제] Thread-safe란? (0) | 2022.02.28 |
[운영체제] 멀티 프로세스와 멀티스레드 (0) | 2022.02.25 |
[운영체제] 프로세스와 스레드 차이 (0) | 2022.02.25 |
운영체제 10장 가상메모리 페이지 교체 알고리즘 (0) | 2022.01.19 |
댓글