Computer Science

[운영체제] 캐시 메모리, Cache Memory

Supreme_YS 2022. 3. 5. 12:00
  • 캐시 메모리란
    • 주기억장치에서 자주 사용하는 프로그램 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가 페이지 교체에 더 많은 자원을 소모하는 현상

 

  • 캐시의 지역성
    • 캐시 적중률(히트)를 높여야 캐시 효율성이 좋다.
    • 캐시에 저장할 데이터가 지역성을 가져야 한다.
    • 그래서 지역성이란?
      • 데이터 접근이 시간,공간적으로 가깝게 일어나는 것
      • 기억장치 내의 정보를 균일하게 액세스하는 것이 아닌 특정 부분을 집중적으로 참조하는 특성
    • 지역성의 종류
      • 시간적 지역성
        • 특정 데이터가 한 번 접근됐을때, 가까운 미래에 다시 접근할 가능성이 높은 것
        • 메모리 상 같은 주소에 여러번 읽기쓰기를 수행할 경우엔 상대적으로 작은 크기를 할당해도 된다.
      • 공간적 지역성
        • 메모리 주소로 가깝게 접근되었을떄
        • 메모리에 접근할때 해당 블록을 전부 가져오게 된다.
        • 메모리 주소를 오름차순, 내림차순으로 접근한다면 캐시 효율이 좋아진다.

'Computer Science' 카테고리의 다른 글

[운영체제] 가상 메모리, Virtual Memory  (0) 2022.03.06
[운영체제] Thread-safe  (0) 2022.03.06
[운영체제] 단편화  (0) 2022.03.05
[운영체제] 메모리 관리 전략  (0) 2022.03.04
[운영체제] 프로세스 동기화  (0) 2022.03.04