*Thrashing
컴퓨터를 오래 쓰다보면 컴퓨터가 느려지는데 느려지는 원인 중 하나로 thrashing이 있는 것 같습니다. 정말 궁금해서 이렇게 조사해봤습니다!
1)개념
-빈번한 page swap으로 인해 컴퓨터가 느려지는 것.
2)원인
-다중 프로그래밍 하에서 전역 페이지 교환 알고리즘을 사용한 경우
-과도한 페이지 부재율 발생
-페이지에 보다 많은 시간 소비
3)해결 방법
가. WS(Working Set) policy
- 프로세스에게 작업 설정에 맞는 충분한 프레임을 할당
***이 부분은 수업시간에 했던 CPU Scheduling을 말하는 것 같습니다.
그래서 turnaround time이 가장 짧은 방법을 택하거나 (Shortest Job Next)
모든 프로그램이 동시에 시작을 빨리 할 수 있게 합니다 (Round Robin)
- WS : 프로세스가 액티브하게 참조하고 있는 페이지의 집합
- 기억장소참조의 locality 성질을 이용
***여기서 locality(구역성)이란?
#프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로
참조하는 성질이 있다는 이론
#thrashing을 방지하기 위한 working set policy의 기반이 됨
#프로세스가 집중적으로 사용하는 페이지를 알아내는 방법 중 하나로, 가상 기억
장치 관리의 이론적인 근거가 됨
***구역성에는 시간 구역성(Temporal Locality)와 공간 구역성(Spatial Locality)가
있습니다.
#시간 구역성
>프로세스가 실행되면서 하나의 페이지를 일정 시간동안 집중적으로 액세스하는
현상
-시간 구역성이 이루어지는 기억 장소
1)Loop(반복, 순환)
2)스택(Stack)
3)부프로그램(Sub Routine)
4)Counting(1씩 증감)
5)Totaling(집계)에 사용되는 변수
#공간 구역성
>프로세스 실행시 일정 위치으 피에지리르 집중적으로 액세스하는 현상
-공간 구역성이 이루어지는 기억 장소
1)배열 순회(Array Traversal)
2)순차적 코드의 실행
3)프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언
하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용
- Working set 크기의 결정이 매우 중요
- 스레슁의 조절이 어렵다
- 프로그램이 효율적으로 실행되기 위해서는 working set은 항상 primary memory에 상주하고 있어야 함
나. PFF(Page Fault Frequency) policy
- 원하는 페이지 부재율의 상한과 하한을 정함
- 페이지 부재율 > 상한 : 그 프로세스에게 프레임을 더 할당
- 페이지 부재율 < 하한 : 그 프로세스로 부터 프레임을 회수
다. WS와 PFF의 차이점
- WS policy : 매번 참조시마다 resident page set 조정 -> high overhead
- PFF policy : 페이지 부재 발생시에만 resident page set 조정 -> low overhead
댓글 없음:
댓글 쓰기