Thrashing

신명철·2022년 4월 5일
0

OS

목록 보기
17/27

Thrashing Diagram

  • 메모리에 너무 많은 프로그램이 올라가 있어서 프로그램이 메모리를 너무 조금만 할당 받게 됨
  • 그 결과 페이지 폴트가 잦아짐 -> CPU 이용률 하락
  • 페이지 폴트를 처리하느라 정신이 없어짐

Thrashing

  • 프로세스의 원활한 수행에 필요한 최소한의 page frame 수를 할당 받지 못한 경우 발생
  • Page fault rate가 매우 높아짐
  • CPU utilization 낮아짐
  • OS는 MPD(Multiprogramming Degree) 높여야 한다고 판단
  • 또 다른 프로세스가 시스템에 추가됨 -> 프로세스 당 할당된 frame 더욱 감소
  • 프로세스는 page swap in/out 하느라 바쁨

Working-set Model

  • Thrashing 을 막기 위한 방법

Locality of reference

  • 프로세스는 특정 시간 동안 일정 장소만을 집중적으로 참조한다.
  • 집중적으로 참조되는 해당 page들의 집합을 locality set이라고 함

Working-set Model

  • Locality에 기반해 프로세스가 일정 시간 동안 원활하게 수행되기 위해 한꺼번에 메모리에 올라와 있어야 하는 page 들의 집합을 Working set이라고 정의
  • Wokring set 모델에는 process의 working set 전체가 메모리에 올라와 있어야 수행되고 그렇지 않은 경우 모든 frame을 반납하고 swap out(suspend)
  • Thrashing를 방지함
  • MPD 결정

PFF (Page-Fault Frequency) Scheme

  • 페이지 할당값을 적절하게 유지 하는것이 목적
  • 프로세스의 page fault 비율을 보고 페이지를 더 줄지 말지 결정
  • page fault rate의 상/하한값을 둔다
    • 상한값을 넘으면 더 할당
    • 하한값을 이하면 줄인다
  • 빈 frame 이 없으면 일부 프로세스 swap out
profile
내 머릿속 지우개

0개의 댓글