シーケンシャルアクセス

シーケンシャルアクセスとは、データ構造記憶装置において、データの先頭から順番にアクセスしていく方式です。この方式では、目的のデータにたどり着くまでに、その手前にあるすべてのデータを順に読み進める必要があります。そのため、特に後方に位置するデータへのアクセスには時間がかかるという特徴があります。これは、順次アクセスとも呼ばれます。

この方式と対照的なのが、ランダムアクセスです。ランダムアクセスでは、データが格納されている位置を直接指定して、瞬時にアクセスできます。しかし、シーケンシャルアクセスには、ランダムアクセスにはない利点も存在します。

シーケンシャルアクセスの利用例



かつては、カセットテープやビデオテープなどのオーディオ・ビデオメディアで広く利用されていました。これらのメディアでは、データの記録順序に従って再生を行うため、シーケンシャルアクセスが適していました。

コンピュータの周辺機器においては、利便性の面からランダムアクセスが可能な機器が主流です。しかし、業務用の磁気テープ(LTOなど)は、依然としてシーケンシャルアクセスが採用されています。また、ランダムアクセスでは、シーク時間と呼ばれるデータの読み出し開始までの遅延が発生します。そのため、大容量のバックアップなど、大量のデータを連続的に処理する場面では、シーケンシャルアクセスの方が高速に読み書きできる場合があります。

データ構造とシーケンシャルアクセス



連結リストは、シーケンシャルアクセスのみが可能なデータ構造の代表例です。連結リストでは、各要素(ノード)が次の要素への参照を持っており、目的の要素にアクセスするには、先頭の要素から順に参照をたどっていく必要があります。この操作の計算量は、要素数に比例する線形時間O(n)となります。しかし、連結リストには、要素の追加や削除が配列などのデータ構造よりも高速に実行できるというメリットがあります。

シーケンシャルアクセスのメディア



シーケンシャルアクセスが用いられる主なメディアには、以下のようなものがあります。

紙テープ
パンチカード
磁気テープ
クイックディスク

ファイルへのシーケンシャルアクセス



多くのオペレーティングシステムは、ハードディスクやSSDなどの記憶媒体にファイルシステムを提供し、データをファイル単位で管理しています。通常のファイルであれば、シーク操作によってランダムアクセスが可能です。しかし、パイプなどの特殊なファイルや、シークができないファイルに対しては、シーケンシャルアクセスのみが可能です。

また、一部のオペレーティングシステムでは、シーケンシャルアクセスが想定される場合に、ファイルオープン時にキャッシュの最適化ヒントを指定できるAPIが提供されています。Windows APIには、シーケンシャルアクセスのみを許可するストリームを表すISequentialStreamインターフェースが存在し、ランダムアクセスも許可するIStreamインターフェースは、ISequentialStreamから派生しています。

まとめ



シーケンシャルアクセスは、データの先頭から順に読み書きする方式であり、ランダムアクセスと比較して、特定の状況下では効率的なデータ処理を可能にします。特に、大容量データの連続的な読み書きが必要な場面や、磁気テープのような特定のメディアでは、重要な役割を果たしています。

関連項目



* ランダムアクセス

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。