메인 메모리

이동섭·2023년 11월 20일
0

메인 메모리

CPU가 직접 접근할 수 있는 기억 장치
프로그램이 메모리에 올라와야 프로세스가 생성됨

CPU는 레지스터가 지시하는대로 메모리에 접근해서 다음에 수행할 명령어를 가져온다.
메모리에 필요한 데이터가 없다면 해당 데이터를 우선적으로 가져와야함
-> MMU의 역할

MMU (Memory Management Unit, 메모리 관리 장치)

  • 논리 주소 -> 물리 주소로 변환
  • CPU가 메모리에 접근하는 것(메모리 보호, 캐시 관리)을 전체적으로 관리해주는 HW
    MMU의 역할
  1. 사용자가 기억 장소를 일일이 할당해야 하는 불편 해소
  2. 프로세스의 크기가 실제 메모리의 용량을 초과해도 실행 가능
  3. MMU가 지원되지 않으면 물리 주소에 직접 접근해야하는 부담 발생

메인 메모리의 직접적인 접근은 비효율적이므로, CPU와 메인 메모리 속도를 맞추기 위해 캐시가 존재한다.

프로세스는 본인의 공간에만 접근해야 하는 독립적인 메모리 공간을 가져야한다.
프로세스에게 잘못된 접근이 오면 trap 발생

base와 limit 레지스터를 활용한 메모리 보호 기법

base 레지스터는 메모리의 프로세스 시작 주소를 물리 주소로 저장, limit 레지스터는 프로세스의 사이즈를 저장
base <= 메모리 영역 < base + limit

해당 영역 밖에서 접근 요구 시 trap 발생

base, limit 레지스터는 커널 모드에서만 수정 가능 (사용자 모드에서 변경 불가능, 안전성 때문)

메모리 과할당

실제 메모리 사이즈보다 더 큰 메모리를 프로세스에 할당

프로세스가 사용하는 메모리의 일부만 실제 물리 메모리에 올라가고 나머지는 디스크에 저장되어 있는 상태
실제 필요할 경우에만 물리 메모리로 불러오는 방식

장점

메모리 이용 효율 높이고, 멀티 태스킹 환경에서 효과적으로 메모리 관리 가능

과할당 상황에서 모든 메모리가 사용 중이라 필요한 페이지를 불러올 빈 프레임이 없는 상황(페이지 폴트)이라면 메모리에 있는 프로세스를 디스크로 swap out하거나 페이지 교체 알고리즘을 이용해 메모리에서 페이지를 제거해야 한다.

0개의 댓글