운영체제 '가상 메모리' 파트에서 중요하게 다뤄지는 스레싱에 관해 살펴보려고 한다.

 

< 목차> 

1. 의미

2. 발생 과정

3. 스레싱 방지 기법

 

 

1. 의미


스레싱(Thrasing)이란 개별 프로세스에 할당된 메모리 양이 적어서 페이지 부재율(Page Fault Rate)이 크게 상승해 CPU 이용률 (CPU Utilization)이 낮아지는 현상을 말함

 

 

 

 

2. 발생 과정


스레싱이 발생하는 과정은 다음과 같다.

 

우선 메모리에 할당된 프로세스 수가 적은 경우를 가정해보자.

 

운영체제는 CPU 이용률을 높이기 위해 메모리에 더 많은 프로세스를 적재하게 되며,

 

이에 따라 다중 프로그래밍 정도(Multi-programming Degree: MPD)가 증가한다.

 

MPD가 일정 수준 이상으로 높아지면 한정된 메모리 공간에 많은 프로세스가 적재되므로,

 

개별 프로세스에 할당된 메모리 양이 적어지는 문제가 발생한다.

 

집중적으로 참조되는 페이지 집합을 메모리에 한꺼번에 적재하지 못하기 때문에 페이지 부재가 빈번하게 발생한다.

 

페이지 부재 처리가 진행되면 하드디스크 스왑 영역에서 해당 페이지를 찾아 메모리로 올리는데,

 

이렇게 입출력(I/O) 작업이 진행되는 동안 CPU가 다른 프로세스로 이양되는 문맥 교환(Context Switch)이 발생한다.

 

CPU를 이양받은 다른 프로세스 역시 할당된 메모리가 적기 때문에, 위와 동일한 과정으로 페이지 부재가 발생한다.

 

이처럼 전체적인 페이지 부재율이 증가하면서 CPU이용률은 급감한다.

 

그러면 다시 낮은 CPU 이용률을 높이기 위해 MPD를 상승시키는 악순환이 반복된다.

 

 

 

 

3. 스레싱 방지 기법


1) 워킹셋(Working-set) 알고리즘

 

집중적으로 참조되는 페이지의 집합을 지역성 집합(Locality set)이라고 한다.

 

워킹셋 알고리즘은 지역성 집합이 메모리에 동시에 올라갈 수 있도록 보장하는 메모리 관리 방식이다.

 

원활한 작업을 수행하기 위에 메모리에 한 번에 올라가야 할 페이지 집합을 워킹셋이라고 하는데,

 

워킹셋을 구성하는 페이지가 전체가 메모리에 올라갈 수 있는 프로세스에만 메모리를 할당한다. 

 

메모리에 올라와 있는 워킹셋 크기의 합이 프레임 수보다 클 경우, 

 

일부 프로세스를 스왑 아웃시켜서 남은 프로세스의 워킹셋이 메모리에 올리는 방식으로 MPD를 조절한다.

 

 

2) 페이지 부재 빈도(Page Falut Frequency) 알고리즘

 

프로세스의 페이지 부재율을 주기적으로 조사하고, 이 값을 근거로 프로세스에 할당할 메모리 양을 결정하는 방식이다.

 

페이지 부재율의 상한선하한선을 두어,

 

프로세스의 페이지 부재율이 상한선을 상회하면 더 많은 페이지 프레임을 할당하고,

 

하한선을 하회하면 페이지 프레임 할당량을 감소시킨다. 

 

 

 

 

 

'운영체제' 카테고리의 다른 글

저장 장치의 종류, 계층구조, 캐싱 기법  (0) 2022.04.27

1. 저장 장치 종류

저장 장치는 크게 두 종류가 있다.

 

우리가 흔히 '메모리'라고 부르는 주기억 장치(Primary Memory)

 

'하드 디스크'라고 부르는 보조기억 장치(Secondary Memory)가 있다.

 

 

 

'메모리'는 속도가 빠른 반면, 저장할 수 있는 용량이 작다.

 

반대로 하드 디스크는 속도가 느리지만 저장 공간이 크다.

 

이처럼 저장 장치는 속도와 용량 간 상충관계를 지니며,

 

속도와 용량에 따라 계층 구조를 가진다.

 

 

 

 

2. 저장 장치의 계층구조

 

 

위 그림은 저장 장치의 계층 구조를 보여준다.

 

위로 갈수록 속도는 빠르지만 용량은 적은 저장 장치를 나타낸다. 

 

자세히 보면 '주기억장치' 내에서도 계층이 세 가지로 나뉘는 것을 볼 수있다.

 

레지스터캐시 메모리는 CPU에 위치하며, 일반적인 메모리보다 속도가 빠르며 용량이 적다.

 

 

 

 

3. 캐싱 기법

일반적으로 매우 자주 사용되는 데이터가 있는 반면, 거의 사용되지 않는 것도 있다.

 

자주 사용되는 정보를 상대적으로 느린 저장장치(ex.메모리)가 아닌, 빠른 저장장치( ex. 캐시)에 저장하면, 

 

해당 정보를 곧바로 찾을 수 있기 때문에 전체적으로 컴퓨터 성능이 향상될 수 있다.

 

이처럼 용량이 적고 빠른 저장장치를 이용해 느린 저장장치의 성능을 향상시키는 기법을 캐싱(Caching) 기법이라고 한다.

  

+ Recent posts