메모리 관리
메모리 관리
메모리 관리 필요성
- 여러 프로세스가 한정된 자원을 사용 하기 때문
- 메모리 자원을 효율적으로 사용하기 위해
고정 분할 방식 (Fixed Partition Multi-programming, FPM)
- 물리적 메모리를 정해진 개수만큼의 영구적인 분할로 나누어 두고 각 분할에 하나의 프로세스를 적재하는 방식.
- 분할의 크기는 같을수도, 다를수도 있다.
- 비연속 메모리 분할 : 한 프로세스가 분산 배치됨
- 고정분할 방식에는 외부 단편화(external fragmentation), 내부단편화(internal fragmentation) 문제가 발생할 수 있다.
- 단편화 : 메모리 공간의 빈 공간 또는 자료가 여러개의 조각으로 나뉘는 현상
- 내부 단편화 : 남는 메모리 공간 발생
- 외부 단편화 : 맞는 메모리 공간이 없다
가변 분할 방식 (Variable partition multi-programming, VPM)
메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식.
연속 메모리 분할 : 한 프로세스가 연속된 공간에 배치
프로세스에 딱 맞게 메모리 공간을 사용하기에 내부단편화 문제는 발생하지 않는다.
사용중인 프로세스가 종료되어 메모리에 새로운 프로세스를 올릴 메모리 공간이 충분하지 않을 경우 외부 단편화 문제가 발생
가변 분할 방식은 어디 메모리 공간에 프로세스를 올려야 할지 결정해야하는 문제가 있다. 이를 해결하기 위한 기술적 방법 3가지
- 최초 적합 : 가장 먼저 나오는 가용 가능한 메모리공간에 적재
- 최적 적합 : 가장 딱 맞는 메모리 공간을 찾아 적재
- 최악 적합 : 가장큰 메모리 공간에 적재
- 최초 == 최적 > 최악 (랜덤하게 넣나 최적으로 넣나 비슷하다는 결론)
가변 분할 방식에서 발생하는 외부 단편화 문제를 해결하기 위한 방법으로는 컴팩션(Compaction) 방법이 있다.
- 컴팩션 : 물리적 메모리 중에서 사용중인 메모리 공간을 한쪽으로 몰고 가용 공간을 확보하는 방법. 메모리를 효율적으로 사용 할수 있으나, 수행중인 프로세스의 메모리 주소 공간을 이동 시켜야하므로 비용이 많이든다