티스토리 뷰

반응형

프로그램을 실행시켜 Process를 만드는 과정에서 반드시 해당 Process는 Memory에 위치해야한다.

가상메모리 기법이 적용되었다면 전체가 아닐 수 있지만, 적용되지 않았다고 하면 해당 Process의 전체는 항상 Memory에 위치해야 정상적으로 Process를 진행할 수 있다.

 

 

(Very Simple Version)

- Memory를 모두 동일한 크기로 분할한다. 

- 그리고 분할된 조각당 하나의 Process를 할당한다. 

- 지금은 절대 사용할 수 없는 기법인듯..

   ( 프로그램의 크기도 커지고... 일정하지도 않고... 단편화도 심할듯 )

 

 

(MUT - 가변분할)

- OS가 Memory의 사용된 영역과 미사용된 영역을 파악하기 위한 Table을 구성한다. ( OverHead... )

- Process가 Memory를 할당할 때 여러가지 알고리즘이 적용될 수 있다. ( 밑에서 설명할거야 !! )

- 계속해서 Process에 공간을 할당하다가 들어갈 자리가 없으면 기다리던가, 더 작은 다른 프로세스로 넘어간다.

- 자유공간이 여기저기에 산재하게된다. ( 인접한 자유공간은 병합 )

 

 

설명한다던 알고리즘...
 - 최초적합 : 첫 번째 사용가능한 공간을 할당한다.
 - 최적적합 : 가장 남는 공간이 적은 공간을 할당한다. (리스트 전체를 검색해야한다) - 남는게 거의 없다.
 - 최악적합 : 가장 큰 가용공간을 할당한다. (리스트 전체를 검색해야한다) - 남는건 다시 가용공간.

어느정도 감은 오겠지만 최초적합은 속도에 있어서, 최악적합은 사용률에 있어서 효율성을 보여준다.

 

 

단편화? (Fragmentation)

 공간중에 일부를 사용하지 못하게 되는 것이다. ( 여기서 공간은 당연히 Memory인건 알지 ?ㅎ )

 

 외부 단편화

  - 메모리를 할당하고 해제하고를 반복하다보면 서로 다른 Process크기 때문에 결국은 조그마한 조각이

    남을 수밖에 없다. 이런 블럭 외부에 발생하는 사용불가능한 공간발생을 외부 단편화효과라고 한다.

 

 내부 단편화

  - 메모리를 일정한 크기로 자르는 기법을 적용했을 때, 그 조각보다 크기가 작은 Process가 할당되면

    그 조각에 남는 공간이 발생하게된다. 이런 블럭 내부에 발생하는 것을 내부 단편화효과라고 한다.

 

 

MUT 가변분할의 경우 당연하게도 외부 단편화가 발생하게 된다. 이를 해결하기 위해서는 Segmentation/Paging 기법과 같이 연속되지 않은 Memory에 하나의 Process를 할당할 수 있는 방법이 필요하다.

 

 

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함