blog

ファイル管理

ファイルの論理構造。ユーザーの視点から観察されるファイル編成の形式。ユーザーが直接処理できるデータとその構造で、ファイルの物理的特性とは独立しており、ファイル編成とも呼ばれます ファイルの物理的構造。...

Nov 18, 2020 · 3 min. read
シェア

ファイルとファイルシステム

基本概念

  • ファイルとは、ファイル名を持ついくつかの関連する要素の集まりです。
  • コンピュータに保存されたデータは、最新のOSではファイルシステムによって整理・管理されます。
  • ファイルシステムは2つの側面から構成されています:
    • ファイルを管理するシステム・ソフトウェア
    • 管理対象であるファイル

ファイル構造

  • ファイルの論理構造。ユーザーの視点から観察されるファイル編成の形式は、ユーザーが直接処理できるデータとその構造であり、ファイルの物理的特性とは無関係であり、ファイル編成とも呼ばれます。
  • ファイルの物理的な構造。ファイルのストレージ構造とも呼ばれ、外部ビレッジ上のファイルのストレージ構成を指します。記憶媒体の記憶性能と使用される外部メモリ割り当て方法に関連します。

ファイルの論理構造

分類:

  • 構造化文書とは、複数のレコードから構成される文書のことで、レコード型文書とも呼ばれます。レコードの長さに応じて、固定長のレコード文書ではなく、長いレコード文書に分けることができます。
  • 非構造化ファイルは、文字のストリームで構成されるファイルです。

構造化ファイル

  • シーケンシャルファイル。一定の順序で並べられた一連のレコードからなる文書。通常は固定長のレコード
  • インデックスファイル。レコードの長さが可変である場合、レコードの検索を高速化するために、レコード用のインデックス・テーブルを作成し、各レコードにテーブル・エントリを設定するのが一般的です。
  • シーケンシャルファイルのインデックス作成。上記の両方の組み合わせ。ファイルのインデックステーブルを作成し、各レコードセットの最初のレコードのテーブルエントリを作成します。
  • ダイレクト・ファイル

非構造化ファイル

  • 多くのデータ構造やデータベースが構造化ファイルの形をしているとすれば、多くのソースプログラム、実行ファイル、ライブラリなどは非構造化ファイル、つまりストリーミングファイルの形をしています。ファイルの長さはバイト単位です。ストリーミング・ファイルへのアクセスは、次にアクセスする文字を指し示すポインタの読み書きに使用されます。
  • UNIXシステムでは、すべてのファイルはストリーミングファイルとして扱われます。

ファイルの物理構造

外部メモリ割り当て方式

  • 逐次割り当て
  • リンク割り当て
  • インデックスの割り当て

シーケンシャル割り当て

  • ファイルの作成と削除が繰り返されると、外村の断片が多数作成されることになり、断片を除去するためにコンパクトなメソッドを使用することもできます。

リンク割り当て

  • リンクアロケーション方式を使用する場合、各ディスクブロックのリンクポインタを通じて、同一ファイルに属する複数のディスクブロックをチェーンリストにリンクすることができ、ファイルの形成をリンクファイルと呼びます。

インデックスの割り当て

  • 連続分布アプローチに関連する問題は解決されましたが、他に2つの問題が生じました:

    • 効率的なダイレクト・アクセスはサポートされていません。ファイルへのダイレクト・アクセスを行うには、まずFATでディスク・ブロック番号を順次検索する必要があります。
    • FATは大量のメモリ領域を占有します。ディスクのサイズが大きい場合、FATは数MB以上のメモリ領域を占有することがあります。
  • インデックスの割り当て方法:

    • シングルレベルインデキシング
    • マルチレベル・インデックス
    • 混合インデックス
  • インデックスの割り当て方法に問題があります:

    • より多くのメモリ領域が必要になる可能性があります。ファイルが作成されるたびに、そのファイルに割り当てられたすべてのディスク・ブロック番号が記録されるインデックス・ブロックが割り当てられる必要があります。

記憶領域の管理

分類

  • アイドル・テーブル・メソッドとアイドル・チェーン・テーブル・メソッド
  • ビットマップ法
  • グループ化リンク法

ビットマップ

  • ビットマップを順次スキャンして、値が "0 "のバイナリ・ビットまたはビット・グループを見つけること。
Read next

こうして熟した:var,let,const

letとconst:letとconstで宣言された変数は、変数リフティングを持ちません。 あるスコープで宣言されていない変数を使いたい場合、まず上位のスコープを探し、そこにあれば上位のスコープを使います。定義されていなければエラーになります。 スコープ内に定義があっても、それが参照の後に宣言されている場合もエラーになります。この期間は、文法的には「一時的なデッドゾーン」と呼ばれます var:var exists...

Nov 18, 2020 · 3 min read