1 스레싱
메모리가 꽉 찬 후 스왑 영역과의 입출력이 너무 많아져서 잦은 페이지 부재로 작업이 멈춘 것 같은 상태를 스레싱(threshing)이라고 한다.
동시에 실행하는 프로그램 수를 멀티프로그래밍 정도라고 하는데, 이 정도가 너무 높으면 스레싱이 발생한다.
메모리가 꽉 차서 CPU가 작업하는 시간보다 입출력 작업이 빈번해져서 CPU가 작업할 수 없는 상태에 이르게 되는 시점을 스레싱 발생 지점이라고 한다.
스레싱은 각 프로세스에 프레임을 할당하는 문제와도 연관되는데, 남아 있는 프레임을 적절히 나눠주는 정책이 필요하다.
2 정적 할당
프로세스 실행 초기에 프레임을 나눠준 후 그 크기를 고정하는 것. 균등 / 비례 할당 방식이 있다.
균등 할당 : 프로세스의 크기와 상관없이 프레임을 모두 동일하게 할당한다.
비례 할당 : 프로세스의 크기에 비례하여 프레임을 할당하는 방식.
3 동적 할당
정적 할당 방식은 프로세스를 실행하는 초기에 프레임을 할당하기 때문에 프로세스를 실행하는 동안 메모리 요구를 반영하지 못하는 단점이 있다. 따라서 동적할당 방식으로 해결한다.
작업집합 모델(working set model) : 가장 최근에 접근한 프레임이 이후에도 또 참조될 가능성이 높다는 가정에서 출발한다. 최근 일정 시간동안 참조된 페이지를 집합으로 만들고 이 집합에 있는 페이지들을 물리 메모리에 유지하여 실행을 돕는다.
페이지 부재 빈도 : 페이지 부재 횟수를 기록해 비율을 계산한다. 부재 비율의 상한선과 하한선을 설정해서 상한선을 초과하면 프레임을 추가하고, 하한선 밑으로 내려가면 프레임을 회수한다.
'프로그래밍 이론 & 책 > 운영체제' 카테고리의 다른 글
[운영체제] 10.2 디스크 장치 (0) | 2020.06.02 |
---|---|
[운영체제] 10.1 입출력 시스템 (0) | 2020.06.02 |
[운영체제] 9.2 페이지 교체 알고리즘 (0) | 2020.06.01 |
[운영체제] 9.1 요구 페이징 (0) | 2020.06.01 |
[운영체제] 8 가상 메모리 (0) | 2020.05.29 |