FIFO(First In, First Out) 스케줄링 알고리즘 이란?
FIFO(First In, First Out), 또는 FCFS(First-Come, First-Served) 스케줄링은
가장 기본적인 형태의 프로세스 스케줄링 알고리즘이다.
이 알고리즘은 프로세스가 스케줄링 큐에 도착한 순서대로 CPU 시간을 할당한다.
FIFO는 각 프로세스가 CPU를 완전히 사용하고 종료될 때까지 다음 프로세스는 대기해야 한다.
FIFO 알고리즘의 장점
단순성과 예측 가능성
FIFO는 매우 단순하고 이해하기 쉽다.
프로세스의 도착 순서에 따라 CPU 시간이 할당되기 때문에, 스케줄링 로직이 복잡하지 않다.
FIFO 알고리즘의 단점
병목 현상(Convoy Effect)
긴 작업 시간을 가진 프로세스가 도착하면,
이후의 짧은 작업들이 대기해야 하는 문제가 발생할 수 있다.
이는 시스템의 전반적인 응답 시간을 저하시킬 수 있다.
비효율적인 CPU 이용
I/O 작업이 필요한 프로세스의 경우,
CPU는 I/O 작업이 완료될 때까지 유휴 상태가 될 수 있다.
이는 자원 사용의 효율성을 떨어뜨린다.
성능지표: 평균 대기시간
스케줄링의 효과는 종종 평균 대기 시간으로 측정된다.
이는 모든 프로세스가 실행을 시작하기 전까지 기다려야 하는 시간의 평균이다.
예를 들어, 세 프로세스가 각각 25초, 5초, 4초의 실행 시간(Burst Time)을 가지고 있다고 가정해 보자.
프로세스 1은 대기 시간 없이 바로 실행되므로, 대기 시간은 0초다.
프로세스 2는 프로세스 1의 실행 시간인 25초를 기다려야 한다.
프로세스 3은 프로세스 1과 2의 실행 시간을 합친 30초를 기다려야 한다.
평균 대기 시간은 (0 + 25 + 30) / 3 = 18.3초다.
이번에는 Burst time이 짧은 프로세스부터 실행시켜 보자.
프로세스 3은 대기 없이 바로 실행되므로, 대기 시간은 0초다.
프로세스 2는 프로세스 3의 실행 시간인 4초를 기다려야 한다.
프로세스 1은 프로세스 3과 프로세스 2의 실행시간을 합친 9초를 기다려야 한다.
평균 대기 시간은 (0 + 4 + 9) / 3 = 4.3초이다.
위와 같이 실행 순서를 최적화하면 평균 대기 시간을 대폭 줄일 수 있다.
현대 운영체제에서의 사용
비록 FIFO가 일부 시나리오, 특히 일괄 처리 시스템에서 유용할 수 있지만,
현대의 대화형 시스템에서는 그 제한 때문에 일반적으로 사용되지 않는다.
(일부 일괄처리 시스템에서만 사용)
대신, 더 복잡하고 효율적인 스케줄링 알고리즘이 선호된다.
'운영체제' 카테고리의 다른 글
[운영체제] Round Robin (RR) 스케줄링 알고리즘 (0) | 2024.05.29 |
---|---|
[운영체제] SJF (Shortest Job First) 스케줄링 알고리즘 (0) | 2024.05.28 |
[운영체제] 컴퓨터 시스템 스케줄링의 주요 목표 (0) | 2024.05.24 |
[운영체제] CPU 스케줄링 - 다중 큐 (0) | 2024.05.23 |
[운영체제] Thread (쓰레드) (0) | 2024.05.22 |