본문 바로가기
전공/운영체제

Ch07. 물리 메모리 관리_02)메모리 주소

by 임 낭 만 2023. 5. 14.

<쉽게 배우는 운영체제> 교재를 참고하였습니다.

메모리 주소 : 메모리에 접근 시 주소 이용. 따라서 메모리와 주소는 매우 밀접한 관계임

32bit CPU와 64bit CPU의 차이

CPU의 비트

  • 한 번에 다룰 수 있는 데이터의 최대 크기 – 이를 워드(word)라 부름
  • 32bit CPU는 한 번에 다룰 수 있는 데이터의 최대 크기가 32bit (1word = 32bit)
  • 32bit CPU 내의 레지스터 크기는 전부 32bit, 산술 논리 연산장치와 대역폭도 32bit로 설계됨

32bit CPU의 구조

32bit CPU의 메모리 크기

  • 표현할 수 있는 메모리 주소의 범위가 0~232-1, 총 개수가 232
  • 16진수로 나타내면 00000000~FFFFFFFF, 총 크기는 232B (약 4GB)

64bit CPU의 메모리 크기

  • 0~264-1번지의 주소 공간을 제공
  • 총 크기가 264B, 약 16,777,216TB로 거의 무한대에 가까운 메모리 사용 가능

컴퓨터의 메모리 크기

물리 주소 공간과 논리 주소 공간

  • 물리 주소 공간 : 하드웨어 입장에서 바라본 주소 공간으로 컴퓨터마다 크기가 다름
  • 논리 주소 공간 : 사용자 입장에서 바라본 주소 공간

논리적 주소와 물리적 주소


메모리의 구조와 매핑 (사상)

메모리 장치의 주소 변환

메모리관리장치의 주소 변환 (논리적 주소&nbsp;&rarr; 물리적 주소)

매핑 (mapping)

  • 논리적 주소와 물리적 주소의 연결
  • 바인딩(binding) : 매핑시켜 주는 작업

바인딩의 분류


절대 주소와 상대 주소

단순 메모리 구조

  • 한 번에 한 가지 일만 처리하는 일괄 처리 시스템에서 볼 수 있음
  • 메모리를 운영체제 영역과 사용자 영역으로 나누어 관리

단순 메모리 구조

단순 메모리 구조에서 사용자 프로세스 적재

  • 사용자 프로세스는 운영체제 영역을 피하여 메모리에 적재
  • 사용자 프로세스가 운영체제의 크기에 따라 매번 적재되는 주소가 달라지는 것은 번거로움
  • 이를 개선하여 사용자 프로세스를 메모리의 최상위부터 사용

→ 그러나 메모리를 거꾸로 사용하기 위해 주소를 변경하는 일이 복잡하기 때문에 잘 쓰이지 않음

상위 메모리부터 사용자 영역 할당

경계 레지스터

  • 운영체제 영역과 사용자 영역 경계 지점의 주소를 가진 레지스터
  • CPU 내에 있는 경계 레지스터가 사용자 영역이 운영체제 영역으로 침범하는 것을 막아줌
  • 메모리 관리자는 사용자가 작업을 요청할 때마다 경계 레지스터의 값을 벗어나는지 검사하고, 만약 경계 레지스터를 벗어나는 작업을 요청하는 프로세스가 있으면 그 프로세스를 종료

운영체제와 경계 레지스터

절대 주소 (absolute address)

  • 실제 물리 주소(physical address)를 가리키는 주소
  • 메모리 주소 레지스터가 사용하는 주소
  • 컴퓨터에 장착된 램 메모리의 실제 주소

상대 주소 (relative address)

  • 사용자 영역이 시작되는 번지를 0번지로 변경하여 사용하는 주소
  • 사용자 프로세스 입장에서 바라본 주소
  • 절대 주소와 관계없이 항상 0번지부터 시작
  • 프로세스 입장에서 상대 주소가 사용할 수 없는 영역의 위치를 알 필요가 없고, 주소가 항상 0번지부터 시작하기 때문에 편리

절대 주소와 상대 주소의 차이

  • 논리 주소 공간은 상대 주소를 사용하는 주소 공간
  • 물리 주소 공간은 절대 주소를 사용하는 주소 공간

절대 주소와 상대 주소
절대 주소와 상대 주소

상대 주소를 절대 주소로 변환하는 과정

  • 메모리 접근 시 상대 주소를 사용하면 절대 주소로 변환해야 함
  • 메모리 관리자는 사용자 프로세스가 상대 주소를 사용하여 메모리에 접근할 때마다 상대 주소 값에 재배치 레지스터 값을 더하여 절대 주소를 구함
  • 재배치 레지스터는 주소 변환의 기본이 되는 주소 값을 가진 레지스터로, 메모리에서 사용자 영역의 시작 주소 값이 저장

상대 주소를 절대 주소로 변환하는 과정

① 메모리 사용자 프로세스 P1 상대주소 40 번지에 있는 데이터를 요청

② CPU는 메모리 관리자에게 40번지에 있는 내용을 가져오라고 명령

③ 메모리 관리자는 재배치 레지스터를 사용해 상대주소 40번지를 절대주소 400번지로 변환하고 메모리 400번지에 저장된 데이터를 가져옴

댓글