[운영체제] 기억장치 할당 기법

2017. 3. 5. 20:089급 공무원/컴퓨터 일반

주기억장치 할당 방법

 1. 연속 할당 기법 : 단일 분할 할당, 다중 분할 할당

 1-1 단일 분할 할당 : 주기억장치를 운영체제 영역과 사용자 영역으로 나누어,

한 순간에 한 명의 사용자만이

사용자 영역을 사용

> 가장 단순, 초기 운영체제에 사용

 1-1-ㄱ 오버레이(Overlay) : 하나의 프로그램을 여러 개의 조각으로 분할 한 후 필요한 조각을 차례로 적재

> 주기억장치보다 크기가 큰 프로그램을 실행하기 위한 기법

 1-1-ㄴ 스와핑(Swapping) : 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체

> Swap in : 보조 > 주 (주기억장치로 들어오는 것)

> Swap out : 주 > 보조 (쫒겨나는 것)

 1-2 다중 분할 할당 : 고정 분할 할당(MFT), 가변 분할 할당(MVT)

 1-2-1 고정 분할 할당(정적 할당) : 프로그램 할당 전

운영체제가

주기억장치의 사용자영역을

고정된 크기로 분할하고

각 영역에

준비된 프로그램을 할당하여 수행

> 초기에 다중프로그래밍을 위해 사용

 1-2-2 가변 분할 할당(동적 할당) : 프로그램을 적재하면서

필요한 만큼의 크기로

영역을 분할

> 주기억장치 효율 증가, 다중프로그래밍 정도 증가


 2. 분산 할당 : 프로그램을

특정 단위의 조각으로 나누어

주기억장치 내에

분산하여 할당

> 페이징(Paging), 세그먼테이션(Segmentation)

 2-1 페이징 : 프로그램을

동일한 크기로 나누어(페이지라고 함)

이것을 블록으로 사용

 2-2 세그먼테이션 : 프로그램을

가변적인 크기로 나누어(세그먼트라 함)

이것을 블록으로 사용

// 동일크기로 분할하면 페이징, 가변크기로 분할하면 세그먼테이션 이라는건가!


 3 분산할당의 문제와 해결 방안

 3-1 문제 : 단편화(내부,외부)

분할된 공간에

프로그램을 할당하고 반납하는 과정을 반복하면서서

사용되지 않고 남는 빈 공간이

여기저기 생기는 현상

 3-1-1 내부단편화 : 분할된 영역이

프로그램 크기보다 커서(영역 > 프로그램)

할당되고

남는 공간

>ex 30KB공간에 20KB 프로그램을 할당하면 10KB는 내부단편화 발생

3-1-2 외부단편화 : 분할된 영역이

할당될 프로그램의 작아서(영역 < 프로그램)

할당되지 못하고

남는 공간

>ex 20KB공간에 30KB 프로그램은 할당할 수 없음.20KB는 외부단편화 발생

 3-2 단편화 해결 방법 : 빈공간을 합치고 모은다!

 3-2-1 통합(Coalescing) : 인접한 빈 공간을 하나로 합친다!

 3-2-2 압축(집약, Compaction) : 기억장치의 내용들을 한 군데로 몰고 남은 자유공간을 다른 한 군데로 몰아 큰 블록을 만든다!

 3-2-3 쓰레기 수집(Garbage collection) : 여러개의 작은 단편화공간을 모아서 하나의 큰 공간으로 만든다!