[운영체제] 쓰레싱(Thrashing)이란?
[운영체제] 쓰레싱(Thrashing)이란?
페이지 부재가 과도하게 발생하는 상황
주기억장치의 모든 페이지가 활발히 사용되고 있어서 어떤 페이지가 교체된 후 곧바로 반복적인 페이지 부재가 발생프로세스의 실행보다 페이징을 위해 더 많은 시간이 소요
멀티 프로세싱을 계속 증가시키면 각각의 프로세스는 페이지 부재가 발생 |
쓰레싱의 원인
- CPU 이용률이 떨어질 때 새로운 프로세스를 추가하여 멀티 프로그래밍 정도(degree)를 높이려 하기 때문
- 멀티 프로그래밍 정도가 과도하게 높아지면
- 프로세스의 프레임 개수 감소하고 페이지 부재 증가
- 입출력 대기가 길어져서 CPU 이용율 감소
- 새로운 프로세스를 시작
- 페이지 부재 증가와 CPU 이용률 감소가 악순환됨
지역교환 알고리즘 or 우선순위 교환 알고리즘
지역교환 알고리즘하에서는 한 프로세스가 쓰레싱을 유발하더라도 다른 프로세스로부터 프레임을 뺏어 올 수 없으므로, 다른 프로세스는 쓰레싱으로부터 자유로울 수 있다.
쓰레싱 현상 방지 방법
- 각 프로세스가 필요로 하는 최소한의 프레임 갯수를 보장해주어야 합니다.
- CPU의 이용률을 높이고 쓰레싱현상을 방지하기 위해서는 다중 프로그래밍의 정도를 낮추어야 합니다.
- 즉, 각 프로세스들에게 충분한 페이지 프레임을 할당할 수 있도록 해 주거나
- 주기억 장치 내에 워킹 세트(Working set)을 제대로 유지하는 한 스레싱이 방지된다.
- working set : 임의의 시점에 집중적으로 참조되는 페이지들을 모두 주기억장치에 적재시켜 프로세스로 하여금 페이지 부재를 거의 발생시키지 않도록 하는 set,
이 기법은 프로세스가 현재 시간 이후에도 어느 정도 시간 동안은 이 집합에 속한 페이지들을 집중적으로 참조할 것이라는 지역성을 기반으로 한다 - 또 구역성(locallity)을 이용한다.
댓글
댓글 쓰기