Открыть сервис

Дисциплина обслуживания FIFO

FIFO (First In, First Out — «первым пришёл — первым ушёл») — это дисциплина обслуживания очереди, при которой запросы, задачи или объекты обрабатываются строго в порядке их поступления. Данный принцип является одним из фундаментальных в теории массового обслуживания, организации вычислительных процессов, логистике, складском учёте и бухгалтерии. Основная характеристика FIFO — гарантированная справедливость по отношению к времени ожидания: каждый элемент очереди не может быть обслужен раньше тех, кто поступил до него.

История и происхождение

Концепция FIFO возникла из практических потребностей управления очередями в повседневной жизни (например, в магазинах, на почте, в банках). Первое формальное описание принципа в контексте теории очередей (теории массового обслуживания) было дано в начале XX века датским математиком Агнером Крарупом Эрлангом, который в 1909 году опубликовал работу «Теория вероятностей и телефонные разговоры». Эрланг изучал телефонные станции и ввёл понятие дисциплины обслуживания, где вызовы обрабатывались в порядке поступления. Позднее, в 1950–1960-х годах, FIFO стало стандартной дисциплиной в операционных системах (как алгоритм планирования процессов) и в управлении запасами (как метод оценки себестоимости).

В СССР и России принцип FIFO активно применялся в плановой экономике для учёта товарно-материальных ценностей, а в 1990-х годах был закреплён в бухгалтерских стандартах.

Классификация и области применения

FIFO используется в различных дисциплинах, где важна хронологическая последовательность обработки. Основные области применения:

Вычислительная техника и информатика

Логистика и складское хозяйство

Бухгалтерский учёт и финансы

Производство и управление операциями

Устройство и реализация

Физически FIFO-очередь может быть реализована несколькими способами:

  1. Линейный массив с двумя указателями (head — голова, tail — хвост). Элементы добавляются в конец (tail), а извлекаются из начала (head). При заполнении массива указатели циклически переходят на начало (кольцевой буфер).
  2. Связанный список (односвязный или двусвязный). Каждый элемент содержит ссылку на следующий. Добавление и удаление выполняются за O(1).
  3. Аппаратная реализация (в микросхемах) — регистры сдвига или специализированные FIFO-модули, работающие на тактовой частоте.

В операционных системах FIFO-планировщик обычно реализуется как очередь готовых процессов. Процесс, поступивший первым, получает процессорное время. После завершения или блокировки процесса управление передаётся следующему в очереди. Недостаток: «эффект конвоя» — короткие процессы вынуждены ждать завершения длительного.

Преимущества и недостатки

Преимущества:

Недостатки:

Сравнение с другими дисциплинами

FIFO часто противопоставляется другим дисциплинам обслуживания:

ДисциплинаПринципПримеры применения
FIFO (FCFS)Первым пришёл — первым обслуженОчереди в магазинах, планировщики процессов, буферы
LIFO (Last In, First Out)Последним пришёл — первым обслуженСтеки, обработка отложенных задач
SJF (Shortest Job First)Сначала короткие задачиПланирование в ОС (теоретически оптимально)
Приоритетное обслуживаниеЗадачи с высоким приоритетом обслуживаются раньшеРеальные системы (авиадиспетчеры, медицинские мониторы)
Round Robin (RR)Каждому процессу выделяется квант времениМногозадачные ОС

Примеры в реальной жизни

Критика и альтернативы

FIFO критикуется за неспособность учитывать приоритеты и динамику нагрузки. В современных вычислительных системах FIFO редко используется как единственный алгоритм планирования — его заменяют или дополняют приоритетными очередями, многоуровневыми очередями с обратной связью (MLFQ) или алгоритмом Round Robin. В логистике FIFO может быть неоптимальным, если товары имеют разную ценность или срок хранения — тогда применяется FEFO (First Expired, First Out — первым истекает срок годности, первым уходит). В бухгалтерии альтернативой FIFO является метод LIFO (запрещён в МСФО, но разрешён в некоторых странах, включая США до 2017 года) и метод средней себестоимости.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →