14-1. 연속 메모리 할당
연속적으로 메모리를 할당할 때 고려 사항, 잠재적인 문제
스와핑 swapping

- 스와핑
- 현재 실행되지 않는 프로세스를 보조기억장치로 옮겨놓고 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
- 스왑 아웃 : swap out, 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인 : swap in, 스왑 영역의 프로세스가 다시 메모리로 옮겨오는 것
- 스왑 아웃되었다가, 스왑 인 될 때 이전과는 다른 메모리 주소를 가지게 될 수 있음
- 스왑 영역 (swap space)
- 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
메모리 할당
비어있는 공간에 메모리를 어떻게 할당할 것인가?
- 최초 적합 (first fit)
- 운영체제가 메모리의 빈 공간을 순서대로 검색하다가 최초 적재할 공간을 발견하면 해당 공간에 프로세스를 배치하는 방식
- 검색 최소화 가능 ⇒ 빠른 할당 가능
- 최적 적합 (best fit)
- 운영체제가 빈 공간을 모두 검색한 후, 프로세스가 적재 가능한 곳 중 가장 작은 공간에 프로세스를 배치하는 방식
- 최악 적합 (worst fit)
- 운영체제가 빈 공간을 모두 검색한 후, 프로세스가 적재 가능한 곳 중 가장 큰 공간에 프로세스를 배치하는 방식
외부 단편화
external fragmentation
- 프로세스들의 실행과 종료가 반복되면서 메모리 사이에 빈 공간이 발생
- 빈 공간보다 큰 프로세스는 적재할 수 없어 생기는 메모리 낭비 현상이 외부 단편화
- 해결 방안 → 압축(compaction)
- 메모리 내의 프로세스를 재배치시켜 빈 공간들을 하나로 만드는 방법
- 압축이 진행되는 동안, 시스템은 하던 일을 중단해야 함
- 메모리에 있는 내용을 옮기는 오버헤드 발생
- 오버헤드를 줄이는 최적의 방법 결정이 어려움
- ⇒ 페이징 기법 등장
VS 내부 단편화