가상메모리(스레싱) Flashcards
스레싱
[리드] 페이지 교체시간 > 실행시간
[정의] Page Fault가 연속적으로 발생하여 페이지 교체에 따른 프로세스 처리가 급격히 저하되는 현상
* 프로세스 수행시간 < 페이지 교체 시간 인 상태
[원인발생과정] OS가 CPU 이용률검사 → CPU이용률 저하, 프로세스 추가 → 전역페이지 교체 알고리즘 이행 → 페이지 부재율 증가, CPU 사용율 저하 → 새 프로세스 추가(멀티처리 증가) → Thrashing
* 보조기억장치를 활용하는 가상메모리 환경의 잦은 Swap In/Out으로 인해 발생
[원인]
- 과도한 멀티프로세싱 : Thread 과사용(과도한 비동기 프로그래밍), CPU 이용 정책(CPU 이용율 저하시 OS의한 프로세스 추가)
- 부적절한 페이지 호출/교체 정책 : Locality 미고려(요구기반 페이지 교체), 페이지 빈도 미고려(Beladys Anomaly, Page miss율증가)
- 물리적 자원 부족 : 저용량 Memory(요구자원량 > 가용 자원량), 저사양 CPU (Single Core)
[해결방안]
- 동적 Page 집합 관리 : Working Set(참조 페이지 집합 설정), PFF(페이지 부재율 상/하한)
- Locality 기반 페이지 관리 : Pre-Fatch기반 호출(예상 기반 페이지 호출), LRU 기반 교체 (참조시간 활용, Belady 이상 개선)
- 자원 유휴량 확보 : 고성능/고용량 HW(충분한 CPU, Memory 확보), 메모리 단편화 방지(GC 수행, Buddy Allocation)
* - 대표적 OS 기반 해결 방안인 동적 페이지 집합 관리 기법의 경우 상주 페이지 유지 정책에 따른 차이점 존재
Working Set
[리드] Locality 기반 스레싱 해결방안
[정의] 최근 일정시간 동안 참조된 페이지 집합을 주기억 장치에 상주하게 하는 기법
[원리] 지역성을 기반으로 가장 최근에 접근한 페이지가 참조될 가능성이 높다는 가정
[특성] 과도기, 안정기가 주기적 반복(프로세스 시작/이동에 변화)
[구성요소] 참조 페이지(주 기억장치 내 페이지), Working Set Size(WSS)(Locality에 따라 변환), Working set window size (고정된 페이지 참조 수)
[프로세스]
- 과도기 : 초기, 새로운 프로세스 시작으로 워킹셋 크기 증가
- 안정기 : 새로운 지역성이 확보되어 워킹셋 크기 감소
[장점] 멀티 프로그래밍 정도를 높임(Page Hit rate 증가), CPU 활용률 최적화(임계치 극대화)
[단점] Working Set 추적 관리 복잡, WS Window 사이즈 설정 모호함, 오버헤드 발생
[고려사항] 적전 Interval Time의 설정, 워킹셋 상주집합의 조정
PFF
[정의] 페이지 부재율(Page Fault Rate)에 따라 주기억장치의 페이지 프레임 수를 추가 할당하거나, 회수하여 페이지 부재율(Page Fault Rate)을 적정 수준으로 유지하는 메커니즘
[원리] 스레싱은 페이지 부재에서 발생 (페이지 부재비율 조절)
[특성] 페이지 프레임 할당 및 회수
[방식]
- 프레임 할당 : 페이지 부재율 상한값을 넘는 경우 프레임 할당
- 프레임 회수 : 페이지 부재율이 하한값보다 떨어지는 경우 프레임 회수
[장점] 오버헤드 적음(페이지 부재 발생시 동작), 직접 페이지 부재율 조절 가능
[단점] 프로세스 중지 과정 발생, 페이지 참조가 새로운 지역성으로 이동
* Working Set에 비해 오버헤드가 작고 직접적으로 페이지 부재율 조절 가능