학교생활/운영체제

[운영체제] Ch5(2) Thread Scheduling & Multi-processor scheduling

sh1256 2022. 10. 13. 19:48
728x90

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

하드웨어적 thread가 1개 있을 때
하드웨어적 thread가 2개있을 때

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하는 것