キュー (コンピュータ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
キューの単純な表現

キュー: queue)、あるいは待ち行列コンピュータの基本的なデータ構造の一つ。データを先入れ先出し[1]のリスト構造で保持するものである。キューからデータを取り出すときには、先に入れられたデータから順に取り出される。キューにデータを入れることをエンキュー[2]、取り出すことをデキュー[3]という。

プリンタへの出力処理や、ウィンドウシステムのメッセージハンドラ、プロセスの管理など、データを入力された順番通りに処理する必要がある処理に用いられる。

キューの変形として、先頭と末尾の両端から入出力を行えるものを両端キュー[4]という。

キューとは逆に後入れ先出し[5]のリスト構造を持つデータバッファスタックと呼ぶ。

優先度つきキュー[編集]

キューに追加する要素に優先度をつけ、優先度に基づいて、キュー内でソートするのを優先度つきキューといい、高速化のためのアルゴリズムが色々研究されていて、また、色々な他のアルゴリズムで間接的に使われている。

キューの応用[編集]

  • メッセージキュー: メッセージのキュー。UNIX では、msgsnd および msgrcv システム・コールにより、それぞれデータを送信および受信できる。データを送信する先は同じプロセスであってもよいし、他のプロセスであってもよい。また、Windows では、GUI プログラムへイベントを送信するのに用いる。イベント駆動型プログラミングを実現している。プログラムはメッセージ・ループでイベントを受信し、適切な動作を行うように作られる。
  • プログラミング言語ライブラリでの実装: プログラミング言語によっては、キューを標準ライブラリとして実装していて、プログラマがキューそのもののプログラムを書かなくても利用できるようになっている。
  • ミドルウェアによる実装: 主にあるプログラムから他のプログラムへデータを送信するためにキューを利用しているミドルウェアが作られている。

キューマシン[編集]

キューマシンは、中間結果格納用にキューを用いる計算モデルである。

演算はエンキューされたデータを用いて行い、その結果をデキューする。そのため、スタックマシンと同じように0オペランドの命令で表現することができる。

また、キューマシンはデータフローに沿って命令を実行することになる。これはキューマシンの特徴の一つといえる。

脚注[編集]

  1. ^ : FIFO
  2. ^ : enqueue
  3. ^ : dequeue
  4. ^ : double-ended queue
  5. ^ : LIFO

関連項目[編集]

外部リンク[編集]