CS/운영체제

CPU 스케쥴링

씩씩한 IT블로그 2023. 3. 8. 00:44
반응형

CPU 스케쥴링

- CPU(특히 여러 코어의 CPU)의 이용률을 극대화 하기위해 CPU사용 순서 혹은 규칙을 정하는 알고리즘

 

디스패처

- CPU 코어의 제어를 CPU 스케줄러가 선택한 프로세스에 주는 모듈

- 한 프로세스에서 다른 프로세스로 문맥을 교환하는 일

- 사용자 모드로 전환하는 일

- 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동하는 일

 

선점(preemptive)와 비선점(nonpreemptive)

- cpu스캐쥴링에는 선점방식과 비선점 방식이 존재

- 선점 : 특정 프로세스가 작동중일 때 다른 프로세스가 CPU를 뺏어서 사용할 수 있는 방식

- 비전섬 : 특정 프로세스가 작동중일 때는 다른 프로세스가 CPU를 뺏지 못하고 원래 프로세스가 끝날때 까지 기다리는 방식

 

CPU스케줄링 종류

1. 선입 선처리 스케줄링 (First Come, First Serve)

- 먼저 요청하는 프로세스에 CPU를 할당 하는 것

- 비선점 방식

- 장점 : 기아 없는 공정한 알고리즘

- 단점 : 실행시간이 긴 작업이 앞에 있으면 대기시간이 길어진다

- ex)

 

2. 최단 작업 우선 스케줄링 (Shortest Job First Scheduling)

- 현재 대기 작업들 중 실행 시간이 가장 짧게 걸리는 작업을 우선적으로 처리하는 알고리즘

- 비선점 방식

- 장점 : 평균대기시간이 짧다

- 단점 : 실행시간이 긴 작업은 CPU를 받지 못하는 기아 상태에 빠질 수 있다.

- ex)

 

3. 라운드 로빈 스케줄링 (round robin scheduling)

- time quantum을 설정하고 먼저 들어온 작업 순서대로 time quantum 만큼 작업을 돌아가면서 함.

- 선점 방식

- time quantum이 너무 길어지면 FCFS와 똑같아 진다

- context swtich가 너무 자주일어나면 그로인한 비용이 커질 수 있다.

- ex)

 

4. 우선순위 스케줄링(Priority Scheduling)

- 특정 우선순위를 기준으로 순서대로 작업이 처리됨(우선순위가 같으면 FCFS 알고리즘 적용)

- 비선점 방식

- 우선순위가 계속 밀리는 경우가 발생하면 기아(starvation)발생 가능 

-> 노화(aging)로 해결(오랫동안 시스템에서 대기하는 프로세스들의 우선순위를 높이는 것)

반응형