본문 바로가기
IT정보&정보처리기사

CPU 스케줄링

by Technocrat 2024. 1. 13.

운영체제가 프로세스들에게 CPU자원을 할당하는 것을 스케줄링(Scheduling)이라고 한다. 

운영체제는 실행이 되어야 하는 프로세스들을 큐에 삽입하는데 이를 스케줄링큐라고 한다.

CPU를 이용해야 하는 프로세스들의 큐는 준비큐(Ready Queue)라고 하고 입출력장치를 이용하기 위한 큐는 대기큐(Waiting Queue)라고 한다.

큐에 쌓인 프로세스들은 우선순위에 따라 처리된다. 

스케줄링은 크게 선점형과(Preemptive Scheduling) 비선점형으로(non-Preemptive Scheduling) 나뉜다.

선점형은 어떤 프로세스가 CPU자원을 사용하고 있더라도 운영체제가 우선순위가 더 높은 프로세스를 위해 CPU자원을 빼앗을 수 있는 스케줄링 방식을 말하고 비선점형은 프로세스가 종료될 때 까지 다른 프로세스가 자원을 사용할 수 없는 구조이다. 선점형은 자원의 독점을 방지할 수 있지만, 문맥교환이 자주 발생하여 오버헤드가 발생한다.

 

1. 선입선처리 스케줄링(FCFS : First In First Served Scheduling) : 준비큐에 입력되는 순서에 따라 스케줄링이 되는 방식으로 들어오는 순서에 따라 실행이 돼서 공정하지만 CPU사용시간이 긴 프로세스가 들어오면 다른 프로세스들이 장시간 대기해야 하는 단점이 있다.

 

2. 최단 작업 우선 스케줄링(SJF : Shortest Job First Scheduling) : CPU사용시간이 제일 짧은 프로세스부터 실행하는 스케줄링 방식으로 비선점형으로 분류된다. 

 

3. 라운드로빈 스케줄링(RR : Round Robin Scheduling) : 선입선출 방식에 타임 슬라이스라는 개념이 추가된 방식이다. 타임슬라이스는 프로세스가 CPU를 사용할 수 있는 시간을 정하는 것이다. 기본적으로 큐에 삽입된 순서대로 사용하지만 타임슬라이스 크기 만큼 프로세스들이 돌아가면서 CPU를 사용한다. 

 

4. 최소 잔여 시간 우선 스케줄링(SRT : Shortest Remaining Time Scheduling) : 최단 작업 우선 스케줄링 방식과 라운드로빈 알고리즘을 활용한 스케줄링 방식으로 정해진 타임슬라이스 만큼 CPU를 사용하는데 CPU를 사용하는 우선순위는 프로세스별 남아있는 잔여시간이 짧은 순서대로 정해진다. 

 

5. 우선순위 스케줄링(Priority Scheduling) : 프로세스들에게 우선순위가 메겨지고 우선순위가 높은 순서에  따라 CPU를 사용한다. 우선순위가 낮은 프로세스들이 우선순위가 높은 프로세스들에 의해 계속 밀릴 수 있어 기아현상이 생길 수 있다(Starvation). 이를 방지하기 위해 에이징(Aging) 기술을 사용하기도 하는데 에이징은 오랜기간 대기한 프로세스의 우선순위를 높여주는 방식을 말한다. 

 

6. 다단계 큐 스케줄링(Multilevel Queue Scheduling) : 우선순위 스케줄링의 발전된 형대로 우선순위별로 준비 큐를 생성하고 우선순위가 높은 큐에 있는 프로세스들을 먼저 처리한다. 큐 별 타임슬라이스의 크기를 조절할 수 있고 큐 별로 스케줄링 방식을 다르게 적용 할 수 있다. 

 

7. 다단계 피드백 큐 스케줄링(Multilevel Feedback Queue Scheduling) : 다단계 큐의 발전된 형태. 프로세스들이 큐 사이를 이동 할 수 있다. 새로 들어온 프로세스들은 높은 우선순위 큐에 할당되어 정해진 슬라이스 크기만큼 CPU를 사용하고 다음 우선순위 큐에 삽입되어 실행된다. 따라서 CPU를 오래 사용해야 하는 프로세스들의 우선순위가 점점 낮아지게 된다. 우선순위가 낮은 큐의 프로세스들은 점점 우선순위가 높은 큐로 이동된다(에이징기법 적용)

 

 

 

 

 

'IT정보&정보처리기사' 카테고리의 다른 글

프로세스 동기화 방법  (2) 2024.01.14
프로세스 동기화  (2) 2024.01.14
프로세스와 스레드  (0) 2024.01.12
RAM(Random Access Memory)  (0) 2024.01.07
CPU, Core, Thread  (0) 2024.01.07