← 질문 목록
#392깊이 0
스래싱을 막기 위해 워킹셋을 어떻게 활용하는가?
운영체제
프로세스가 일정 시간 동안 자주 참조하는 페이지 집합인 워킹셋을 계산하여 그 크기만큼 프레임을 보장해 준다.
메모리 부족→페이지 부재 빈번
페이지 교체가 계속 일어난다
페이지 교체 급증→디스크 I/O 대기
CPU가 일을 하지 못하고 쉰다
CPU 이용률 급감→OS의 착각
OS는 가동률을 높이려 프로세스를 더 올린다
프로세스가 요구하는 최소한의 프레임 수가 할당되지 않으면 페이지 부재가 빈번하게 일어난다. 이로 인해 CPU 이용률이 떨어지면 운영체제는 다중 프로그래밍 정도를 높이려고 새로운 프로세스를 추가한다. 이 악순환이 스래싱이다.
운영체제는 워킹셋 알고리즘으로 각 프로세스가 필요로 하는 페이지 집합 크기를 파악한다. 이 값의 합이 현재 가용한 물리 메모리 크기보다 크면 일부 프로세스를 준비 큐로 보내고 메모리를 회수한다.
충분한 메모리를 보장받은 프로세스들이 실행을 마치면 중단했던 프로세스를 다시 복구한다. 이 방식으로 스래싱을 선제적으로 제어한다.