Chapter14. 가상 메모리
학습목표
- 스와핑이 무엇인지 이해합니다
- 연속 메모리 할당 기법과 외부 단편화 문제를 이해합니다
- 가상 메모리 관리 기법인 페이징의 개념과 작동을 이해합니다
- 요구 페이징의 개념과 페이지 교체 알고리즘을 이해합니다
- 스래싱과 그를 해결하기 위한 프레임 할당을 이해합니다
스와핑
- 현재 실행되지 않은 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 해서 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
- 스왑 영역: 프로세스들이 쫓겨나는 보조기억장치의 일부영역
- 스왑 아웃: 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인: 반대로 스왑 영역에서 메모리로 오는 것
메모리 할당
- 최초 적합: 프로세스가 적재될 수 있는 공간을 발견하는 즉시 메모리를 할당하는 방식
- 최적 적합: 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 배치하는 방식
- 최악 적합: 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 배치하는 방식
외부 단편화
- 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
페이징
- 메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 관리 기법
- 페이징 시스템에서의 스왑 아웃은 페이지아웃, 스왑 인은 페이지 인이라고 부름
- 페이지 테이블: 페이지의 번호를 이용해 페이지가 적재된 프레임을 찾을 수 있음
요구 페이징
- 프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법
순수 페이징 기법
- 프로그램이 실행되기 전에 모든 페이지를 메모리에 미리 로드하지 않고, 필요한 페이지만 요청 시 메모리에 로드합니다. 쉽게 말해, 필요한 순간에만 필요한 데이터를 가져오는 방식
페이지 교체 알고리즘
- 새로운 페이지를 메모리에 로드할 때 어떤 페이지를 제거할지 결정하는 방법
- FIFO (First-In, First-Out)
- 설명: 가장 먼저 들어온 페이지를 가장 먼저 제거하는 방식입니다.
- 장점: 단순하고 구현이 쉬움.
- 단점: 오래된 페이지가 반드시 덜 사용된 것은 아니므로 비효율적일 수 있음.
- LRU (Least Recently Used)
- 설명: 가장 오랫동안 사용되지 않은 페이지를 제거하는 방식입니다.
- 장점: 자주 사용되는 페이지를 유지하여 성능 향상.
- 단점: 구현이 복잡할 수 있음.
- LFU (Least Frequently Used)
- 설명: 사용 빈도가 가장 적은 페이지를 제거하는 방식입니다.
- 장점: 자주 사용되지 않는 페이지를 제거하여 효율적.
- 단점: 사용 빈도 계산이 복잡할 수 있음.
- OPT (Optimal)
- 설명: 미래에 가장 늦게 사용할 페이지를 제거하는 이상적인 방식입니다.
- 장점: 가장 효율적인 방법.
- 단점: 미래 예측이 불가능하므로 실제 구현이 어려움.
스래싱
- 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저하되는 문제
스레싱을 해결하기 위한 프레임 할당 방식
- 고정 할당 방식:
- 설명: 각 프로세스에 고정된 수의 프레임을 할당하는 방식입니다.
- 장점: 예측 가능한 메모리 사용, 간단한 구현.
- 단점: 비효율적인 메모리 사용 가능성.
- 가변 할당 방식:
- 설명: 프로세스의 필요에 따라 동적으로 프레임을 할당하는 방식입니다.
- 장점: 메모리 활용도 극대화, 유연성 증가.
- 단점: 복잡한 관리, 예측 어려움.
- 워킹 셋(Working Set) 모델:
- 설명: 프로세스가 일정 기간 동안 자주 참조하는 페이지 집합을 기준으로 프레임을 할당하는 방식입니다.
- 장점: 효율적인 메모리 사용, 스레싱 방지.
- 단점: 매개변수 설정 복잡.
- 페이지 폴트 빈도(Page Fault Frequency) 모델:
- 설명: 페이지 폴트 발생 빈도를 기준으로 프로세스의 프레임 수를 조절하는 방식입니다.
- 장점: 스레싱 방지, 동적 조절.
- 단점: 정확한 페이지 폴트 빈도 측정 필요.
'코딩공부 > 운영체제' 카테고리의 다른 글
Chapter15. 파일 시스템 (1) | 2024.10.25 |
---|---|
Chapter13. 교착 상태(데드락) (0) | 2024.10.24 |
Chapter12. 프로세스 동기화 (0) | 2024.10.24 |
Chapter10. 프로세스와 스레드 (2) | 2024.10.24 |
Chapter09. 운영체제 시작하기 (0) | 2024.10.24 |