Thread Scheduling
many-to-one이나, many-to-many모델에서는, kernel thread가 어떤 user thread에게 LWP를 할당(맵핑)할지 정해야 한다.
PCS, SCS: kernel thread가 어떤 user thread에게 LWP를 할당(맵핑)할지 정하는 것.
Process-contention scope(PCS): 한 프로세스에서 경쟁
system-contention scpoe(SCS): 모든 시스템에서 경쟁
Multiple-Processor Scheduling
Multiple processor: 한 컴퓨터 안에 CPU가 많다는 것
Multi-core: 한 CPU안에 core가 많다는 것
Mulththreaded cores: 한 core안에 하드웨어적인 thread가 많다는 것.
NUMA: 메모리를 access할 때 시간이 동일하지 않는 것
Heterogeneous multiprocssing: cpu가 많을 때 CPU들이 서로 다른 역할을 하는 것
Multithreaded Multicore System
Multicore System
Chip-multithreading(=hyperthreading)
하나의 코어 안에 두개의 thread가 작동
사용자 관점상 core갯수*thread갯수=8 해서 cpu가 8개 있는 것처럼 느끼게 된다.
이렇게 HD thread가 여러개 있게 되면 HD thread에서 SW thread로 scheduling을 다시 해야해서 cheduling단계가 하나 더 늘어나게 된다.
Multiple-Processor Scheduling
SMP(CPU가 여러개 있는 환경)에서는 load balancing, push migration, pull migration이 중요하다.
- push migration: 내가 할일이 많으면 하는 일 없는 cpu에게 일을 하라고 주는 것.
- pull migration: 내가 할일이 없으면 하는 일 많은 cpu에게 일을 달라고 하는 것.
Processor Affinity(프로세서 친밀감)
cpu가 여러개 있는 환경에서 어떠한 작업이 어떠한 cpu에게서 작업해야하냐를 결정할 때 친밀도(호감도)가 높은 CPU에서 작업을 하면 좋다.
친밀도=cache: 예전에 비슷한 작업을 수행했다면 그 관련 값이 cache에 남아있을 확률이 높다.
soft affinity: 그전에 비슷한 작업을 한 cpu에서 수행하겠다.
hard affinity: 그 작업을 하는데 장점이 있는 cpu를 지적해서 수행시킨다.
NUMA-aware
OS가 NUMA라는 것을 알고 scheduling하는 것
'학교생활 > 운영체제' 카테고리의 다른 글
[운영체제] Ch6(1) Race condition & CS Problem & Peterson's Solution (0) | 2022.10.13 |
---|---|
[운영체제] Ch5(3)Real-Time Cpu scheduling & Operating Systems Examples (0) | 2022.10.13 |
[운영체제] Ch5(1) Scheduling Criteria & Scheduling Algorithms (0) | 2022.10.13 |
[운영체제] Ch4(2)Implicit Threading (0) | 2022.10.13 |
[운영체제] Ch4(1)Multicore와 Multithread (0) | 2022.10.13 |