상세 컨텐츠

본문 제목

운영체제 - 물리 메모리 관리

공부

by myeongjaechoi 2024. 5. 1. 10:26

본문

메모리 구조

  • 메모리의 각 주소는 1 byte 단위로 나뉨
  • CPU 내의 MMU에서 논리 주소 또는 가상 주소를 물리 주소로 변환해 줌
  • 물리 메모리로부터 읽거나 메모리에 쓸 데이터의 물리 메모리 주소는 CPU내의 메모리 주소 레지스터(MAR)에 저장됨
    • 메모리 주소 레지스터(MAR) 크기 - 2^32byte (4GB)
  • 주소는 0번 부터 시작
  • 메인 메모리는 OS 영역과 user 영역으로 나뉨
    • OS는 사용자 OS가 침범하지 못하도록 분리함

물리 주소와 논리 주소

  • 물리 주소
    • 실제 물리 메모리(RAM)의 주소
    • 메모리 주소 레지스터(MAR)에 저장되는 주소
  • 논리 주소
    • CPU에 의해 생성되는 논리 주소
    • 각 프로세스는 독립적이고 연속된 논리 주소 공간을 가짐
    • 실제 물리 주소로 접근하기 위한 참조용으로 사용

Adrdress binding

  • 프로그램(프로세스)의 논리 주소를 실제 메모리의 물리 주소로 변환(맵핑)하는 작업
  • Compile time binding - 실행 시작 전 컴파일될 때 맵핑
  • Load time binding - 실행 시작할 때 맵핑
  • Run time binding - 실행 중일 때 맵핑

Memory management unit(MMU)

  • CPU내에서 메모리 관리를 담당하는 하드웨어
  • Run time 동안 논리 주소를 물리 주소로 변환(맵핑)
  • 재배치 레지스터에 논리주소를 더해 물리 주소를 구함
    • 재배치 레지스터 : MMU내의 레지스터로, 물리 메모리에서 프로세스의 시작 주소를 저장함

Memory overlay

Swapping

  • Virtual memory
    • 실제 물리 메모리와 하드 디스크의 공간
  • Swap memory
    • 실제 물리 메모리의 용량이 부족할 때 사용되는 하드 디스크 상의 virtual memory의 일부분
    • 하드 디스크에 존재하지만 I/O controller가 아니라 메모리의 일부로서 MMU에 의해 관리됨
    • swap out(하드 디스크) -> swap in(메모리)

 

 

 

'공부' 카테고리의 다른 글

운영체제 - 가상 메모리  (0) 2024.05.08
인공지능 - 불확실성  (0) 2024.05.07
운영체제 - 프로세스  (0) 2024.04.21
운영체제 - 프로세스 동기화 및 임계구역  (0) 2024.04.20
운영체제 - 교착 상태  (0) 2024.04.20

관련글 더보기