본문 바로가기

cs

OS - 단편화, 동적 분할 다중 프로그래밍

1. 단편화 (fragmentation)


사용되지 않고 남은 기억장치의 빈 공간 조각. 데이터를 배치하고 남는 공간인 내부 단편화와 기억장치의 크기가 작아 배치하지 못하고 남는 공간인 외부 단편화로 구분된다

단편화

2. 동적 분할 다중 프로그래밍


= 가변분할 할당(MVT: Multiple contiguous Variable parTition allocation)
= 동적 할당(Dynamic Allocation)
미리 기억장치를 분할해 놓는 것이 아니라 프로그램을 주기억장치에 적재할 때 필요한 만큼의 크기로 영역을 분할하는 기법. 고정분할 할당기법의 단편화를 줄이기 위한 것이다.

2.1. 특징


  1. 주기억장치를 효율적으로 사용할 수 있다
  2. 다중 프로그래밍의 정도를 높일 수 있다
  3. 고정분할 할당기법에 비해 실행될 프로세의 크기에 제약이 없다
  4. 단편화를 많은 부분 해결할 수 있으나, 영역과 영역 사이에 단편화가 발생될 수 있다.
  5. 통합(coalescing) 기법과 집약(compaction) 기법을 이용하여 단편화를 해결한다.

2.2. 통합(coalescing), 집약(compaction)


단편화를 해결하기 위한 기법으로 통합기법과 집약기법 사용
  1. 통합 (coalescing)
    • 주기억장치 내에 인접해 있는 단편화된 공간들을 하나의 큰 공간으로 만드는 과정
    • 하나의 작업이 끝나면 인접한 공간에 공백이 있는지를 검사하는 방식으로 인접한 공백들을 하나로 합해가는 과정이라 할 수 있다

통합

  1. 집약 (compaction)
    • 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 큰 가용 공간을 만드는 작업
    • 기억장소의 트림 (burping the storage), 쓰레기 수집 (garbage collection)
    • 교체작업 전에 수행되어애 하므로 이때 소모되는 시스템 자원이 얻는 이익보다 커질 수 있다
    • 집약하는 동안 시스템은 모든 일을 중단해야 하므로 대화형 사용자에게 일정한 응답시간을 제공할 수 없다
    • 기억장치상의 작업들을 재배치시키는 작업을 하므로 프로그램이 로드될 때 통상 잃게되는 재배치 관련 정보를 바로 사용할 수 있는 형태로 유지시켜야 한다
     

2.3 기억장치 배치기법


주기억장치를 필요로 하는 작업에 기억공간을 할당하는 방법. 최초 적합 (first-fit), 최적 적합 (best-fit), 최악 적합(worst-fit) 등이 있다
  1. 최초 적합 (first-fit)
    • 요구작업을 주기억장치 내에 수용할 수 있는 첫 번째 공백에 배치하는 기법
  2. 최적 적합 (best-fit)
    • 요구작업을 주기억장치 내의 공백 중 가장 알맞은 공백에 위치시키는 방법
  3. 최악 적합 (worst-fit)
    • 요구작업을 주기억장치 내의 가장 큰 공백에 위치시키는 방법. 내부 단편화를 가장 많이 발생시키는 배치방법
     

'cs' 카테고리의 다른 글

OS - 가상기억장치  (0) 2022.05.10
OS - 기억장치 교체  (0) 2022.05.09
OS - 다중 프로그래밍 (고정분할 다중 프로그래밍)  (0) 2022.05.09
OS - 기억장치 관리기법  (0) 2022.05.08
OS - 기억장치의 구성  (0) 2022.05.08