가상 메모리 프레임 할당 (Allocation of Frame)

By 01/11/2018OS Concept

가상 메모리 프레임 할당 (Allocation of Frame)

 

여러 개의 프로세스들에게 제한된 자유 메모리를 어떻게 할당할까? 각 프로세스는 몇 프레임씩 할당 받아야 할까? 다양한 할당 정책 및 종류를 알아 보자.

 

[최소로 할당 해야 할 프레임의 수]

메모리 할당에는 다양한 제한이 존재 한다. 페이지 공유가 없으면 사용할 수 있는 자유 프레임 수보다 더 많이 할당 할 수는 없다. 또한 최소한 몇 페이지는 할당해야만 한다.

 

최소한의 프레임을 할당 해야만 하는 이유는 성능과 관계 된다. 각 프로세스에 할당되는 프레임 수가 줄어들면 페이지 부재율은 증가하고 프로세스 실행은 늦어지게 된다.

 

명령 수행을 완료되기 전에 페이지 부재가 발생하면 그 명령을 재실행되어야 한다는 점을 주의해야 한다. 하나의 명령이 참조하는 모든 페이지는 동시에 메모리에 올라와 있어야 그 명령의 수행이 끝날 수가 있다는 것을 명심하자.

 

프레스스당 필요한 최소 프레임 수는 명령 집합 아키텍처(instruction set architecture)에 의해 결정 된다. 프로세스당 최소 프레임 수는 아키텍처에 의해 결정되고 최대 할당 수는 가용(available) 물리 메모리에 의해 결정된다. 그러나 이 두 값 사이에는 여전히 상당히 많은 프레임 할당 가능성들이 존재 한다.

 

 

[할당 알고리즘]

가장 쉬운 할당 방법으로는 모든 프로세스에게 균등하게 할당해 주는 것이다. 예를 들어 93개의 프레임과 5개의 프로세스가 있다면 각 프로세스는 18개씩의 프레임을 받는다. 나머지 3개는 자유 프레임 버퍼풀로 사용한다. 이러한 방법을 균등 할당(equal allocation)이라고 한다.

 

또 다른 방법은 프로세스마다 크기다 다르다는 점을 감안하여 할당하는 것이다. 프로세스 크기별로 할당하기 위하여 가용 메모리를 각 프로세스의 크기 비율에 맞추어 할당하는 방법인 비례 할당 방식(proportional allocation)을 사용할 수 있다.

 

균등 할당과 비례 할당 모두 다중 프로그램 정도(degree)에 따라 할당되는 양이 달라진다. 만약 다중 프로그래밍 정도가 높아지면 각 프로세스는 할당을 적게 받게 되고 다증 프로그래밍의 정도가 낮아지면 넉넉히 할당 받게 된다.

 

여기서 주의할 점은 균등 할당이나 비례 할당 모두 높은 우선순위의 프로세스와 낮은 우선순위 프로세스를 동등하게 취급한다는 것이다.

 

상황에 따라 우선순위가 낮은 프로세스들에게 손실을 주더라도 우선순위가 높은 프로세스에게 더 많은 메모리를 할당하여 빨리 수행하고 싶을 수도 있다. 이때 사용할 수 있는 방법이 비례 할당 방법을 사용하면서 프레임 비율을 프로세스의 크기가 아닌 우선순위를 사용하여 또는 크기와 우선순위의 조합을 사용하여 결정하는 것이다.

 

 

[전역 대 지역 할당(Global Versus Local Allocation)]

프레임을 할당하는 방법에서 다수의 프로세스가 프레임 할당을 위해 경쟁하는 환경에서 페이지 교체 알고리즘은 전역 교체와 지역교체로 나눌 수 있다.

 

전역 교체는 프로세스가 교체할 프레임을 다른 프로세스에 속한 프레임을 포함한 모든 프레임을 대상으로 찾는 경우이다. 전역 교체에는 한 프로세스에 할당된 프레임의 수는 바뀔 수 있다. 전역 교체 방법에서는 다른 프로세스들이 그 프로세스의 프레임을 교체하지 않는다는 전제하에 프로세스가 매번 다른 프로세스의 프레임을 할당 받게 되면 그 프로세스에 할당된 페이지 수가 증가하게 된다.

 

지역 교체는 각 프로세스가 자기에게 할당된 프레임을 중에서만 교체될 희생자를 선택할 수 있는 경우이다. 지역 교체 방법에서는 프로세스에 할당된 프레임의 수는 변하지 않는다.

 

전역 교체 알고리즘의 문제점은 프로세스가 그 자신의 페이지 부재율을 완전히 조절할 수 없다는 것이다. 한 프로세스의 페이지 부재율은 그 프로세스가 어떠한 프로세스들과 함께 실행되느냐에 영향을 받는다. 동일한 프로세스도 그때그때 외부적 환경에 따라서 전혀 다르게 실행될 수 있다.

 

지역 교체 방식에서는 이러한 문제점이 나타나지는 않는다. 어떤 프로세스의 메모리 상에 존재하는 페이지 집합은 유일하게 그 프로세스의 페이징 행태에만 영향을 받는다. 그러나 지역 교체 방법에서는 잘 사용하지 않는 페이지 프레임이 있더라도 그것을 그대로 낭비 할 수 있다.

 

지역보다 전역 교체 알고리즘이 더 좋은 성능을 나타내며 일반적으로 많이 사용하고 있다.

 

[참고자료]

Operating System Concepts

 

operationsystem, 운영체제, 운영체제구조, 컴퓨터구조, OSConcept, 가상메모리, 페이지교체, 프레임할당, 지역할당, 전역할당프레임할당알고리즘, sqlmvp, SQL Angeles