프레임 할당

요구 페이징 시스템에서는 물리 메모리의 프레임을 여러 프로세스에 할당해야 합니다. 각 프로세스는 최소한의 프레임을 가져야 하며, 이 최소 프레임 수는 명령어의 실행에 필요한 페이지의 수에 따라 달라집니다.

최소 프레임 수 (Minimum Number of Frames)

  • 필요성: 프로세스가 실행되기 위해서는 명령어 실행 시 참조할 수 있는 모든 페이지가 메모리에 동시에 존재해야 합니다. 예를 들어, 한 명령어의 실행이 다중 페이지에 걸쳐 있거나, 간접 주소 지정 방식(indirect addressing)처럼 여러 번의 메모리 참조가 필요한 경우, 이 모든 페이지를 담을 수 있는 최소한의 프레임 수가 보장되어야 합니다.

  • 영향: 만약 프로세스가 이 최소 프레임 수보다 적은 수의 프레임을 할당받으면, 문맥 교환을 하더라도 해당 프로세스는 실행을 완료할 수 없습니다.

할당 방식 (Allocation Schemes)

총 물리 메모리 프레임 수 ($M$)와 실행 중인 프로세스 수 ($n$)가 주어졌을 때, 각 프로세스에 프레임을 할당하는 주요 방식은 다음과 같습니다.

  1. 균등 할당 (Equal Allocation):

    • 원리: 모든 프로세스에게 동일한 수의 프레임을 할당합니다.

    • 계산: $\text{각 프로세스에 할당되는 프레임 수} = \frac{M}{n}$

    • 문제점: 프로세스의 크기나 중요도를 고려하지 않아, 작은 프로세스에게는 너무 많은 프레임이, 큰 프로세스에게는 너무 적은 프레임이 할당될 수 있습니다.

  2. 비례 할당 (Proportional Allocation):

    • 원리: 각 프로세스의 크기(size, $s_i$)에 비례하여 프레임을 할당합니다. 즉, 큰 프로세스가 작은 프로세스보다 더 많은 프레임을 할당받습니다.

    • 계산: 프로세스 $i$의 페이지 수 $s_i$와 전체 페이지 수 $S = \sum s_i$를 사용하여, 프로세스 i의 프레임 수=Ai=siS×M\text{프로세스 } i \text{의 프레임 수} = A_i = \lfloor \frac{s_i}{S} \times M \rfloor

  3. 우선순위 할당 (Priority Allocation):

    • 원리: 프레임 할당 시 프로세스의 **우선순위(priority)**를 고려합니다. 우선순위가 높은 프로세스는 더 많은 프레임을 할당받을 수 있습니다.

전역 대 지역 교체 (Global Versus Local Replacement)

프레임을 할당한 후, 페이지 부재가 발생했을 때 희생자 페이지를 선택하는 방식이 할당된 프레임에 영향을 미칩니다.

  • 지역 교체 (Local Replacement):

    • 프로세스는 자신에게 할당된 프레임 내에서만 희생자 페이지를 선택합니다.

    • 각 프로세스의 페이지 부재율은 다른 프로세스의 동작에 영향을 받지 않아 일관된 성능을 보장합니다.

  • 전역 교체 (Global Replacement):

    • 프로세스는 모든 메모리 프레임 중에서 희생자 페이지를 선택할 수 있습니다.

    • 한 프로세스의 프레임이 증가할 수 있고, 다른 프로세스의 프레임이 감소할 수 있습니다.

    • 시스템 전체의 스루풋(throughput)을 높이는 경향이 있어, 대부분의 운영체제(예: Linux, Windows)에서 사용됩니다.

Last updated