7주차 운영체제

민주·2023년 11월 28일
0

🛠️Tech

목록 보기
3/3

메모리 주소 유형
1. 논리적 주소

  • 프로세스가 독립적으로 가지는 주소 공간
  • 0번지부터 시작하는 자신만의 주소 공간을 가짐
  • cpu는 이 논리적 주소를 참조함.
  1. 물리적 주소
  • 메모리에 실제로 존재하는 위치, 즉 dram 상의 변하지 않는 실제 주소.
  1. 기호적 주소
  • 프로그래머가 사용하는 변수나 레이블 등 기호적 이름으로 표현된 주소.

주소 바인딩

기호적 주소에서 논리적 주소, 그리고 물리적 주소로의 변환 과정.

  1. 컴파일 시간 바인딩
  • 컴파일 시 정적으로 물리적 주소가 결정
  • 컴파일러는 절대 코드를 생성하여, 프로그램이 메모리에 로드되면 주소가 변경되지 않음.
  1. 로드 시간 바인딩
  • 로더가 프로그램이 메모리에 로드될 때 물리적 주소를 부여.
  • 재배치 가능한 코드를 생성한 경우, 프로그램의 시작 위치를 변경하더라도 로더가 물리적 주소를 조정할 수 있다.
  1. 실행 시간 바인딩
  • 프로그램이 실행된 이후에도 프로세스의 메모리 상 위치를 옮길 수 있음.
  • CPU가 주소를 참조할 때마다 주소 매핑 테이블을 검사하여 실제 메모리 주소를 변환함.
  • 하드웨어적인 지원이 필요하고, 주로 MMU(메모리 관리 장치)에 의해 수행된다.

MMU(Memory-Management Unit)

  • 논리적 주소를 물리적 주소로 매핑하는 하드웨어 장치.
  • 사용자 프로세스가 cpu에서 수행되며 생성하는 모든 주소값에 대해 기준 레지스터의 값을 더한다.
  • 컨텍스트 스위치가 발생하면 mmu의 기준 레지스터 값도 변경된다
  • 사용자 프로그램은 논리적 주소만을 다무려, 물리적 주소를 알 필요가 없다.

=> 프로그램이 메모리에 어떻게 매핑되는지, 어떻게 cpu에 의해 참조되는지를 결정하는 중요한 역할을 한다. 각 단계는 메모리 관리의 유연성과 효율성을 높이기 위해 설계되었으며, 프로그램의 실행과 메모리 관리를 최적화하기 위한 중요한 기술.

profile
일단 가보면 뭐든 있겠지

0개의 댓글

관련 채용 정보