운영체제

[OS] 프로세스의 물리 메모리 할당

KyooDong 2020. 11. 27. 03:12
728x90

Allocation of Frames (물리 메모리의 할당)

컴퓨터 시스템에는 여러 개의 프로세스가 동시에 동작하므로 이를 효과적으로 분배해야함  → 각 프로세스에게 할당되는 최소/최대 프레임 수를 정해둠

그렇지 않으면 소수의 프로세스가 물리 메모리를 독점하는 현상이 발생

최소 프레임 수

  • 작으면 Page fault 확률이 늘어나서 성능이 떨어짐.

  • 프로세서의 Instruction set architecture 에 의해 결정

    • 예를 들어 ADD x y z 라는 기본 명령어가 있다고 할 때 운이 없으면 ADD 명령어는 두 개의 페이지에 걸칠 수 있음

    • x, y, z 또한 각각 다른 페이지에 존재한다고 한다면 하나의 명령어를 처리하는데에 5개의 페이지에 접근해야함

    • 이 때 최소 프레임 개수가 5개 미만이라면 해당 명령어는 영원히 page fault 가 나면서 영원히 처리되지 못함 (Page fault 되면 명령어가 재실행되기 때문)

최대 프레임 수

  • 물리 메모리에 의해 결정

Frame allocation 알고리즘

  • Equal allocation(동등 할당) : OS가 사용해야할 프레임을 제외한 프레임을 Physical frame 을 프로세스끼리 N빵하여 나눠가짐

    • 나누기가 딱 나누어 떨어지지 않아 남는 것은 buffer pool 에 넣어두고, 필요한 아무에게나 나누어줌

  • Proportional allocation(비례 할당) : 프로세스의 크기에 비례하여 분배하는 방식

    • si = 프로세스의 크기

    • S = 모든 프로세스의 크기

    • m = 총 프레임 수

    • ai = 프로세스 i에게 할당되는 프레임 수 = si/S * m

  • Priority allocation : 우선순위가 높은 프로세스에게 많이 할당해주는 방식

Global replacement VS Local replacement

어느 프로세스가 자신에게 할당된 모든 Physical frame 을 모두 사용한 상태에서 Page fault 가 발생하여 추가로 할당받아야 하는데 이 Frame 을 어디서 가져올지에 대한 문제

 

Global replacement = 전체 시스템에서 Free frame 을 가져와서 주는 방식

장점 : 메모리가 많이 필요한 프로세스에게 많이 할당할 수 있음

단점 : 특정 프로세스가 프레임을 독점할 수 있음

 

Local replacement = 자신의 Physical frame 내에서 하나를 해제시키고 재할당하는 방식

단점 : 바쁜 프로세스는 계속 page fault 와 replacement 발생

NUMA(Non Uniform Memory Access)

각 코어마다 자신에게 가까운 메모리가 있는 시스템

NUMA 시스템에서는 프로세스가 어떤 CPU 에서 동작하는지를 고려하여 가까운 메모리의 Frame 을 할당해주기 위해 노력

Solaris 에서는 물리 메모리를 코어별로 그룹화한 Lgroup 개념을 도입