CPU작업 시간보다 메모리와 스왑영역 간 페이지 교체에 시간을 많이 소비하는 것
- 스와핑 작업은 디스크 I/O 작업으로 CPU를 사용하지 않는 작업
- 스와핑 시간이 많아질 수록 CPU가 일하는 시간이 감소 함
페이지 부재 (Page Fault)
CPU를 점유하고 있는 프로세스가 필요로 하는 데이터가 물리 메모리에 없는 경우
다중 프로그램 정도 (MPD: Multi-Programming Degree)
- 메모리에 동시에 올라가 있는 프로세스의 수
- 운영체제는 CPU 이용률이 낮으면 MPD를 높임
- 과도하게 MPD가 높아질 경우 → 프로세스에게 할당되는 메모리 양 감소 → 페이지 부재 발생 → 프로세스 수행시간 보다 페이지 교체 시간이 많은 상태 됨
즉 스레싱이란 페이지 부재율이 증가하여 CPU 이용율이 급격히 떨어지는 현상
-
부적절한 페이지 교체 정책
- 페이지 교체 정책 실패
- page 추가 hit rate 감소
-
시스템 리소스 부족
- 작은 L2캐시 및 낮은 메모리용량으로 인한 빈번한 Page Fault 발생
- Single Core 혹은 저성능 CPU/CORE 사용
-
프로그램 메모리 관리 실패
- 과도한 thread()와 무분별한 fork()로 과도한 프로세스 발생
- exit(0) 미사용 혹은 G/C 미수행으로 메모리 누수/관리 실패
- 스레싱은 각 프로세스에 프레임을 할당하는 정도와 연관 됨
- 프레임 할당 방법
- 감당할 수 있을 정도의 페이지 부재를 일으키며, 전체 프로세스가 원할하게 돌아가게 함
- 2가지의 프레임 할당 방법 존재
- 프로세스 별로 할당된 프레임의 크기가 고정되어 있음
- 메모리 상의
자기 자신의 프로세스 페이지
에 대해서만 교체 작업 수행 - 페이지 부재 발생 시
- 프로세스 안에서 페이지 교체 정책을 통해 자체적으로 메모리 확보
- 프로세스의 우선 순위를 따져 각 프로세스에게 동적으로 우선 순위 할당 진행
- 메모리 상의
모든 프로세스 페이지
에 대한 교체 작업 수행 - 페이지 부재 발생 시
- 다른 프로세스가 가지고 있던 프레임을 가져와 사용할 수 있음
- 개념
- 지역성 집합이 메모리에 동시에 올라갈 수 있도록 보장하는 메모리 관리 알고리즘
- 방법
- 지역성을 활용하여 프로세스가 많이 참조하는 페이지 집합을 메모리 공간에 계속 상주시켜 빈번한 페이지 교체현상을 줄이는 방법
워킹셋 윈도우
: 페이지를 참조하는 횟수- ex) 10,000번의 명령어 수행을 워킹셋 윈도우로 정한다
- 현재 시점 T로부터 이전 10,000개의 명령어에 속한 녀석들이 워킹셋이 된다는 의미
- 시간이 지남에 따라 자주 참조하는 페이지들의 집합은 변할 수 있기 때문에 워킹셋도 시간에 따라 변함
- ex) 10,000번의 명령어 수행을 워킹셋 윈도우로 정한다
- 개념
- 프로세스의 페이지 부재율을 주기적으로 조사하고 이 값에 근거하여 각 프로세스에 할당할 프레임 양을 동적으로 조절하는 알고리즘
- 방법
- 시스템이 미리 정해 놓은 상한값(Upper bound)을 넘어가거나 하한값(Lower bound)이하로 떨어지게 되면 운영체제가 메모리에 올라가있는
프로세스의 수를 조절
- 페이지 부재 비율 상한선 초과 → 할당한 프레임이 적다는 것 → 프레임 할당량 늘려줌
- 페이지 부재 비율 하한선보다 낮음 → 할당한 프레임이 많다는 것 → 할당한 프레임 어느정도 회수
- 시스템이 미리 정해 놓은 상한값(Upper bound)을 넘어가거나 하한값(Lower bound)이하로 떨어지게 되면 운영체제가 메모리에 올라가있는
프로세스의 수를 조절
-
페이지의 일반적인 크기
4KB ~ 4MB
- 페이지의 크기는 점점 커왔고, 현재도 계속 증가 하고 있음
-
페이지 크기는 내부 단편화와
페이지 부재
의 trade-off관계
- 장점
- 내부 단편화(Internal Fragmentation)가 줄어듦
- 메모리 사용의 효율성을 높일 수 있음
- 단점
- 개별 페이지에 대한 페이지 테이블을 들고 다니는 데 많은 메모리가 필요할 수 있음
- 잦은 페이지 부재로 인한 오버헤드가 커질 수 있음
- 장점
- 필요한 페이지 테이블의 수는 작음
- 페이지 부재를 핸들링하는데 드는 오버헤드가 적음
- 단점
- 내부 단편화가 큼
운영체제 KOCW 양희재 교수님
[운영체제/OS] 프레임 할당(Frame allocation)과 Page fault 관련 기타 이슈들
[시나공 정보처리기사] 2415506 스래싱
스레싱 (Thrashing)
스레싱(thrashing)이란 무엇인가