반응형
1. 가상메모리의 개념과 필요성
가. 가상메모리의 개념
- 실제 물리적 메모리의 크기와 관계없이 프로세스마다 연속적이고 독립된 메모리 공간 제공하기 위한 관리 기법
나. 가상메모리의 필요성
필요성 | 설명 |
메모리 확장성 | - 디스크 공간 일부를 메모리처럼 사용 |
프로세스 독립성 | - 다른 프로세스의 메모리에 접근 불가 |
효율적 메모리 사용 | - 자주 사용하는 데이터만 메모리에 올림 |
프로그램 주소 충돌 방지 | - 같은 주소 써도 내부적으로는 다른 물리 주소 매핑 |
- 디스크 활용하여 메모리 확장하고 프로세스 간 메모리 보호 및 관리 향상
2. 가상메모리의 관리기법
가. 가상메모리 관리 기법
구분 | 관리 기법 | 설명 |
호출 | - 지연 호출 | - 실제 필요한 시점에 메모리에 로드 |
- 선행 호출 | - 자주 사용 페이지 미리 메모리에 로드 | |
배치 | - 최초 적합 | - 처음 발견한 충분한 크기에 배치 |
- 최적 적합 | - 크기가 가장 딱 맞는 공간에 배치 | |
- 최악 적합 | - 가장 큰 공간에 배치 | |
할당 | - 정적 할당 | - 프로그램 시작 시 메모리 크기 고정 |
- 동적 할당 | - 실행 도중 필요한 만큼 메모리 할당 또는 반환 | |
- 연속/비연속 할당 | - 한번에 연속된 메모리 공간에 할당 - 여러 조각으로 나누어 할당 |
|
교체 | - FIFO | - 가장 먼저 메모리에 들어온 페이지 제거 |
- LRU | - 가장 오래 전에 사용된 페이지 제거 | |
- OPT (Optimal) | - 가장 오래 사용되지 않을 페이지 제거 | |
- Clock (Second Chance) | - FIFO 개선형, 사용 비트 체크로 기회 제공 |
나. 구현 기법
구분 | 기법 | 설명 |
주소 변환 방식 | 페이징 | - 고정 크기 페이지 단위로 물리 메모리에 매핑 - 페이지 테이블 관리, 외부 단편화 방지 |
세그멘테이션 | - 가변 크기의 세그먼트 단위로 분할 - 내부 단편화 줄일 수 있음 |
|
페이징 + 세그멘테이션 | - 세그먼트를 페이지로 나눠 관리 - 유연성과 효율성 동시 확보 |
|
보조기억장치 | 스와핑 | - 전체 프로세스를 디스크와 교체 |
요구 페이징 | - 실제 접근 시에만 페이지 메모리로 로딩 | |
페이지 교체 알고리즘 | - FIFO, LRU등 페이지 교체 |
3. 가상메모리 사용 시 문제점과 해결방안
문제점 | 설명 | 해결방안 |
페이지 폴트 | - 필요한 페이지가 메모리에 없을 때 - 디스크에서 데이터 가져와 성능 저하 |
- 요구 페이징 최적화 - 선행 페이징 적용 |
스레싱 | - 페이지 폴트가 너무 자주 발생하여 CPU가 페이지 교체에만 몰두하는 현상 | - 다중 프로그래밍 수준 제어로 프로세스 수 감소 |
주소 변환 지연 | - 가상 주소를 물리 주소로 변환하는 과정이 복잡하여 속도 저하 | - TLB(Translation Lookaside Buffer) 사용 - 주소 변환 캐시 최적화 |
메모리 단편화 | - 비효율적 메모리 할당으로 사용 가능한 메모리가 줄어드는 현상 | - 페이징 기법 사용으로 외부 단편화 해결 - 세그멘테이션 조합으로 내부 단편화 해결 |
반응형