ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] - Memory
    CS/면접준비 2022. 9. 30. 14:26

    Memory


    Main Memory

    • 주 기억장치라고도 불린다.
    • CPU가 직접 Access 가능한 기억장치
    • Process가 실행되려면, Program이 Memory에 올라와야 한다.

     

    • Cpu는 Register가 지시하는데로 Memory에 접근하여 수행할 명령어를 가져온다.
    • 명령어 수행 시 Memory에 필요한 Data가 없다면, 데이터를 가져와야 한다.
    • 이 때 도움을 주는 것이 MMU

     

    MMU ( Memory management Unit )

    • Logical Address -> Physical Address로 변경하여 준다.
    • Memory 보호, Cache 관리, Cpu Memory 접근 을 관리하여 준다.
    • Base+Limit을 활용하여 접근가능한 메모리의 영역을 알고 이외의 영역에 접근 시 Trap이 발생
    • 안정성을 위해 Base+Limit은 Kernel에서 관리한다.

    • Physical Memory의 공간이 한정적이기 때문에 사용자에게 더 많은 메모리를 제공하기 위한 Virtual Memory가 나오게 되면서 Virtual Address라는 개념이 등장
    • Virtual Address에서 Real Data(Physical Memory)가 있는 곳에 Access 하기 위해서는 빠른 주소 변환이 필요한데 이를 도와준다.

     

    • MMU가 없다면, CPU는 Physical Memory에 직접 접근해야 하는 부담이 있다.
    • 사용자가 기억장소를 일일히 할당해야 하는 불편을 겪는다.
    • Process의 크기가 실제 메모리 용량을 초과해도 실행 가능하게 해준다.

     

    캐시 메모리


    • Main Memory에 저장된 내용 중 일부를 임시로 저장한다.
    • Processor(CPU)와 Main memory의 성능 차이로 성능 저하를 방지 하기 위해 존재한다.
    • CPU가 이미 보았던 것을 재참조 시 Memory 참조, 인출 과정을 줄여 Cost를 줄여준다.

     

    • CPU 에서 Address를 Cache에 전달 -> 존재한다면 Hit 하고 Data 전달
    • CPU 에서 Address를 Cache에 전달 -> 존재하지 않으면 Miss -> Main Memory 접근 -> 데이터 인출 -> Cache 저장 -> CPU 전송

     

    Cache Hit

    캐시의 적중률을 높이기 위해 지역성의 원리 사용
    • 지역성 = 기억 장치 내에 정보를 균일하게 Access하지 않고 순간에 특정 부분을 집중적으로 참조
    • Time 지역성 = 최근에 참조된 Address는 곧 참조
    • Space 지역성 = 실제 프로그램이 참조한 주소와 인접한 주소 내용이 다시 참조

     

    캐싱 라인

    • 데이터들이 캐시에 저장한다 해도 모든 Data를 순회하는 것은 시간 낭비가 된다.
    • 목적 Data가 저장되었을 때 바로 접근하여 출력할 수 있도록 특정 자료 구조를 사용하여 묶음으로 저장한것
    • 결국 어떻게 Mapping하여 속도를 향상 시킬 것인가

     

    1. Direct Mapping

    • Main Memory를 일정한 크기의 Block으로 나누어 캐시의 정해진 위치에 Mapping
    • 간단하며 구현이 쉽다.
    • Hit Rate가 떨어진다.
    • 동일한 캐시 메모리에 사용되는 여러 데이터들을 사용할 때 충돌이 발생한다.

    2. Full Associative Mapping

    • 캐시 메모리 빈 공간에 마음대로 주소를 저장하는 방식
    • Insert는 빠르지만, 조회 시에는 모든 Tag를 탐색해야 할 수 있다.

     

    3. Set Associative Mapping

    • Direct Mapping과 Full Associative Mapping의 사이 단계로 빈공간에 저장하되, 특정 행에만 저장이 가능하다.
    • Insert와 조회가 중간 속도를 거치기 때문에 가장 많이 사용

     

    Cache Miss

    • CPU가 참조하려는 Data가 Cache에 없을 때

    1. Compulsory Miss

    특정 Data에 처음 Accss

     

    2. Capacity Miss

    Cache Memory에 공간 부족

     

    3. Conflict Miss

    A와 B가 같은 Cache Memory에 Mapping

    'CS > 면접준비' 카테고리의 다른 글

    [컴구] - 컴퓨터의 구성  (0) 2022.09.30
    [OS] - File System  (1) 2022.09.30
    [OS] - Paging Algorithm  (0) 2022.09.30
    [OS] - Paging / Segmentation  (0) 2022.09.30
    [OS] - Semaphore / Mutex  (0) 2022.09.30

    댓글

Designed by Tistory.