프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제를 '스래싱'이라 한다.

 

스래싱이 발생하는 근본적인 원인은 각 프로세스가 필요로 하는 초소한의 프레임 수가 보장되지 않았기 때문이다.

 

예를 들어, 프로세스 A를 무리 없이 실행하기 위해서 최소 10개의 프레임이 필요한데,

프로세스 A가 5개의 프레임만 이용할 수 있다면 페이지 폴트가 자주 발생하게 된다. 

스래싱의 발생 위험이 높아진다고 할 수 있다.

 

따라서 운영체제는 각 프로세스가 필요로 하는 최소한의 프레임 수를 파악하고,

프로세스들에게 적절한 프레임을 할당해주어야한다.

 

📌 프레임 할당

🔹 균등 할당

  • 가장 단순한 할당 방식
  • 모든 프로세스들에게 균등하게 프레임을 할당하는 방식을 말한다.
  • 예를 들어 3개의 프로세스에 총 300개의 프레임을 할당 할 수 있으면, 각각의 프로세스마다 100개씩 프레임을 할당한다.

하지만 위와 같은 방식은 효율적이지 못하다.

프로세스의 크기는 각기 다른데, 동일한 프레임 개수를 할당하는 것은 비합리적이라고 볼 수 있다.

 

🔹 비례 할당

  • 프로세스 크기에 비례하여 프레임을 할당하는 방식을 말한다.
  • 예를 들어 모메장과 게임 2개의 프로세스가 있을 때 크기가 더 큰 게임 쪽에 프레임을 상대적으로 좀 더 많이 할당한다.
  • 하지만 비례 할당 방식도 완벽하지는 않다. 프로세스의 크기가 크더라도 막상 실행해보면 많은 프레임을 필요로 하지 않는 경우도 있기 경우와 반대로 프로세스의 크기가 작더라도 실행해보면 많은 프레임을 필요로 하는 경우도 있다.

균등할당과 비례할당 방식은 프로세스의 실행과정을 고려하지 않고 단순히 프로세스의 크기와 물리 메모리의 크기만을

고려한 방식이라는 점에서 '정적 할당 방식'이라고 한다.


 

프로세스를 실행하는 과정에서 배분할 프레임을 결정하는 방식에는 크게 '작업 집합 모델'을 사용하는 방식과

'페이지 폴트 빈도'를 사용하는 방식이 있다.

🔹 작업 집합 모델 기반 프레임 할당

프로세스가 일정 기간 동안 참조한 페이지 집합(=작업 집합)을 기억하여 빈번한 페이지 교체를 방지하는 프레임 할당 방식

 

CPU는 메모리를 참조할 때 참조 지역성의 원리에 의거해 주로 비슷한 구역을 집중적으로 참조한다.

즉, 한 프로세스가 100개의 페이지로 이루어졌다고 가정했을 경우에 100개를 모두 고르게 참조하는 것이 아닌

특정 시간 동안에 몇몇 개의 페이지만을 집중적으로 참조하게 되는 것이다.

 

따라서 CPU가 특정 시간 동안 주로 참조한 페이지 개수만큼만 프레임을 할당해주면 페이지 교체는 빈번하게 발생하지 않게 된다.

이때 실행중인 프로세스가 일정 시간 동안 참조한 페이지의 집합을 '작업 집합'이라고 한다.

 

🔹 페이지 폴트 빈도 기반 프레임 할당

페이지 폴트율에 상한선과 하한선을 정하고, 이 범위 안에서만 프레임을 할당하는 방식

 

1️⃣ 페이지 폴트율이 너무 높으면 그 프로세스는 너무 적은 프레임을 갖고 있다.

2️⃣ 페이지 폴트율이 너무 낮으면 그 프로세스가 너무 많은 프레임을 갖고 있다.

 

페이지 폴트 빈도 기반 프레임 할당은 위 2가지 가정에서 생겨난 방식이다.

  • 페이지 폴트율이 상한선보다 더 높아지면 그 프로세스는 너무 적은 프레임을 갖고 있다고 볼 수 있기 때문에 프레임을 더 할당해 주면 된다.
  • 페이지 폴트율이 하한선보다 더 낮아지면 그 프로세스는 너무 많은 프레임을 갖고 있다고 볼 수 있기 때문에 다른 프로세스에 할당하기 위해 프레임을 회수한다.

 

작업집합 모델 기반 프레임 할당과 페이지 폴트 빈도 기반 프레임 할당은 프로세스의 실행과정을 통해 프레임을 할당하는 방식이기 때문에 '동적 할당 방식'이라고 한다.

 

'CS > 혼공컴운' 카테고리의 다른 글

[CS] 파일 시스템  (0) 2025.02.14
[CS] 페이지 교체 ( 페이지 교체 알고리즘 )  (0) 2025.02.14
[CS] 페이징  (0) 2025.02.13
[CS] 가상 메모리  (0) 2025.02.13
[CS] 동기화  (0) 2025.02.12

+ Recent posts