[Computer Science] 멀티 스레드 스케줄링 & 스레드 스케줄링 방식
Computer Science2021.08.04
멀티 스레드 스케줄링
- 하나의 프로세스에 2가지 이상의 작업을 처리할 수 있는 것
- 동시성 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질
- 병렬성 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질
스레드 스케줄링 방식 (+ 운영체제 스레드 동작 방식)
스케줄링 방식
-
우선순위(Priority)방식
우선순위가 높은 스레드가 실행 상태를 더 많이 가지도록 스케줄링 하는 것.
스레드 객체에 우선 순위를 부여 할 수 있어 코드 제어가 가능. -
순환(Round-Robin)방식
시간 할당량을 정해서 하나의 스레드를 정해진 시간만큼 실행. 코드 제어 불가. -
First-Come,First-Served(FCFS)방식
먼저 온 프로세스가 먼저 코어를 점유하고 실행하는 방식.
다른 프로세스가 중간에 끼어들 수 없는 것이 단점. -
Shortest-Job-First(SJF)방식
가장 짧게 수행되는 프로세스가 가장 먼저 수행되는 방식.
프로세스는 많은 변수가 있기 때문에 시간 예측이 어려워 비현실적임. -
Multilevel Queue 방식
프로세스를 기준에 따라 여러 그룹으로 나눌 수 있음.
그 그룹에 따라 큐를 두어 여러 개의 큐를 사용하는 방식.
큐마다 우선순위를 지정할 수 있는 장점이 있음. -
Multilevel Feedback Queue 방식
멀티레벨큐 방식과 비슷하다.
가장 위의 큐부터 코어 점유를 대기한다.
대기하는 큐에서 시간이 오래 걸린다면, 아래의 다른 큐로 프로세스를 옮기는 방식.
운영체제 스레드 동작 방식
- 대부분 Multilevel Queue 방식을 사용
큐마다 다른 스케줄링 방식을 사용
프로세스 그룹별로 성격에 맞는 스케줄링 방식을 사용하여 효율성을 최대로 높임.
