-
[OS] 프로세스의 물리 메모리 할당운영체제 2020. 11. 27. 03:12728x90
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 개념을 도입
'운영체제' 카테고리의 다른 글
[OS] 커널 메모리 할당 방식(Buddy, Slab) (0) 2020.11.27 [OS] 페이지 Thrashing, Working-Set, PFF (0) 2020.11.27 [OS] Page replacement (0) 2020.11.26 [OS] COW(Copy On Write) (0) 2020.11.26 [OS] Demand paging (0) 2020.11.26 -