1 가상 메모리 시스템
가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리를 제공하는 기술이다.
가상 메모리에서 메모리 관리자가 사용할 수 있는 메모리의 전체 크기는 물리 메모리와 스왑 영역을 합한 크기이다.
가변 분할 방식을 이용한 메모리 관리 기법은 세그멘테이션, 고정 분할 방식을 이용한 기법은 페이징이라고 한다.
메모리를 관리할 때에는 매핑 테이블을 작성해서 관리한다.
페이징 기법에서 사용하는 매핑 테이블을 페이지 테이블, 세그멘테이션에서는 세그멘테이션 테이블이라고 한다.
2 페이징 기법
페이징 기법은 물리 주소 공간을 같은 크기로 나눠서 사용한다. 이때 물리 메모리의 각 영역은 가상 주소의 페이지와 구분하기 위해 프레임이라고 부른다.
가상 주소를 VA, 페이지를 P, 페이지의 처음 위치에서 해당 주소까지의 거리(오프셋)를 D라고 할때 VA = <P,D>라고 표현한다. 실제 물리 주소를 PA, 프레임을 F라고하면 페이징 기법의 주소 변환 과정은
VA = <P, D> --> PA = <F, D>라고 표현한다.
페이지 테이블의 매핑 방식은 여러 가지가 있다.
직접 매핑 : 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식이다. 별다른 작업 없이 바로 주소 변환이 가능하다.
연관 매핑 : 페이지 테이블 전체를 스왑 영역에서 관리하고, 일부만 물리 메모리에 가져온다. 따라서 페이지 번호와 프레임 번호를 둘 다 표시한다. 만약 물리 메모리의 페이지 테이블에서 검색을 실패하면 스왑영역에서 검색해야 한다.
집합-연관 매핑 : 스왑 영역에 페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져온다.
역매핑 : 물리 메모리의 프레임 번호를 기준으로 테이블을 구성해서 테이블의 크기를 줄인다. 프로세스의 수와 상관없이 테이블이 하나만 존재하는 것이 장점이다.
3 세그멘테이션 기법
물리 메모리를 프로세스의 크기에 따라 가변적으로 나눠서 사용한다.
세그멘테이션 테이블에는 세그먼트의 크기를 나타내는 limit와 시작 주소를 나타내는 address가 있다.
세그멘테이션 기법은 프로세스 단위로 메모리를 관리하기 때문에 페이지 테이블이 작고 단순한 게 장점이지만,
메모리의 외부 단편화로 인해 물리 메모리 관리가 복잡하다.
4 세그멘테이션-페이징 혼용 기법
페이징 기법과 세그멘테이션 기법을 혼합하여 사용해 둘의 장점을 취해, 메모리 관리를 효율적으로 하는 방식을 세그멘테이션-페이징 혼용 기법이라고 한다.
'프로그래밍 이론 & 책 > 운영체제' 카테고리의 다른 글
[운영체제] 9.2 페이지 교체 알고리즘 (0) | 2020.06.01 |
---|---|
[운영체제] 9.1 요구 페이징 (0) | 2020.06.01 |
[운영체제] 7.4 다중 프로그래밍 환경에서의 메모리 할당 (0) | 2020.05.28 |
[운영체제] 7.3 단일 프로그래밍 환경에서의 메모리 할당 (0) | 2020.05.28 |
[운영체제] 7.2 메모리 주소 (0) | 2020.05.28 |