-
728x90
1. 스레싱(threshing)
물리 메모리가 꽉 찬 상태라면 페이지 부재가 자주 일어날 수 있다. 이 때 스왑 영역에 있는 데이터를 가져오기 위한 시도도 함께 많아지는데, 하드디스크의 잦은 입출력으로 작업이 멈춘 것처럼 보이는 경우가 발생한다. 이를
스레싱
이라고 한다.물리 메모리 크기
스레싱은
물리 메모리의 크기
,멀티 프로그래밍 정도
와 관련이 있다. 동시에 실행하는 프로그램의 수를 멀티프로그래밍 정도라고 하는데, 이 수가 물리 메모리가 감당할 수 있는 범위를 넘어설 때 스레싱이 발생한다. 그래서 물리 메모리의 크기를 늘리면 성능이 좋아질 수 있지만 멀티 프로그래밍 정도보다 웃도는 수준의 크기라면 더 이상 늘려도 효과가 없다.프레임 할당
스레싱은 프레임 할당과도 관련이 깊다. 프로세스에 너무 적은 프레임을 할당하면 잦은 페이지 부재가 일어나고 너무 많은 프레임을 할당하면 프레임이 남아돌 수 있기 때문이다.
그렇기 때문에 프레임을 적절하게 분배하는 정책이 중요한데, 크게
정적 할당
과동적 할당
으로 구분할 수 있다.2. 정적 할당
실행 초기에 프레임을 나누어주고 그 크기를 고정하는 방식이다.
균등 할당 방식
과비례 할당 방식
이 있다.균등 할당
프로세스의 크기와 상관없이 사용 가능한 프레임을 모든 프로세스에 동일하게 할당한다. 딱 봐도 비효율적이다.
비례 할당
프로세스의 크기에 비례하여 프레임을 할당하는 방식이다. 하지만 프로세스의 크기보다 많은 메모리를 요구하는 경우를 반영하지 못하고 사용하지 않는 프레임을 할당할 수 있다는 단점이 있다.
3. 동적 할당
정적 할당 방식은 실행 초기에 프레임을 할당하기 때문에 실행 중 발생하는 요구 사항을 반영하지 못한다. 이를 해결한 것이 동적 할당 방식이다.
작업집합 모델
지역성 이론을 바탕으로 하여, 최근에 접근한 프레임이 이후에도 참조될 가능성이 높다고 생각한다. 최근 일정 시간동안 참조한 페이지들을 집합으로 만들고, 이 집합에 있는 페이지들을 물리 메모리에 유지한다.
이 모델은 집합의 크기를 적절하게 설정하는 것이 중요하다. 너무 크면 사용하지 않는 페이지가 메모리에 남아있게 되고, 너무 작으면 반대로 필요한 페이지가 스왑 영역에 있게 된다.
또한 이 모델 자체가 스레싱을 해결하는 것은 아니다. 프로세스가 자주 사용하는 프레임을 메모리에 유지할 뿐 어느 프로세스에 얼마나 프레임을 할당해야 할 지는 모르기 때문이다.
페이지 부재 빈도
프로세스가 처음 시작할 때는 프레임 할당량을 예측하기 어렵다. 그래서 작동 중인 프로세스를 관찰하고 페이지 부재율을 살핀다.
비율이 높으면 할당된 프레임이 적다는 뜻이므로 프레임을 더 할당하고, 비율이 너무 적으면 프레임이 낭비되고 있다는 뜻이니 프레임을 회수한다.
728x90'운영체제' 카테고리의 다른 글
34. 입출력 시스템 (0) 2021.09.23 33. 프레임 관련 이슈 (0) 2021.09.23 31. 페이지 교체 알고리즘 (0) 2021.09.23 30. 요구 페이징 (0) 2021.09.23 29. 캐시 매핑 기법 (0) 2021.09.23 댓글