전공/운영체제

4장

러비코스믹 2025. 3. 31. 15:58

MultiPle_Processor Scheduling

 > SMP(Symmetric Multiprocessing Prcoessing )

 // 대칭적이다..: 모든 CPU 가 동일한 HW 구조 

    > 하나의 Queue 에 여러 core 접근

       > 같은 유형의 작업 수행 + 중간에 다른 Task로 변경 가능

 

1. Common ready Queue : 스케쥴러가 모두 균등하게 분배 (load balancing )

/* 

    Load Balancing

   > Push Migration : (주체) 바쁜놈 > idle 한테 주기적으로 Push!

   > Pull   Migration : (주체) idle     > 바쁜놈한테 있는 waiting하고있는 것을받아옴

 

   Prcoessor Affinity

       >C1 의 P1의 T1 <> C2의 P2의 T2는 분리되어있음 > cash-missing 큼 !

          > if) 다른 Process 에서 Thread를 쓰려면..

                    > RAM 에서 그 해당 Process 에서 데이터를 따로 가져온뒤

                    > 내 Prcoss의 데이터에 넣어서 Thread에 적용해주어야함  > 매우 비효율..

 

   > soft   : 가능한 (무조건 보장은 X)  : C1의 T1은 C1에서, C2의 T2는 C2에서 할수있도록

   > Hard : 바쁘든말든 Hard!             :  C1의 T1은 C1에서 바쁘든 말든 꼭!

 

*/

 

2. Per_core run Queue     : cpu 마다 다 다른 queue 를 가짐

 

singleCore Processer : 여러개의 process 중 1core 당 하나의 process 를 실행 

                                     with Context Switching

<>

MultiCore Processer : core가 여러개 

MultiThreaded Multicore system 

1 Core 안에 .. 2개의 HW Thread(HW Chip//process) .. 각각에 SW Thread (kernel //OS)

ex)

core 0 : HW Process1  : Compute > Memory stall > Compute.. 

           : HW Process2  : Compute > Memory stall >   " 

한 작업안에서 나누어서 한쪽에서 Compute, 한쪽에서 Memory stall..

   > 병렬 처리X, 2개가 HW 적으로 빠르게 전환 //Not OS 스케쥴러

  >> OS 관점) core(process)가 2개인것처럼 보임

    > Quad Core MultiThreaded Multicore system > 8개의 core(process) 처럼 보임

// OS view) 8개의 process 를 CS 

 

NUMA ( Non_uniform_memory_Access ) : 슈퍼컴에서 씀 

  > Many CPU, Many RAM 

    > Thread 를 가장 가까운 RAM 에서 처리하도록 정해야함

     // CPU <-> Memory 가 멀수록 속도저하 Big!

 

 

 

 

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

6장-2  (0) 2025.04.10
6장  (0) 2025.04.05
3장  (0) 2025.03.31
2장  (1) 2025.03.27
1장  (0) 2025.03.08