9-3.[os] 스레싱과 프레임 할당

스레싱

스레싱의 개념

  • 하드디스크입출력이 너무 많아져서 잦은 페이지 부재작업이 멈춘 것 같은 상태
  • 멀티프로그래밍 정도: 동시에 실행하는 프로그램의 수 (degree of multiprogramming)

  • 멀티프로그래밍 정도가 너무 높으면 스레싱이 발생

멀티프로그래밍 정도와 CPU 사용률의 관계:

  • 프로그램의 수가 적을 때는 CPU 사용률이 계속 증가
  • 메모리가 꽉 참 -> CPU가 작업하는 시간보다 스왑 영역으로 페이지를 보내고 가져오는 작업이 빈번해짐
  • 스레싱 발생 지점(threshing point) : 메모리가 꽉차고 입출력이 빈번해서 CPU가 작업할 수 없는 상태가 되는 지점

image.png

  • 물리 메모리의 크기를 늘리면 스레싱 발생 지점이 늦춰져서 프로세스를 원만 하게 실행할 수 있음

  • 물리 메모리가 작업을 하는 데 충분한 크기가 되면 그 이후에는 크기를 늘려도 작업 속도에 영향을 미치지 않음


스레싱과 프레임 할당

  • 시스템 성능 -> 실행 중인 여러 프로세스에 프레임을 얼마나 나누어주느냐

  • 어떤 프로세스에는 너무 적은 프레임을 할당: 페이지 부재가 빈번히 일어남

  • 어떤 프로세스에는 너무 많은 프레임을 할당: 메모리를 낭비

정적 할당

  • static allocation
  • 프로세스 실행 초기에 프레임을 나누어준 후 그 크기를 고정
  • 균등 할당 방식, 비례 할당 방식

균등 할당

  • equal allocation
  • 프로세스의 크기와 상관없이 사용 가능한 프레임을 모든 프로세스에 동일하게 할당

비례 할당

  • proportional allocation
  • 프로세스의 크기에 비례하여 프레임을 할당하는 방식

image.png

단점:

  • 프로세스가 실행 중에 필요로 하는 프레임을 유동적으로 반영하지 못함
    • 예) 동영상 플레이어: 프로그램 크기는 작지만 재생되는 동영상의 크기가 크다
  • 사용하지 않을 메모리를 처음부터 미리 확보하여 공간을 낭비
    • 요구 페이징 방식: 처음부터 메모리에 모두 올리지 않음
    • 비례 할당 방식: 큰 프로세스를 실행하면서 당장 필요없는 프레임을 미리 할당해 놓음

동적 할당

  • dynamic allocation

작업집합 모델

  • working set model
  • 가장 최근에 접근한 프레임이 이후에도또 참조될 가능성이 높다는 가정
  • 최근 일정 시간동안 참조된 페이지들을 집합으로 만듦 -> 물리 메모리에 유지하여 프로세스의 실행을 도움

  • 작업집합 크기

    • working set size
    • 작업집합 모델에서 물리 메모리에 유지할 페이지의 크기
    • 작업집합에 들어갈 최대 페이지 수
  • 작업집합 윈도우

    • working set window (WSW)
    • image.png

image.png

  • 단점:
    • 충분한 페이지를 할당하지 않으면 작업집합에 있는 페이지를 물리 메모리에 유지하기가 힘들다.
    • 어떤 프레임을 물리 메모리에 유지해야 하는지는 알 수 있지만 프로세스에 프레임을 얼마나 할당해야 하는지는 알 수 없다.
    • 프로세스의 성능을 높이지만 스레싱 문제를 해결하지는 못한다.

페이지 부재 빈도

  • page fault frequency
  • 페이지 부재 횟수를 기록하여 페이지 부재 비율을 계산하는 방식

  • 상한선과 하한선

  • 상한선 초과: 할당한 프레임이 적다 -> 프레임을 추가하여 늘린다

  • 하한선 밑: 메모리가 낭비된다 -> 할당한 프레임을 회수

image.png

  • 프로세스가 처음 시작될 때는 페이지 할당량을 예측하기 어렵다
  • 프로세스를 실행하면서 추가적으로 페이지를 할당하거나 회수하여 조절

Did you find this article valuable?

Support Christy Choi by becoming a sponsor. Any amount is appreciated!