ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] 프로세스의 물리 메모리 할당
    운영체제 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 개념을 도입

    '운영체제' 카테고리의 다른 글

    [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

    댓글

Designed by Tistory.