가상 메모리
- 메모리가 실제 메모리보다 많아 보이게 하는 기술로 고안된 메모리 기법이다.
<가상메모리의 중요 목표>
• 가상화
– 각 프로세스가 모든 메모리를 소유하고 있는 것처럼 보이게 함
• 프로세스마다 자신의 주소 체계를 가짐
– 프로세스들이 사용하고 있는 모든 메모리의 총합이 컴퓨터가 실제로 가지고 있는 메모리보다 많을 수 있음
• 보호 – 의도치 않게 다른 프로세스의 데이터에 접근하지 않도록 함
– 시스템(커널)이 사용하는 데이터에 접근하지 못하도록 함
• 가상화의 주요 기술
– 주소 변환
– 페이징
– 보호
<가상메모리의구현>
• 주요 가상 메모리 기법
– 베이스와 바운드(Base and bound)
– 세그멘테이션(Segmentation)
– 페이지테이블(Page Table)
– 멀티 레벨 페이지 테이블(Multi-level page tables)
• 주소 변환
– 프로세스가 메모리에 접근할 때 운영체제는 주소를 가상 주소에서 물리 주소로 변환함
– 운영체제는 각 프로세스마다 {가상주소, 물리주소}로 이루어진 테이블을 가짐
1. 베이스와 바운드 방식
• 아주 간단한 주소 변환 방식으로 구현이 쉽지만 기능이 제한적임
– 연속된 가상의 주소 영역을 연속된 물리적 주소 영역에 매핑함
– 하지만, 연속된 주소 영역을 실제 메모리에서 확보하기 어려움
• 주소 변환 예 (program counter)
– 명령어 읽어오기(EIP): 0x0023 (가상 주소)+ 0x00FF (base) = 0x0122 (물리 주소)
– 데이터 읽어오기(ESP): 0x0F76 (가상 주소) + 0x00 FF(base) = 0x1075(물리 주소)
• 변환된 주소가 프로세스 영역 밖에 있으면 오류 발생
2. 세그멘테이션 방식
• 프로세스의 각 영역을 베이스와 바운드 방식으로 메모리 할당
– 프로세스는 코드와, 스택, 힙 등으로 구성되어 있고, 각 부분을 베이스와 바운드 방식을 사용함
– 기존의 베이스와 바운드 방식보다는 유연하지만, 여전히 동일한 문제를 가짐
* 세그멘테이션 오류 (Fault)
• 프로세스에 할당된 영역을 벗어나서 메모리에 접근하려고 할 때, 운영체제는 오류를 발생시키는데, 이를 세그멘테이션 오류라고 함
• 예:
–char buf[5];
–strcpy(buf, “Hello World”);
• 오늘날 세그멘테이션 방식은 사용되지 않지만, 메모리 영역과 관련된 오류에는 여전히 세그멘테이션 오류라는 말이 사용되고 있음
* 메모리단편화 (Fragmentation)
• 메모리가 작은 조각으로 나누어지는 현상
– 내부 단편화와 외부 단편화로 구분됨
– 내부 단편화: 할당 영역(세그멘테이션) 내에서 발생
– 외부 단편화: 물리적 메모리 공간에서 발생
• 압축(compaction) 을 통해 해결가능, 하지만 비용이 비쌈
• 세그멘테이션 방식은 베이스와 바운드 방식보다는 유연하지만 여전히 메모리 단편화 문제가 발생함
3. 페이지 테이블 방식
• 페이지 테이블 방식은 세그멘테이션 방식을 일반화하여 사용되는 연속된 메모리 영역의 크기를 더욱 작게 유지함
– 메모리는 동일한크기(4KB)로 나누어져 할당됨
– 가상 메모리에서 사용되는 영역을 페이지 라고하며, 실제 물리적인 메모리에서 사용되는 영역을 프레임 이라고 함
– 운영체제는 가상 페이지: 물리 프레임 간의 매핑을 위한 테이블을 유지함
• 페이지 테이블에서는 사용할 수 있는 최대 메모리의 크기가 제한됨
– 32비트: 4GB
– 멀티 레벨 페이지 테이블의 등장(2학년때 배우세요~)
메모리스왑(swap)
• 개념: 물리 메모리의 공간(프레임)을 디스크에 저장하고, 디스크에 저장된 데이터를 다시 메모리의 프레임으로 복구
•오늘날의 대부분의 운영체제는 메모리 스왑을 지원함
'KNU Freshman > 컴퓨터학개론' 카테고리의 다른 글
(10) 통신의 발전 과정 (0) | 2024.05.20 |
---|---|
(9) 입출력 장치(HDD) & Thread, Lock (0) | 2024.04.17 |
(7) 운영체제에서의 CPU 스케줄링 (1) | 2024.04.15 |
(6)-2 운영체제의 주요 기능 (0) | 2024.04.15 |
(6)-1 컴퓨터 구조와 운영체제 (0) | 2024.04.15 |