티스토리 뷰
1. 가상 메모리의 개요
- 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술이다. 이로 인해 프로세스는 운영체제의 위치와 물리 메모리의 크기에 구애받지 않고 마음대로 메모리를 사용할 수 있다. 모든 프로세스는 위치에 상관없이 0부터 시작하는 연속된 메모리 공간을 갖는다.
- 메모리 관리자는 물리 메모리의 부족한 부분을 스왑 영역으로 보충한다. 물리 메모리가 꽉 차면 일부 프로세스를 스왑 영역으로 보내고, 몇 개의 프로세스가 작업을 마치면 스왑 영역의 프로세스를 메모리로 가져온다.
- 가상 메모리의 크기 = 물리 메모리(실제 메모리) + 스왑 영역 -> 이 과정을 동적 주소 변환이라고 하는데 이후 프로세스는 아무 제약 없이 사용자 데이터를 물리 메모리에 배치할 수 있다.
- 메모리는 매핑 테이블을 작성하여 관리한다. 메모리 관리자는 가상 주소와 물리 주소를 일대일로 매핑한 테이블로 관리한다. 페이징 기법에서 사용하는 매핑 테이블을 페이징 매핑 테이블, 세그먼테이션 기법에서 사용하는 매핑 테이블을 세그먼테이션 매핑 테이블이라고 한다.
- 지역성이란 기억장치에 접근하는 패턴이 특정 영역에 집중되는 성질을 말한다. 3가지로 나뉘는데 현재 위치에서 가까운 데이터에 접근할 확률이 크다는 공간의 지역성, 가장 가까운 시간에 접근한 데이터가 사용될 확률이 높다는 시간의 지역성, 프로그래밍은 앞에서부터 순차적으로 진행된다는 순차적 지역성이 있다.
2. 페이징 기법
- 고정 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 주소 공간을 같은 크기로 나눠 사용한다. 가상 주소의 분할된 각 영역은 페이지, 물리 주소의 영역은 프레임이라고 부르는데 두 크기는 같다.
- 어떤 페이지가 어떤 프레임에 있는지에 대한 연결 정보는 페이지 테이블에 담겨 있다. 숫자만 있는 것은 아닌데, invalid는 해당 페이지가 스왑 영역에 있다는 의미이다.
- 페이징 기법의 주소 변환 과정: VA = <P, D> -> PA = <F,D> ex) VA = <3, 0> 페이지 3의 0번 주소
VA= <3, 0> -> PA = <1, 0> 은 가상 주소 30번이 물리 주소 프레임 1의 0번 위치로 변환됨
- 시스템 내에는 여러 프로세스가 있고, 각각 하나의 페이지 테이블이 있기 때문에 전체 페이지 테이블의 크기는 프로세스의 수에 비례해서 커진다. 문제는 페이지 테이블의 크기가 커 이를 관리하기 위해 물리 메모리의 크기가 작을 때는 프로세스 뿐만 아니라 페이지 테이블의 일부도 스왑 영역으로 옮겨진다.
'Study > OS' 카테고리의 다른 글
기말고사 정리1 (2) | 2023.06.08 |
---|---|
Chapter 04 CPU 스케줄링 (0) | 2023.04.16 |
Chapter 03 프로세스와 스레드 (0) | 2023.04.13 |
Chapter 02 컴퓨터의 구조와 성능 향상 (0) | 2023.04.10 |
Chapter 01 운영체제의 개요 (0) | 2023.04.08 |