반응형 스케줄링2 Scheduling 2 이전 글에서는 싱글코어 CPU가 여러 프로세스들을 다루는 방법을 알아봤다. 하지만 우리가 현재 쓰고 있는 컴퓨터들은 대부분 멀티코어를 사용한다. 그렇기 때문에 지금부터는 멀티코어에서 일어나는 스케줄링에 대해 알아볼 것이다. NUMA and CPU Scheduling fig 7-1을 보면 CPU를 볼 수 있는데(왼쪽 0, 오른쪽 1) 멀티코어는 CPU내부에 코어가 여러개 존재하는 것이다. 그리고 각 CPU는 직접적으로 연결된 메모리가 존재한다. 여기서 더 큰 스케일의 컴퓨터라면 이러한 CPU가 2개 이상 설치될 수도 있다. 이러한 상황에서 CPU의 코어는 인접한 다른 CPU의 메모리에도 접근할 수 있다. 하지만 이때의 속도는 직접적으로 연결된 메모리 접근속도보다 당연히 더 느릴 것이다. 이런 경우를 Non.. 2022. 4. 12. Scheduling 1 저번 글은 시스템 프로그래밍에서도 대부분 다뤘던 내용이라서 중간에 급하게 끝냈었다. 프로세스나 쓰레드는 CPU 자원을 공유하여 프로그램이 동시에 실행되는 것 같은 효과를 얻는다고 했었다. 이 글에서는 어떻게 CPU를 잘 사용하여 전체 시스템에 이로운 방향으로 갈 수 있는지 알아볼 것이다. CPU Scheduling 프로세스를 전환할 때 두 가지에 대해 생각해야 하는데 하나는 컨텍스트 스위칭 같이 '어떻게' 전환할 것인가(메커니즘)이고 다른 하나는 언제 전환할 것인가(정책)이다. CPU 스케줄링은 실행 가능한 프로세스 집합을 제공하여 다음에 실행할 프로세스를 결정하는 정책이다. 이것에 대해 어떻게 접근할지 살펴보자. Basic Approaches Non-preemptive scheduling 여기서 pre.. 2022. 4. 7. 이전 1 다음 반응형