본문 바로가기
CS/운영체제&컴퓨터구조

CPU 스케줄링과 알고리즘

by nothing-error 2022. 11. 3.

1. CPU 스케줄링

CPU 스케줄링은 작업을 처리하기 위해서 프로세스들에게 CPU 자원을 효율적으로 배분하는 것을 말합니다.

 

2. 스케줄링 큐(queue)

구분 설명
job queue 시스템 내에 있는 모든 프로세스의 집합
ready queue 메인 메모리에 상주하면서 실행될 준비를 하고 기다리는 프로세스 집합
waiting(or device) queue 특정 입출력 장치를 대기하는 프로세스 집합

 

3. 선점형 비선점형 스케줄링

구분 특징 장점 단점
선점형 스케줄링 운영체제가 프로세스가 사용중인자원을 빼앗아 다른 프로세스에 할당가능 높은 우선 순위를 가진 프로세스를 빠르게 처리하려는 시스템에 유용
빠른 응답 시간을 요구하는 시분할 시스템에 유용
문맥교환 빈번 ->오버헤드 발생 가능
비선점형 스케줄링 프로세스가 자원을 사용중이라면 끝나기 전까지는 간섭 X 모든 프로세스에 공정
응답시간 예측
짧은 실행시간이 필요한 프로세스라도 매우 긴 작업이 끝난 후에야 실행 가능

 

 

 

4. CPU 스케줄링 알고리즘

종류 특징
선입선처리 스케줄링(FCFS) 비선점형 스케줄링 방식
최단작업우선 스케줄링(SJF) ready queue에 있는 프로세스 중에서 CPU이용 시간이 짧은 프로세스부터 스케줄링
라운드로빈 스케줄링
(RR=FCFS+타임슬라이스)
정해진 시간 동안 FCFS 방식으로 돌아가면서 실행하는 스케줄링. 타임슬라이스의 크기가 중요
최소잔여시간우선 스케줄링
(SRT =RR + SJF )
타임슬라이스의 크기만큼 CPU를 사용하고 다음으로 사용할 프로세스는 남아있는 작업시간이 짧은 프로세스 선택
우선순위 스케줄링 프로세스에 우선순위를 부여하고, 우선순위에 따라 프로세스 실행.
기아현상(높은 우선순위에 밀려 낮은 우선순위의 프로세스의 실행이 계속 연기됨) 가능.
해결책 : 에이징(우선순위에서 밀려나 대기시간이 길어진 프로세스의 우선순위를 점차 높이는 방법)
다단계 큐 스케줄링 우선순위별로 여러개의 단계별 큐를 사용. 각각의 큐마다 다른 스케줄링 알고리즘 적용가능(기아 발생가능)
다단계 피드백 큐 스케줄링 다단계 큐 스케줄링 + 프로세스들의 큐 이동 가능
ready queue에 있는 프로세스는 가장 높은 우선순위 큐에 들어가고 타임슬라이스 동안 실행 후 남은 작업이 있으면 한단계 낮은 우선순위 큐로 이동.
에이징으로 기아 현상 해결 가능.

 

 

 

 

 


Reference

혼자 공부하는 컴퓨터 구조 + 운영체제

https://reakwon.tistory.com/132

https://steady-coding.tistory.com/509

https://clownhacker.tistory.com/23

댓글