[OS] 3-5,6. 가변분할 기억장치 할당, 기억장치 교체

공부 스파이럴·2024년 3월 15일
0

운영체제

목록 보기
20/27

가변분할 기억장치 할당

  • 작업들이 필요로 하는 만큼의 기억 공간을 그들에게 할당

기억 공간의 효율화

  • 가변분할 다중 프로그래밍에서의 초기의 분할 할당 기법

  • 가변분할 다중 프로그래밍에서의 단편화 현상

공백의 합병(coalescing holes)

  • 인접한 공백들을 결합하여 하나의 큰 기억 공간으로 만드는 과정

기억장소의 집약(storage compaction)

  • 현재 사용되고 있는 모든 기억 공간을 주기억장치의 한쪽으로 모음으로써, 가변 분할 다중 프로그래밍에서 존재하는 여러 개의 작은 공백들을 하나의 커다란 기억 공간으로 통합
  • 쓰레기 수집(garbage collection)이라고도 부름

  • 기억장소의 집약(storage compaction)의 단점
    • 생산적으로 사용될 수 있는 자원을 낭비할 수도 있음
    • 시스템은 집약이 실행되는 동안 동작을 중지하므로, 대화형 사용자에게 일정치 않은 응답 시간을 주며, 실시간 시스템의 경우 치명적인 시스템의 장애 요인이 될 수도 있음
    • 집약 시 기억장치 내에 있는 작업들이 재배치(relocating)되어야 함
      • 따라서 보통은 프로그램이 적재될 때 없애버리는 재배치 관련 정보를 쉽게 접근할 수 있는 형태로 계속 보관하고 있어야 함
    • 정상적인 경우 기억장치 내의 작업 적재 환경은 급격히 변화되기 때문에 자주 집약해야 함
      • 따라서 이로 인한 시스템 자원들의 소모가 집약으로부터 얻는 이익보다 더 커질 수도 있음

기억장치 배치 기법

  • 최초 적합, 최적 적합, 최악 기억장치 배치 기법
  • 최초 적합
    -> 분할 선택 결정을 빨리 내릴 수 있다는 장점이 있음

  • 최적 적합
    -> 가장 합리적인 방법

  • 최악 적합
    • 처음에는 비합리적인 정책으로 인식
    • 프로그램을 가장 알맞지 않은 공백, 즉 가장 큰 공백에 배치하는 것
    • 큰 공백에 프로그램을 배치하면 배치 후 남게 될 공백 역시 여전히 크고, 따라서 상당히 큰 다른 프로그램을 또 다시 그 공백에 배치할 수 있기 때문

기억장치 교체(swapping)

  • 다중 프로그래밍 시스템에서의 기억장치 교체
  • 일단 한 번 기억장치를 차지한 작업은 입출력이나 인터럽트 등이 발생하여 더 이상 계속할 수 없을 때까지 실행된 후, 기억장치와 처리장치를 다음 작업에 넘김
    • 이와 같이 짧은 시간 동안 하나의 작업이 전체 기억장치를 사용한 후, 필요에 따라 그 작업은 제거(swap out)되고 다시 다음 작업이 적재(swap in)됨
  • 이는 몇몇 사용자들에게는 적절한 응답 시간을 보장하는 것이 가능했으나, OS 설계자들은 보다 많은 사용자를 지원하기 위해 새로운 방법들을 개발해야 할 필요성을 느낌
    -> 페이징 시스템의 기초

0개의 댓글