Part 3 메모리 관리
Chapter 8 가상 메모리 기초
요약
1.
가상 메모리의 개념
a.
물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다.
b.
프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있다.
2.
가상 메모리의 크기
a.
가상 메모리에서 메모리 관리자가 사용할 수 있는 메모리의 전체 크기는 물리 메모리와 스왑 영역을 합한 크기이다.
3.
매핑 테이블
a.
가상 주소가 물리 메모리의 어느 위치에 있는지 알 수 있도록 정리한 표이다.
b.
페이징 기법에서는 페이징 매핑 테이블 또는 페이지 테이블이라고 부르며,
c.
세그멘티이션 기법에서는 세그먼테이션 매핑 테이블 또는 세그먼테이션 테이블이라고 부른다.
4.
페이징 기법
a.
고정 분할 방식을 이용한 가상 메모리 관리 기법으로 물리 주소 공간을 같은 크리고 나누어 사용한다.
b.
가상 주소의 분할된 각 영역은 페이지라고 부르며, 물리 메모리의 각 영역은 가상 주소의 페이지와 구분하기 위해 프레임이라고 부른다
5.
페이지 테이블 매핑 방식
a.
직접 매핑: 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식이다.
b.
연관 매핑: 페이지 테이블 전체를 스왑 영역에서 관리하는 방식으로, 물리 메모리의 공간이 작을 때 사용한다.
c.
집합-연관 매핑: 연관 매핑의 문제를 개선한 방식으로, 페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져온다.
d.
역매핑: 위의 세 가지 매핑과 달리 물리 메모리의 프레임 번호를 기준으로 테이블을 구성한다.
6.
세그먼테이션 기법
a.
가변 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용한다
7.
세그먼테이션-페이징 혼용 기법
a.
사용자 입장에서는 세그먼테이션 기법을 사용하고 메모리 관리자 입장에서는 페이징 기법을 사용하는 가상 메모리 관리 기법이다.
b.
메모리 보호 및 중복 정보를 세그먼테이션 테이블에서 관리함으로써 메모리 관리를 효율적으로 할 수 있다.
연습문제
1.
가상 메모리에서 메모리 관리자가 사용할 수 있는 전체 크기는 어떻게 결정되는가?
•
물리 메모리(실제 메모리)와 스왑 영역을 합한 크기
2.
가상 주소에서 하나의 프로세스가 사용할 수 있는 최대 주소는 무엇과 연관이 있는가?
•
컴퓨터 시스템이 가진 물리 메모리의 최대 크기로 한정되며 CPU의 비트에 따라 결정된다
•
메모리 주소 레지스터 (MAR)의 비트가 CPU의 비트와 동일하게 따라가기 때문에 32bit인 경우 4GB가 메모리의 최대 크기이고, 가상 메모리의 최대 크기도 약 4GB 이다
3.
가상 메모리에서 가상 주소를 물리 구조로 변환하기 위해 사용하는 자료 구조를 무엇이라 하는가?
•
매핑 테이블
4.
페이징 기법의 주소 변환 과정 식을 쓰시오.
•
VA = <P, D> -> PA = <F, D>
5.
페이지 테이블에서 각각의 한 줄을 무엇이라 하는가?
•
페이지 테이블 엔트리 (Page Table Entry, PTE)
6.
가상 주소를 <P, D>로 변환하는 공식을 쓰시오
•
P = 가상 주소 / 한 페이지의 크기
•
D = 가상 주소 % 한 페이지의 크기
7.
각 페이지 테이블의 시작 주소를 가지고 있는 레지스터는 무엇인가?
•
페이지 테이블 기준 레지스터 (Page Table Base Register, PTBR)
8.
페이지 테이블 매핑 방식 중, 모든 페이지 테이블을 스왑 영역에 저장하고 그중 일부만 물리 메모리에 무작위로 가지고 있는 방식은 무엇인가?
•
연관 매핑 (associative mapping)
9.
페이지 테이블 매핑 방식 중, 모든 페이지 테이블을 물리 메모리에 보관하는 방식은 무엇인가?
•
직접 매핑 (direct mapping)
10.
페이지 테이블 매핑 방식 중, 모든 페이지 테이블을 스왑 영역에 저장하고 페이지 테이블을 일정한 집합 단위로 물리 메모리에 보관하는 방식은 무엇인가?
•
집합-연관 매핑 (set-associative mapping)
11.
페이지 테이블 매핑 방식 중, 물리 메모리의 프레임 번호를 기준으로 테이블을 구성하는 방식은 무엇인가?
•
역매핑 (invert mapping)
12.
연관 매핑에서 사용하는 테이블의 이름은 무엇인가?
•
변환 색인 버퍼 (Translation Look-aside Buffer, TLB)
13.
연관 매핑에서 원하는 데이터가 변환 색인 버퍼에 없는 상태를 무엇이라 하는가?
•
TLB miss
14.
연관 매핑에서는 전체 매핑 테이블을 어디에 보관하는가?
•
스왑 영역
15.
가상 메모리에서 메모리 관리자는 물리 메모리 영역과 스왑 영역을 합쳐서 프로세스 사용하는 가상 주소를 실제 메모리의 물리 주소로 변환한다. 이러한 작업을 무엇이라 하는가?
•
동적 주소 변환 (Dynamic Address Translation, DAT)
16.
사용자 프로세스가 자신의 크기보다 더 큰 주소에 접근하려고 하면 메모리 관리자는 그 프로세스를 강제 종료한다. 이때 발생하는 오류를 무엇이라 하는가?
•
트랩 (trap)
17.
세그먼테이션-페이징 혼용 기법에서는 접근 권한을 어디에서 관리하는가?
•
세그먼테이션 테이블