FCFS 스케줄링 알고리즘: 예제 프로그램이란 무엇입니까?
⚡ 스마트 요약
선입선출(FIFO) 스케줄링은 준비 큐에 도달한 순서대로 프로세스를 실행하며, 간단한 비선점형 FIFO 방식을 사용하기 때문에 운영 체제에서 구현하기 가장 쉬운 CPU 스케줄링 알고리즘입니다.

선착순 방식이란 무엇입니까?
선착순(FCFS) FCFS는 운영 체제 스케줄링 알고리즘으로, 대기열에 있는 요청과 프로세스를 도착 순서대로 자동으로 실행합니다. 이는 가장 쉽고 간단한 CPU 스케줄링 알고리즘입니다. 이 알고리즘에서는 CPU를 먼저 요청한 프로세스가 먼저 CPU를 할당받습니다. 이는 FIFO 큐를 통해 관리됩니다. FCFS의 정식 명칭은 First Come First Serve(선입선출)입니다.
프로세스가 준비 대기열에 들어가면 해당 프로세스의 PCB(프로세스 제어 블록)가 대기열의 맨 뒤에 연결됩니다. 따라서 CPU가 사용 가능해지면 대기열의 맨 앞에 있는 프로세스에 할당됩니다.
FCFS 방법의 특징
선착순 방식의 주요 특징은 다음과 같습니다.
- 그것은 비선제적 스케줄링 알고리즘에 따라 프로세스는 버스트 시간을 완료할 때까지 CPU를 계속 사용합니다.
- 작업은 항상 선착순으로 실행됩니다.
- 구현하고 사용하기 쉽습니다.
- 이 방법은 성능이 좋지 않으며 일반적인 대기 시간이 상당히 높습니다.
선착순 스케줄링 예시
선착순(FCFS) 방식의 실제 사례는 영화 매표소에서 티켓을 구매하는 경우입니다. 이 스케줄링 알고리즘에서는 대기열 순서에 따라 손님이 티켓을 구매합니다. 대기열의 맨 앞에 온 사람이 먼저 티켓을 구매하고, 그 다음 사람이 구매합니다. 이러한 과정은 대기열의 맨 마지막 사람이 티켓을 구매할 때까지 계속됩니다. CPU 프로세스도 이와 유사한 방식으로 작동합니다.
FCFS는 어떻게 작동하나요? 평균 대기 시간 계산
알고리즘이 프로세스를 어떻게 스케줄링하는지 이해하기 위해, 서로 다른 시간에 도착하는 다섯 개의 프로세스 예시를 살펴보겠습니다. 각 프로세스는 서로 다른 버스트 시간을 가지고 있습니다.
| 방법 | 버스트 시간 | 도착 시간 |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
FCFS 스케줄링 알고리즘을 사용하여 이러한 프로세스는 다음과 같이 처리됩니다.
단계 1) 이 과정은 도착 시간이 0인 P4부터 시작됩니다.
단계 2) 시간=1에 P3이 도착합니다. P4가 아직 실행 중입니다. 따라서 P3은 대기열에 유지됩니다.
단계 3) 시간=2에 P1이 도착하여 대기열에 유지됩니다.
단계 4) 시간=3에서 P4 프로세스가 실행을 완료합니다.
단계 5) 시간=4에서 대기열의 첫 번째 P3이 실행을 시작합니다.
단계 6) 시간=5에 P2가 도착하여 대기열에 추가됩니다.
단계 7) 시간=11에 P3의 실행이 완료됩니다.
단계 8) 시간=11에 P1이 실행을 시작합니다. 버스트 시간은 6이므로 시간 간격 17에 실행이 완료됩니다.
단계 9) 시간=17에 P5가 실행을 시작합니다. 버스트 시간은 4이므로 시간=21에 실행이 완료됩니다.
단계 10) 시간=21에 P2이 실행을 시작합니다. 버스트 시간은 2이므로 시간 간격 23에 실행이 완료됩니다.
단계 11) 이제 위 예시의 평균 대기 시간을 계산해 보겠습니다.
Waiting time = Start time - Arrival time
P4 = 0 – 0 = 0
P3 = 3 – 1 = 2
P1 = 11 – 2 = 9
P5 = 17 – 4 = 13
P2 = 21 – 5 = 16
평균 대기 시간 = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8
FCFS의 장점
다음은 FCFS 스케줄링 알고리즘 사용의 장점과 이점입니다.
- 그것은 가장 단순한 형태입니다. CPU 스케줄링 알고리즘.
- 프로그래밍하기 쉽습니다.
- 이는 선착순이라는 간단한 순서를 따릅니다.
FCFS의 단점
다음은 FCFS 스케줄링 알고리즘 사용의 단점과 문제점입니다.
- 이는 비선점형 CPU 스케줄링 알고리즘이므로, 일단 프로세스가 CPU에 할당되면 실행이 완료될 때까지 CPU를 절대 해제하지 않습니다.
- 평균 대기 시간이 길다.
- 대기열 뒤쪽에 있는 짧은 처리 과정들은 앞쪽에 있는 긴 처리 과정이 끝날 때까지 기다려야 합니다.
- 이는 시분할 시스템에 이상적인 기술은 아닙니다.
- 단순성으로 인해 FCFS는 그다지 효율적이지 않습니다.












