솜은 코튼

[OS] 가변 분할 방식과 고정 분할 방식 본문

OS

[OS] 가변 분할 방식과 고정 분할 방식

솜.코 2023. 5. 21. 12:55

 

 

앞에서는 가변 분할 방식과 고정 분할 방식의 장단점을 설명하였다.

 

2023.05.21 - [OS] - [OS] 메모리 할당 (다중 프로그래밍 환경)

 

[OS] 메모리 할당 (다중 프로그래밍 환경)

앞에서는 한 번에 한 프로세스만 실행되는 단일 프로그래밍 환경에서 설명하였다. 2023.05.21 - [OS] - [OS] 메모리 할당 (단일 프로그래밍 환경) [OS] 메모리 할당 (단일 프로그래밍 환경) 메모리를 어

sommda.tistory.com

 

 

가변 분할 방식의 메모리 관리

.

.

.

 

 

가변 분할 방식은 '세그멘테이션 기법'이라고도 한다.

 

 

우리가 앞에서 빈 공간들이 생기는 것을 알게 됐다.

그 공간들을 '단편화'라고 한다.

 

 

가변 분할 방식에서는 프로세스 외부에 공간이 생겨

'외부 단편화'라고 한다.

 

 

 

 

외부 단편화를 해결하기 위해

공간이 생기지 않도록 하거나 공간들을 합쳐야 할 것이다.

 

 

먼저 외부 단편화가 생기지 않도록 하는 것이 중요하다.

메모리 배치 방식을 지정하는 것인데

최초 배치(First Fit), 최적 배치(Best Fit), 최악 배치(Worst Fit)이 있다.

 

 

이름만 들어도 대충 짐작이 간다.

 

최초 배치는 메모리 적재 가능한 첫 번째 공간에 배치

최적 배치는 메모리 적재 후 가장 작게 남는 공간에 배치

최악배치는 메모리 적재 가능한 가장 큰 공간에 배치

 

 

하지만 위와 같은 방식을 사용해도 단편화 현상은 발생한다.

 

두번째로 빈 공간들을 합치는 작업을 해야 한다.

 

합치기 위해 이동할 프로세스 동작을 멈추고,

이동 후 주소를 바꾸고, 다시 작업을 시작해야 하므로

시간이 많이 소요된다.

 

하여 이전 내용에서 말했듯이 메모리 관리가 복잡하다.

 

그럼 고정 분할 방식의 메모리 관리도 알아보자.

 

고정 분할 방식의 메모리 관리

.

.

.

 

 

고정 분할 방식은 '페이징'이라고도 한다.

 

고정 분할 방식에서도 공간이 남는 것을 앞에서 말했었다.

 

고정 분할 방식에서는 프로세스 내부에 공간이 생겨

'내부 단편화'라고 한다.

 

 

가변 분할 방식에서는 내 것의 공간이 정해진 것이 아니었기에

공간들을 합쳐서 다른 프로세스가 사용할 수 있었다.

 

하지만 고정 분할 방식에서는 내 것의 공간이 정해진 것이므로

남은 공간을 다른 프로세스에게 줄 수 없다!

한마디로 빈 공간을 합치는 것이 불가능한 것이다.

 

 

대신 크기를 조절하여 내부 단편화를 최소화하여야 한다.

 

크기를 너무 줄이면 그만큼 관리가 힘들고

크기가 크면 내부 단편화가 늘어난다는 것을 알아두자.

 

 

아래 그림은 고정 분할 방식의 프로세스 배치 방식이다.

프로세스 C를 20KB 'C1'과 10KB 'C2'로 나뉘는데

메모리에 남는 공간이 없으므로 C2는 스왑 영역으로 옮겨진다.

 

 

 

 

가변 분할 방식과 고정 분할 방식을 정리해 보면 아래와 같다.

 

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)