프로그래밍/운영체제

[운영체제] CPU Scheduling 2

kwon92 2020. 6. 15. 12:44

이 페이지는 가볍게 봐보자

 

 

이전에 본 스케줄링 알고리즘을 이어서 보겠다

줄마다 우선순위가 있다.

foreground 큐와

background 큐가 있다.

 

가장 위에 줄의 큐가 비어있어야 그 다음 줄의 큐가 실행된다.

 

 

 

 CPU 가 여러개 있을때의 스케줄링을 봐보자 - 가볍게 보자

 

한줄로 줄세워서 각 프로세스를 CPU 들이 알아서 꺼내가서 쓰는방법이 있다.

특정 CPU 에서 수행해야 하는 프로세스가 있으면 복잡해짐

 

SMP - 각 CPU 가 각자 알아서 스케줄링

Asymmetric - 하나의 CPU 가 Main CPU 느낌을 가짐

 

 

데드라인이 있는 스케줄링 

 

소프트 리얼타임은 - 데드라인은 있지만 조금 어겨도 된다.

 

 

User Level Thread - 사용자 프로세스가 스레드를 관리하고 운영체제는 이 스레드의 존재를 모르는것

 

Kernel Level Thread - 운영체제가 이 스레드의 존재를 알고있다.

 

서로 방식이 다르기 때문에 스레드를 스케줄링 하는 방법이 다르다.

 

User Level 은 운영체제는 스레드의 존재를 모르기때문에 그냥 프로세스에 CPU 를 할당한다.

스레드의 CPU 를 줄지는 프로세스 내에서 결정한다.

 

Kernel Level 은 운영체제가 스레드의 존재를 알기때문에 알고리즘에 따라서 어떤 스레드에 줄지 결정을 해준다.