<쉽게 배우는 운영체제> 교재를 참고하였습니다.
가상 메모리 시스템
가상 메모리 개념
- 메모리의 크기는 컴퓨터마다 다른데 운영체제가 물리 메모리의 크기에 의존하면 2GB의 메모리에서 동작하는 프로그램은 1GB 메모리에서 동작 하지 않을 수 있음
- 프로그래머들도 메모리크기에 맞게 응용프로그램을 개발하기는 매우 어려움
- 현재 메모리 관리의 가장 큰 특징은 물리적 메모리 크기와 프로세스가 올라갈 위치를 신경 쓰지 않고 프로그래밍하도록 지원, 이러한 메모리 시스템을 가상메모리라고 함
- 가상메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술
- 가상 메모리를 이용하면 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있음
가상 메모리 구성
- 가상메모리 시스템의 모든 프로세스는 실제 메모리와 별개로 자신이 메모리의 어느 위치에 있는지 상관없이 0번지부터 시작하는 연속된 메모리 공간을 가짐
- 가상메모리는 크게 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 나뉨
- 가상메모리의 최대크기는 컴퓨터시스템이 가진 물리메모리의 크기로 한정되며, CPU 비트에 따라 결정됨(32bit CPU, 메모리 최대크기 약 4GB이고, 가상메모리 최대 크기도 약 4GB)
- 가상 메모리에서 메모리 관리자는 물리 메모리의 부족한 부분을 스왑 영역으로 보충
- 이 경우 가상 메모리 시스템에서는 물리 메모리 내용 중 일부를 스왑 영역으로 옮김
가상 메모리의 크기
동적 주소 변환
- 가상 주소를 실제 메모리의 물리 주소로 변환
- 동적 주소 변환을 거치면 프로세스가 아무 제약 없이 사용자의 데이터를 물리 메모리에 배치할 수 있음
가상 메모리의 메모리 분할 방식
- 가변 분할 방식을 이용한 세그먼테이션과 고정 분할 방식을 이용한 페이징 기법이 있음
- 기본적으로 페이징 기법을 사용하나 페이지 테이블 관리가 어려움
- 세그먼테이션 기법은 외부 단편화 등의 문제가 있음
- 가상 메모리 시스템에서는 두 기법의 단점을 보완한 세그먼테이션-페이징 혼용 기법을 주로 사용
매핑 테이블의 필요성과 역할
매핑 테이블의 필요성 (식당 예)
메모리 매핑 테이블
- 가상 메모리 시스템에서 가상주소는 실제로 물리주소나 스왑 영역 중 한 곳에 위치하며, 메모리 관리자는 가상 주소와 물리 주소를 일대일 매핑 테이블로 관리함
- 가상주소상의 프로세스 A는 물리메모리 세그먼트 0에 위치하고, 프로세스 B는 세그먼트 1번에 위치하고, 프로세스 D는 스왑 영역에 있음
- 프로세스 A의 어떤 값이 필요할 때 물리메모리 세그먼트 0에서 원하는 데이터를 가져오면 됨
'전공 > 운영체제' 카테고리의 다른 글
Ch08. 가상 메모리의 기초_02)페이징 기법(2) (0) | 2023.06.08 |
---|---|
Ch08. 가상 메모리의 기초_02)페이징 기법(1) (1) | 2023.06.08 |
[심화]Ch07. 물리 메모리 관리_05)컴파일과 메모리 관리 (0) | 2023.05.20 |
Ch07. 물리 메모리 관리_04)다중 프로그래밍 환경에서의 메모리 할당_2 (2) | 2023.05.20 |
Ch07. 물리 메모리 관리_04)다중 프로그래밍 환경에서의 메모리 할당_1 (1) | 2023.05.19 |
댓글