티스토리 뷰
프로그램을 실행시켜 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를 할당할 수 있는 방법이 필요하다.
'운영체제(OS)' 카테고리의 다른 글
[OS] Paged Segmentation 기법. (0) | 2019.12.16 |
---|---|
[OS] Segmentation 기법 & Paging 기법. (0) | 2019.12.16 |
[OS] Swapping ( 가상메모리가 없을 때.. ) (0) | 2019.12.16 |
[OS] 페이지 교체(Page Replacement) (0) | 2019.12.16 |
[OS] Memory ( 가상메모리 ) (0) | 2019.12.16 |