본문 바로가기

Study Output for Myself/Computer Science

[CS] CPU스케줄링

CPU 스케줄링

메모리에 올라온 준비 상태의 스레드 중 하나에 CPU를 할당하는 일련의 과정.

[스케줄링 알고리즘 목표]

  • CPU 이용률 ↑
  • 준비 큐(ready queue)에 프로세스는 ↓
  • 응답 시간 ↓

비선점형 방식(non-preemptive)

-프로세스 스스로가 CPU 소유권을 포기 = 모든 스레드가 실행된 후 종료

-컨텍스트 스위칭으로 인한 부하가 적음.

종류 특징 단점

FCFS    
(First Come, First Served) 먼저 온것을 먼저 처리하는 알고리즘. 수행시간이 긴 프로세스가 있다면 다른 프로세스가 준비 큐에 오래 기다려야함.
SJF    
(Shortest Job First) 실행 시간이 가장 짧은 프로세스 먼저 실행하는 알고리즘 긴 프로세스는 실행되지 않는 현상.
우선순위 프로세스마다 우선순위를 부여해서 우선순위가 높은 순서대로 실행하는 알고리즘 우선순위가 낮은 프로세스는 실행되지 않음.
⇒ aging(오래된 작업의 우선순위를 높여서) 으로 SJF 단점 보안    

선점형 방식(preemptive)

-현재 실행 중인 프로세스를 알고리즘에 의해 중단시키고 강제로 다른 프로세스에 CPU 소유권을 할당.

종류 특징 단점

라운드 로빈(RR) 짧은 시간 간격을 각각의 프로세스에게 할당.(시분할)  
주어진 시간이 지나가면 CPU 소유권이 다음 프로세스에게 넘어감. 일반적으로 평균 대기 시간이 긺.  
SRF    
(Shortest Remaining First) SJF의 선점형 스케줄링 방식.  
남은 프로세스의 실행시간 보다 짧은 프로세스가 도착하면 CPU 소유를 뺏음. 새로운 프로세스가 들어올 때마다 스케줄링이 변경되므로 CPU 사용시간 예측 어려움.  
다단계 큐 우선순위에 따른 준비 큐 여러 개 + 큐마다 RR이나 FCFS등 다른 스케줄링 알고리즘 적용. 유연성이 떨어짐.

 

'Study Output for Myself > Computer Science' 카테고리의 다른 글

[CS]TCP  (0) 2022.10.23
[CS]스레드와 멀티스레딩  (0) 2022.08.19
[CS]원시값과 객체의 메모리 저장  (0) 2022.07.25
[CS]메모리 할당  (0) 2022.07.22
[CS]가상메모리  (0) 2022.07.21