14장 가상 메모리
01. 연속 메모리 할당
스와핑
- 메모리에 적재된 프로세스들 중 현재 실행되지 않는 프로세스들을 임시로 보조기억장치 일부 영역으로 보내고, 그렇게 생긴 빈 공간에 다른 프로세스를 적재하여 실행하는 방식
- 스왑 영역: 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
- 스왑 아웃: 메모리 → 스왑 영역
- 스왑 인: 스왑 영역 → 메모리
- 스와핑을 통해 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들 동시 실행 가능
<aside>
💡 스왑 영역 확인
유닉스, 리눅스, mac OS에서는 free, top 명령어 등을 통해 스왑 영역의 크기 확인 가능
스왑 영역의 크기 & 사용 여부는 사용자가 임의로 설정 가능
</aside>
메모리 할당
- 최초 적합
- 운영체제가 최초로 발견한 적재 가능한 공간에 프로세스 배치
- 검색 최소화 → 빠른 할당 가능
- 최적 적합
- 운영체제가 빈 공간 모두 검색한 뒤 가능한 가장 작은 공간에 프로세스 배치
- 최악 적합
- 운영체제가 빈 공간 모두 검색한 뒤 가능한 가장 큰 공간에 프로세스 배치
외부 단편화
- 프로세스 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
- 연속 메모리 할당은 외부 단편화라는 문제 내포
- 압축(메모리 조각 모음)
- 대표적인 외부 단편화 해결 방법
- 메모리 내 저장된 프로세스 재배치 → 흩어진 빈 공간을 하나의 큰 빈 공간으로 만드는 방법
- 시스템이 하던 일 중지해야 함, 많은 오버헤드 야기, 오버헤드 최소화 방법 불명확 등 여러가지 단점 존재
확인 문제
- 최초 적합, 최악 적합, 최적 적합
- 4번