Study/OS

[OS] Multiprocessor Scheduling

__PS 2024. 4. 19. 08:58
728x90

Multi-Processor (MP) Scheduling

1) Loosely coupled | Distributed multiprocessor -> 물리적으로 다른 컴퓨터의 프로세서

2) Tightly coupled multiprocessor -> 한 컴퓨터 내의 여러 프로세스가 메모리 공유

 

approach MP scheduling 

1) Asymmetric multiprocessing (master / slave)

-> 다른 역할을 부여

--> bottleneck 발생 가능

 

2) Symmetric multiprocessing (SMP, peer)

-> 대등한 역할


 

 

Design Issue

- UP scheduling

하나의 프로세서 -> 큐에서 선택

--> 수행 중에 결정

 

- MP scheduling

1) scheduling 알고리즘은 영향이 거의 없음

2) 몇 개의 ready queue를 사용할지 결정

3) 어떻게 운영 / 관리할지 결정


Single-Queue MP Scheduling

장점:  단순함, load sharing

단점: race condition, affinity

 

affinity

한 번 메모리에 올라간 일은 관련 데이터가 캐시에 저장

-> 매번 다른 프로세스에 올라갈 수 있으나, 캐시에 존재하지 않을 수 있음

 

Soft affinity: 고려는 하나 보장은 하지 않음. 프로세서간의 이동이 가능

Hard affinity: 해당 CPU에서만 수행

 

Multi-Queue MP Scheduling

장점

1) 별도의 queue가 존재 -> race condition 문제 해결

2) own private queue 존재 -> affinity 해결

 

단점

1) load imbalance: runtime 도중 service time 예측이 어려우므로 load가 편향될 수 있음.

 

Load Balancing

affinity 희생

 

1. Pull migration

-> idle한 processor가 process를 가져옴.

 

2. push migration

-> 커널이 주기적으로 각 프로세스의 load를 확인

--> 주기가 중요