목차
- 1. 가상 메모리의 개요
- 2. 페이징 기법
- 3. 세그먼테이션 기법
- 4. 세그먼테이션-페이징 혼용 기법
- 5. 캐시 매핑 기법
1. 가상 메모리의 개요
- 가상메모리는 물리메모리(실제 메모리)의 크기와 상관없이 메모리를 이용할 수 있도록 지원하는 기술.
( 가상메모리의 크기 : 전체 크기는 물리메모리와 스왑 영역을 합한 크기 )
1.1 가상주소와 논리주소의 차이
- 논리주소 : 물리 메모리의 주소 공간
- 가상주소 : 물리 메모리의 공간이 아닌 가상의 주소 공간을 가진다.
* 동적 주소 변환 : 메모리 관리자가 물리메모리와 스왑영역을 합쳐서,
프로세스가 사용하는 가상 주소를 실제 메모리의 물리주소로 변환하는 작업
1.2 매핑 테이블
- 메모리를 관리 할때 매핑 테이블을 작성하여 관리한다.
- 가상 메모리 시스템에서 가상주소는 실제로 물리주소나 스왑 영역중 한곳에 위치하며,
메모리 관리자가 가상주소와 물리주소를 일대일 매핑 주소로 관리한다.
2. 페이징 기법
- 고정 분할 방식으로 메모리를 분할하여 관리하는 기법
2.1 페이징 기법에서의 용어 및 개념
- 프레임 - 물리 메모리의 영역
- 페이지 - 가상주소 영역
- 페이지와 프레임의 크기가 같기 때문에, 페이지는 어떤 프레임도 배치 될수 있다.
- 매핑테이블에선 숫자만 있는게 아니라, invalid 이라고 표현되어 있는부분은 스왑 영역에 해당하는 부분이다.
* 페이지 엔트리 : 페이지 테이블은 페이지번호, 프레임 번호로 구성되며 각각 한줄은 '페이지 엔트리'라고 부른다.
(페이지 테이블 엔트리는 프레임 번호만 가진다. 테이블 페이지는 번호가 0 번 부터 순서대로 정리되어 있기 때문에,
(굳이 페이지 번호를 표시할 필요가 없다 )
2.2 페이지 테이블 관리
- 시스템에는 여러개의 프로세스가 존재하고, 프로세스마다 페이지 테이블이 존재한다.
( 여러개의 프로세스마다 페이지 테이블이 존재하기에, 테이블의 크기가 작지 않다. )
- 특정 프로세스가 실행 될 때 마다 해당 페이지 테이블을 참조하여 가상 주소를 물리주소로 변환 하는 작업을 반복하기에
필요시 빨리 접근 할수 있어야 한다.
( 물리 메모리의 영역중 운영체제에 일부분 모아놓고, '페이지 테이블 기준 레지스터' 를 사용한다. )
( '페이지 테이블 기준 레지스터' 는 물리 메모리 내에 페이지 테이블의 시작주소를 가지고 있다. )
2.3 페이지 테이블 매핑 방식
- 페이지 테이블 전체를 메모리에서 관리하는지, 일부를 스왑 영역에서 관리하는지에 따라 가상주소를
물리주소로 변환하는 방법이 달라진다. 이로 인해 크게 4가지의 매핑 방식이 존재.
- 직접매핑 - 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식
( 부가 작업 없이 바로 주소 변환 가능) - 연관매핑 - 페이지 테이블 전체를 스왑 영역에서 관리 하는 방식
( 물리메모리의 여유공간이 작을때 사용하는 방식 )
( 모든 페이지 테이블을 저장장치의 스왑영역에 저장하고, 그 중 일부만 물리메모리에 가지고 있음 )
( 연관 매핑은 물리메모리 내의 페이지 테이블을 전부 검색해야하고, 이렇게 찾아도 없을경우 스왑 영역까지 찾아야 하기 ( 에 소요 시간이 많이 걸릴수 있다 ) - 집합-연관매핑 - 연관 매핑과 동일한 방식이나, 연관 매핑의 문제를 개선한 방식
( 페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리메모리에 가져온다.
( 페이지 테이블을 관리하는 페이지 테이블을 하나더 생성해서 관리한다) - 역매핑 - 위의 세가지 방식은 페이지 번호를 기준으로 테이블을 구성하지만,
역매핑에선 물리메모리의 프레임 번호를 기준으로 테이블을 구성한다.
( 가장 큰 특징은 프로세스의 수와 상관없이 페이지 테이블이 단 한개이다. 물리메모리를 기준으로 프레임 테이블을 만든다. )
( 역매핑은 페이지 테이블을 다 검사한 후에야 저장장치에 접근하기 때문에, 검색시간을 낭비한다는 단점이 존재한다. )
3. 세그먼테이션 기법
- 가변 분할 방식을 이용한 가상 메모리 관리 기법 ( 물리메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용 )
3.1 세그먼테이션 기법의 특징
- 세그먼테이션 기법에선 페이징기법과 다르게 각 프로세스의 크기에 따라 메모리를 분할하기 때문에, 매핑 테이블에 크기 정보를 포함한다.
( 자신에게 주어진 메모리 영역 - Limit을 위해 )
장점: 메모리를 프로세스 단위로 관리하기 때문에, 페이지 테이블이 작고 단순하다.
단점: 물리 메모리의 외부 단편화로 인해 물리 메모리 관리가 복잡하다.
4. 세그먼테이션 - 페이징 혼용 기법
- 페이징 기법의 장점인 물리 메모리를 같은 크기로 나누어 관리하기에 관리하기가 수월한 장점과 세그먼테이션 기법의
페이지기법의 테이블 크기가 큰 단점을 혼용해 사용하는 기법.
4.1 메모리 접근 권한
- 페이지마다 접근 권한이 다르기 때문에, 페이지 테이블의 모든 행에는 메모리 접근 권한과 관련된 권한 비트가 추가된다.
( 메모리를 낭비하는 요소 )
- 메모리 접근 권한 검사는 가상주소에서 물리주소로 주소 변환이 일어 날때 마다 시행 된다.
( 읽기 / 쓰기 / 실행 / 추가 ) - 메모리 영역에 권한이 없는 행동을 하려고하면, 메모리 오류인 트랩이 발생한다.
4.2 페이징 테이블과 세그먼테이션 테이블의 혼합
- 페이징 기법에 세그먼테이션 테이블을 추가하고, 권한비트와 같이 중복되는 데이터를
세그먼테이션 테이블로 옮겨서 테이블의 크기를 줄인다.
'읽은 책 정리 > 쉽게 배우는 운영체제' 카테고리의 다른 글
[정리] 11 파일시스템 (1) | 2022.11.03 |
---|---|
[정리] 09 가상메모리 관리 (0) | 2022.10.22 |
[정리] 07 물리 메모리 관리 (0) | 2022.09.26 |
[정리] 06 교착 상태 (1) | 2022.09.26 |
[정리] 05 프로세스 동기화 (0) | 2022.09.12 |