* 참고 자료 : 운영체제론 한빛아카데미
고정 파티션 멀티프로그래밍 :
https://cow-kite24.tistory.com/123
고정 파티션 멀티프로그래밍의 제약 사항은 시스템의 자원 활용도를 떨어뜨린다는 점이다. 예를 들어, 어떤 고정된 파티션은 대기 중인 프로세스를 수용하기에는 너무 작을 수도 있고, 너무 커서 내부 단편화를 많이 일으켜 자원낭비를 가져올 수도 있다. 이러한 단점의 해결책이 가변 파티션 멀티프로그래밍이다.
1. 가변 파티션 멀티프로그래밍
아래 그림은 가변 파티션 멀티프로그래밍에서 시스템이 메모리를 할당하는 방법을 보여준다.
가변 파티션 멀티프로그래밍 구성은 내부 단편화 문제가 없다. 프로세스의 파티션이 정확히 프로세스의 크기에 따라 정해지기 때문이다.
2. 외부 단편화 문제
모든 메모리 구성 방식에서 어느 정도 낭비를 포함하게 되어 있다. 가변 파티션 멀티프로그래밍에서 낭비된 부분은 프로세스들이 작업을 완료하고 메인 메모리에 남긴 홀을 봐야 명확히 알 수 있다. 시스템은 이 빈 홀에 새로운 프로세스를 계속해서 배치할 수 있다. 그러나 이런 과정이 계속되면서 홀이 점점 작아지고, 결국에는 홀이 너무 작아서 새로 들어오는 어떤 프로세스도 수용할 수 없을 정도가 된다. 이러한 현상을 외부 단편화라고 한다.
3. 외부 단편화를 줄이기 위한 조치
- 병합 : 인접한 홀을 병합해 하나의 큰 홀을 생성
- 메모리 압축 : 메모리 트림시키기 혹은 가비지 컬랙션이라고도 함
메모리 중 사용되는 모든 공간은 메인 메모리의 한쪽 끝으로 재배치
오버헤드 발생 -> 압축 동안 다른 모든 작업을 중지
1. 외부 단편화와 내부 단편화의 차이점을 기술하라.
답 : 내부 단편화는 고정 파티션 환경에서 프로세스가 자신이 요구하는 것보다 많은 공간을 할당받을 때 발생하며, 각 파티션 내부의 메모리 낭비를 초래한다. 외부 단편화는 가변 파티션 환경에서 파티션 사이의 메모리에 사용되지 못하는 작은 홀들이 생기는 현상을 말한다.
2. 가변 파티션 멀티 프로그래밍 시스템에서 외부 단편화를 줄이는 두 가지 방법을 설명하라.
답 : 메모리 병합 방법은 인접한 여유 메모리 블록들을 병합해 큰 블록 하나로 만든다. 또한 메모리 압축 방법은 파티션들을 메모리 한쪽 끝으로 인접하도록 몰아서 큰 여유 메모리 블록 하나를 만들어낸다.
4. 메모리 배치 전략
가변 파티션 멀티프로그래밍 시스템에서는, 시스템이 유입된 프로세스를 어떤 메모리 홀에 배치할 것인지를 선택하는 경우가 많다.
4-1) 최초 적합 전략
- 처음 발견된 가능한 공간에 배치
- 배치할 위치를 빨리 찾을 수 있음
4-2) 최적합 전략
- 가장 잘 맞는 부분에 배치
- 사용하지 목할 작은 홀들을 최소화
- 모든 여유 홀조사 -> 오버헤드 증가
- 사용하지 않는 작은 홀 생성
4-3) 최악 적합 전략
- 가장 큰 홀에 배치 -> 배치 후 남은 공간이 큼 -> 따라서 큰 크기의 프로그램도 수용가능
- 사용하지 않는 작은 홀 생성
1. 최초 적합 전략은 어떤 면에서 설득력 있는가 ?
답 : 최초 적합 전략은 여유 메모리들에 대한 목록을 정렬할 필요가 없고 오버헤드가 적다는 점에서 설득력 있다. 그러나 유입된 작업을 수용하기에는 너무 작은 여유 공간이 리스트의 앞쪽에 몰려 있을 경우는 오히려 더 느리게 동작할 수도 있다.
2. 이 절에서 논의한 세 가지 메모리 배치 전략 중 내부 단편화를 초래하는 것은 없다.
답 : 참.