운영체제

[운영체제] 가상메모리 - 스레싱

체리1001 2022. 6. 28.
스레싱 threshing


: 하드디스크의 입출력이 너무 많아져서 잦은 페이지 부재로 작업이 멈춘 것 같은 상태

 

스레싱 발생시점

: CPU가 작업하는 시간보다 스왑 영역으로 페이지를 보내고 새로운 페이지를 메모리에 가져오는 작업이 빈번해져서 CPU가 작업할 수 없는 상태에 이르게 되는 시점

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

 

 

스레싱과 프레임 할당

 

: 프로세스에 너무 적은 프레임을 할당하면 페이지 부재가 빈번히 일어난다.

: 프로세스에 너무 많은 프레임을 할당하면 페이지 부재는 줄지만 메모리가 낭비된다.

-> 프로세스에 프레임을 할당하는 방식은 크게 정적 할당동적할당으로 구분된다.

 

 

정적 할당

 

(1) 균등 할당 equal allocation

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

: 크기가 큰 프로세스의 경우 필요한 만큼 프레임을 할당 받지 못하기 때문에 페이지 부재가 빈번하게 발생하고, 크기가 작은 프로세스의 경우 메모리가 낭비되는 문제가 발생한다.

 

(2) 비례 할당 proportional allocation

: 프로세스의 크기에 비례하여 프레임을 할당

: 프로세스의 크기를 고려하지 않는 고정(균등) 할당보다 좀 더 현실적인 방식이긴 하지만 프로세스가 실행 중에 필요로 하는 프레임을 유동적으로 반영하지 못하고, 사용하지 않을 메모리를 처음부터 미리 확보하여 공간을 낭비한다는 문제가 발생한다.

 

 

동적 할당

 

(1) 작업집합 모델 working set model

: 최근 일정 시간동안 참조된 페이지들을 집합으로 만들고, 이 집합에 있는 페이지들을 물리 메모리에 유지한다.

 

- 작업 집합 크기:  작업 집합 모델에서 물리 메모리에 유지할 페이지 크기

- 작업 집합 윈도우: 작업 집합에 포함되는 페이지 범위

 

* 작업 집합 윈도우의 크기와 프로세스 실행 성능

: 작업 집합 윈도우를 너무 크게 잡으면 필요 없는 페이지가 메모리에 남아서 다른 프로세스에 영향을 미친다.

: 작업 집합 윈도우를 너무 작게 잡으면 필요한 페이지가 스왑 영역으로 옮겨져서 프로세스의 성능이 떨어진다.

-> 적정 크기의 작업 집합을 유지함으로써 메모리를 효율적으로 관리해야 한다.

 

(2) 페이지 부재 빈도 page fault frequency

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

-> 페이지 부재 비율이 상한선을 초과하면 프레임을 추가하여 늘리고, 페이지 부재 비율이 하한선 밑으로 내려가면 할당한 프레임을 회수!

-> 페이지 부재 빈도 방식은 프로세스를 실행하면서 추가적으로 페이지를 할당하거나 회수하여 적정 페이지 할당량을 조절한다.

 

댓글