Алгоритм планирования FCFS: что такое, пример программы
⚡ Умное резюме
Алгоритм планирования «первым пришел — первым обслужен» (FIFO) запускает процессы в точном порядке их поступления в очередь готовых процессов, используя простой невытесняющий подход FIFO, что делает его самым простым алгоритмом планирования ЦП для реализации в операционной системе.

Что такое метод обслуживания в порядке очереди?
Первое прибытие - первое обслуживание (FCFS) FCFS — это алгоритм планирования задач операционной системы, который автоматически выполняет запросы и процессы из очереди в порядке их поступления. Это самый простой и лёгкий алгоритм планирования ЦП. В этом алгоритме процесс, который первым запрашивает ЦП, получает выделение ЦП первым. Управление осуществляется с помощью очереди FIFO. Полное название FCFS — First Come First Serve (первым пришёл — первым обслужен).
Когда процесс попадает в очередь готовых процессов, его блок управления процессом (PCB) связывается с концом очереди. Таким образом, когда процессор освобождается, он назначается процессу, находящемуся в начале очереди.
Характеристики метода FCFS
Основные характеристики метода «Кто первый пришел, тот и обслуживается» перечислены ниже:
- Кокаин проходит непревентивный Алгоритм планирования, благодаря которому процесс удерживает процессор до завершения своего пикового времени.
- Задания всегда выполняются в порядке очереди.
- Его легко реализовать и использовать.
- Этот метод имеет низкую производительность, а общее время ожидания довольно велико.
Пример планирования по принципу «первым пришел — первым обслужен»
Примером применения метода «первым пришел — первым обслужили» в реальной жизни является покупка билета в кино в кассе. В этом алгоритме обслуживания человек обслуживается в соответствии с порядком очереди. Первым покупает билет тот, кто первым приходит в очередь, затем следующий. Это продолжается до тех пор, пока билет не купит последний человек в очереди. Процесс обработки данных на центральном процессоре работает аналогичным образом.
Как работает FCFS? Расчет среднего времени ожидания
Чтобы понять, как алгоритм планирует процессы, приведем пример пяти процессов, поступающих в разное время. Каждый процесс имеет разное время выполнения.
| Разработка | Время взрыва | Время прибытия |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
Используя алгоритм планирования FCFS, эти процессы обрабатываются следующим образом.
Шаг 1) Процесс начинается с точки P4, время прибытия которой равно 0.
Шаг 2) В момент времени = 1 прибывает P3. P4 все еще выполняется. Следовательно, P3 хранится в очереди.
Шаг 3) В момент времени t=2 прибывает P1 и остается в очереди.
Шаг 4) В момент времени t=3 процесс P4 завершает свое выполнение.
Шаг 5) В момент времени = 4 P3, который находится первым в очереди, начинает выполнение.
Шаг 6) В момент времени t=5 прибывает P2 и помещается в очередь.
Шаг 7) В момент времени t=11 P3 завершает свою работу.
Шаг 8) В момент времени t=11 P1 начинает выполнение. Время выполнения составляет 6, поэтому оно завершается за 17 секунд.
Шаг 9) В момент времени t=17 P5 начинает выполнение. Время выполнения составляет 4 секунды, поэтому оно завершается в момент времени t=21.
Шаг 10) В момент времени t=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:
- Это простейшая форма Алгоритм планирования ЦП.
- Программировать его очень легко.
- Здесь действует простой принцип «кто первый пришел, тот и получил».
Недостатки FCFS
Вот недостатки и минусы использования алгоритма планирования FCFS:
- Это алгоритм планирования ЦП без вытеснения, поэтому после того, как процессу выделен процессор, он никогда не освободит его, пока не завершит выполнение.
- Среднее время ожидания велико.
- Процессы с короткими этапами обработки, находящиеся в конце очереди, должны ждать завершения процесса с длинным этапом обработки, находящегося в начале очереди.
- Это не идеальный метод для систем разделения времени.
- Из-за своей простоты FCFS не очень эффективен.












