이번 내용은 Multiple Process인 상황에서 이전 글은 고정적인 Process의 수를 두고 이야기를 했다면, 이번에는 가변적인 수의 Process를 두고 이야기를 한다.

OperatingSystems:ASpiralApproach(Hardcover)ASpiralApproach
카테고리
지은이 Elmasri, Ramez/ Carrick, A. G./ Levine, David (McGraw-HillCollege, 2009년)
상세보기


아래의 Figure와 내용은 모두 위의 도서를 참고하고 발췌하였음. 또한, 도서의 내용 중 괜찮다고 생각되는 부분만 발췌를 한 것이기 때문에, 전체 내용에 비하면 빈약하기 그지 없겠지만, 도서의 가격이 장난이 아니라서 구입은.. -_- 미치지 않은 이상 구입하는 분은 없으리라고 봄.


위의 Figure를 참고하면, Application Program이 1부터 4까지 위치하고 있다. 그 상태에서 Application Program 2와 4가 빠져나가고, 기존의 Application 2 자리에 메모리 크기가 보다 작은 Application 5가 들어온다.

지금 위의 문제점은 무엇인가? Application Program 4의 위치에 다른 Application program이 오고 싶어도 만약 기존의 Application program 4보다 크기가 크다면 메모리에 올라가는 것이 불가능하다. 또한, Application program 5와 3 사이의 비어있는 공간에 들어갈 수 있는 Application이 없다면?

위의 Figure에서 볼 수 있듯, External Fragmentation은 전체적으로 메모리 낭비를 야기한다.


이러한 메모리 낭비를 줄이는 방법 중 하나가 바로 Compaction이다. 단점은? Compaction이라는 것이 전체적으로 메모리 효율은 올려줄 수 있겠지만, 부하가 발생한다. 만약 위의 Figure에서 Compaction을 하기 전, Application Program 1도 빠져있는 상황이라면 동시에 2가지 Hole에 대하여 Compaction을 해야 하고, 상대적으로 부하가 커진다. 즉, Low memory에서 빠질수록 Compaction의 부하가 커질 수 있다는 것이며, 아마 동시에 3개 이상의 Application을 종료한다면, 밖에 나가서 담배 한대 피고 돌아와야 할 수 있다. (과장이다.) 하지만 부하가 심하다는 것은 확실하다.
저작자 표시 비영리 변경 금지
신고

'Theory > CA & OS' 카테고리의 다른 글

OS, TLB(Transaction Lookaside Buffer)  (0) 2011.09.13
OS, Paging  (4) 2011.09.13
OS, Multiple processes with a variable number of processes  (0) 2011.09.13
OS, Mutiple Processes  (0) 2011.09.13
OS, Swapping  (0) 2011.09.13
OS, Memory Relocation  (0) 2011.09.12
by 가우초 2011.09.13 11:05
| 1 |

티스토리 툴바