Study/Operating System
[OS] 연속 메모리 할당
Potato potage
2022. 4. 11. 13:23
반응형
고정 크기 할당
- 고정 크기 할당은 메모리를 파티션(partition)이라는 동일한 크기로 나누고, 각 프로세스가 실행될 때 1개의 파티션을 할당하는 기법이다.
- 예시
- 메모리 전체를 n개의 파티션으로 분할하고 프로세스가 실행을 시작할 때 각 프로세스에게 1개의 파티션을 할당한다.
- 동시에 실행시킬 수 있는 프로세스의 개수는 n개로 제한되어, n개의 프로세스가 실행 중일 경우 새로운 프로세스가 도착하면 프로세스 중 하나가 종료될 때까지 큐에서 대기한다.
- 문제점
- 프로세스가 파티션의 크기보다 작은 경우 메모리의 일부가 낭비된다.
- 프로세스가 파티션의 크기보다 큰 경우 처음부터 실행할 수 없다는 문제가 있다.
가변 크기 할당
- 프로세스의 크기가 모두 다른 것을 고려하여, 각 프로세스에게 프로세스와 동일한 크기의 메모리를 할당하는 기법이다.
- 예시
- 할당되는 메모리 공간을 region (리전)이라고 불렀다.
- 가변 크기 할당을 사용하면 수용 가능한 프로세스의 개수는 가변적이다.
- 프로세스가 도착했을 때 가용 메모리가 부족하면 실행 중인 프로세스가 종료되어 필요한 가용 공간이 생길 때까지 큐에서 대기한다.
단편화(fragmentation)
- 단편화란 프로세스에게 할당할 수 없는 조각난 메모리들이 생기는 형상을 뜻한다.
- 조각 메모리를 홀(hole)이라고 부르며 홀이 너무 작아 프로세스에게 할당할 수 없을 때 단편화가 발생한다.
- 홀이 생기는 위치에 따라 내부 단편화와 외부 단편화로 나뉜다.
- 내부 단편화(internal fragmentation)
- 프로세스에게 할당된 메모리 내부에 작은 홀이 생기는 경우이다.
- 고정 크기 파티션의 경우에서 볼 수 있다.
- 외부 단편화(external fragmentation)
- 할당된 메모리들 사이에 작은 메모리 홀이 생기는 경우이다.
- 가변 크기의 경우 외부 단편화가 나타나는데, 크기가 다른 리전이 할당되고 반환되면서 리전과 리전 사이의 홀이 발생한다.
출처
운영체제(Operating system), 황기태 지음
반응형