FIFO【First-In First-Out】LILO
概要

複数の対象を列を作って待機させ、順番に処理する際に、列に入った順番通りに取り出していく構造や手順を指す。途中で順番を入れ替えることはなく、並んだ順序がそのまま処理される順序になる。処理待ちの対象を到着順に並べ、先に入ったものから処理するという考え方は、情報処理に限らず物流や会計などの分野にも共通して見られる発想である。
コンピュータ上で、データを一列に並べて格納し、FIFO方式で出し入れするデータ構造を「キュー」(queue)という。キューにデータを追加する操作を「エンキュー」(enqueue)、取り出す操作を「デキュー」(dequeue)と言い、データが到着した順序を崩さずに管理する。プログラムの処理待ちのタスク、印刷データの出力待ち、ネットワーク機器によるパケットの転送など、到着順を保って処理を進める場面で利用される。
ハードウェア分野では、データを一時的に蓄える「FIFOメモリ」や「FIFOバッファ」と呼ばれる回路がある。データの書き込み側と読み出し側で処理速度に差がある場合、その差を埋める目的で組み込まれ、入力された順序を保ったままデータを受け渡す。通信機器や組み込み機器、デジタル回路などで利用されている。
在庫管理や会計の分野でも、FIFOは先に入庫した商品から順に出庫する管理方法、または先に取得した在庫から販売されたものとみなして原価を計算する考え方として用いられる。情報処理だけでなく、順序を保ちながら対象を扱う必要がある分野で共通して利用される考え方である。分野によっては「先入先出法」といった訳語で表されることもある。
これに対して、最後に入れたものを最初に取り出す方式を「LIFO」((Last-In First-Out:後入先出法)という。書類の山や積み重ねた皿のように、後から置いたものを先に取り出す構造に相当する。プログラムにおけるスタックの管理や、関数呼び出しの処理など、直前の状態に戻る処理に適している。FIFOとLIFOは、データ構造や処理方式を理解する上で基本となる対照的な考え方である。
関連用語
他の辞典等による「FIFO」の解説 (外部サイト)
- ウィキペディア「FIFO」
- Insider's Computer Dictionary「FIFO」
- ネットワークエンジニアとして「FIFO」
- くみこみックス「FIFO」
- Programming Place Plus 用語集「FIFO」
- TechTerms.com (英語)「FIFO」
- PC.net Computer Glossary (英語)「FIFO」
- PC Magazine (英語)「FIFO」