CPU가 어떤 프로세스를 선택할 것인지 스케줄링 알고리즘을 통해 선택되며 효율적으로 선택하는게 중요합니다.
여기서 효율적이란 것은 다음과 같은 요건을 만족할 때 효율적이라 할 수 있습니다.
1. CPU사용률이 높은가?
2. 단위 시간당 작업을 마친 프로세스 수(처리량)이 높은가?
3. 작업을 요청한 프로세스가 작업을 시작하기 전에 대기하는 시간이 짧은가?
스케줄링 알고리즘의 방식은 비선점형과 선점형으로 나뉩니다.
비선점형(FCFS, SJF, 우선순위)
FCFS(First Come, First Served)
가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 입니다.
길게 수행되는 프로세스 때문에 준비 큐에서 오래 기다리는 현상이 발생하는 단점이 있습니다.
SJF(Shortest Job First)
실행 시간이 짧은 프로세스를 가장 먼저 실행하는 알고리즘 입니다.
긴 시간을 가진 프로세스가 실행되지 않는 현상이 일어날 수 있으며 평균 대기시간이 가장 짧습니다.
하지만 실제로는 실행시간을 알 수 없기에 과거 실행시간을 토대로 추측합니다.
우선순위
기존 SJF 스케줄링의 경우 긴 시간을 가진 프로세스가 실행되지 않는 현상이 있었습니다.
이를 오래된 작업일수록 '우선순위를 높이는 방법'을 통해 단점을 보완한 알고리즘을 말합니다.
여기서 우선순위는 작업의 시간, 프로세스의 메모리 요구사항, 열린 파일 수, CPU사용량 등을 고려해서 설정됩니다.
선점형(라운드 로빈, SRF, 다단계 큐)
선점형 방식은 현대 운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고
강제로 다른 프로세스에 CPU소유권을 할당할 수 있는 방식을 말합니다.
라운드 로빈
현대 컴퓨터가 쓰는 스케줄링 방식이며 단순한 선점형 알고리즘입니다.
각 프로세스는 동일한 할당 시간을 주고 시간안에 끝마치지 못하면 다시 준비 큐로 돌아가는 방식입니다.
할당 시간이 너무 크면 FCFS가 되고 짧으면 컨텍스트 스위칭이 잦아져 오버헤드, 즉 비용이 커집니다.
일반적으로 전체 작업 시간은 길어지지만 평균 응답 시간을 짧아진다는 특징이 있습니다.
또한, 이 알고리즘은 로드밸런서에서 트래픽 분산 알고리즘으로도 쓰입니다.
SRF(Shortest Remaining Time First)
중간에 실행 시간이 더 짧은 작업이 들어오면 기존 짧은 프로세스를 중지하고 더 짧은 프로세스를 실행 후 다음 짧은 작업을 이어나가는 기법입니다.
다단계 큐
우선순위에 따른 준비 큐를 여러개 사용하고 큐마다 라운드 로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용할 것을 말합니다. 큐 간의 프로세스 이동이 안되므로 스케줄링 부담이 적지만 유연성이 떨어지는 특징이 있습니다.
우선순위가 높은 큐부터 처리되기 때문에 낮은 큐의 프로세스가 처리가 안되는 기아현상이 발생할 수 있습니다.
인프런 cs지식의정석 강의 중..
'IT지식 > Computer Science' 카테고리의 다른 글
데이터베이스 인덱스 효율적으로 사용하는 방법 (0) | 2025.02.02 |
---|---|
프로세스 교착상태의 원인과 해결방법 (0) | 2025.01.30 |
운영체제에서 자원의 접근 방식, 공유자원과 임계영역 (0) | 2025.01.30 |
프로세스와 스레드의 차이 (0) | 2025.01.30 |
프로세스간의 통신 IPC(Inter-Process Communication) (0) | 2025.01.30 |