メモリは常にコンピュータシステムの重要な一部となっています。それは貴重かつ希少資源であり続けています。
有効であるために、それを管理する方法、直接メモリの利用効率に影響を与えるだけでなく、システムのパフォーマンスに影響を与えないだけで。
メインオブジェクト管理メモリはメモリです。場合は、ほぼすべての命令を実行するコンピュータは、メモリへのアクセスを必要とするだろう。
3つのメモリの理想的な条件(技術の面でこれらの3つの条件が同時に実現することが可能になりました)
1.メモリのアクセス速度は、プロセッサの動作速度を維持します。
2.要件は、大容量のメモリを持っています。
3.そして、メモリのコストが低くなければなりません。
現代のコンピュータシステムにおいて、採用例外なしに多層構造のメモリシステム。
メモリの積層構造
:汎用コンピュータのためには、少なくとも3つのメモリのレベルが必要ですCPUレジスタ、メインメモリ、二次記憶を。
より高いレベルのうち、メモリ階層において、記憶媒体のより速いアクセス速度、高い価格、小さい記憶容量。
レジスタ、キャッシュ、メインメモリ、オペレーティングシステム、ストレージ管理の管轄内に属しディスクキャッシュ。彼らは、電源障害メッセージが消えた後、保存されました。
固定ディスク、リムーバブルストレージメディアの管理、デバイス管理の範疇に属し、情報は彼らの長期保存に保存されます。
実行可能なメモリ
レジスタ間、コンピュータシステムメモリ階層と、メインメモリには、また、実行可能メモリと呼ばれています。
実行可能なプロセスは、いくつかのクロック周期内にロードまたはストア命令を用いてメモリにアクセスすることができます。補助記憶装置へのアクセスがI / Oデバイスを実装するために必要とされる、実行可能なメモリアクセス時間で消費される時間は、大きさ以上の3桁の一般的な違い消費よりもはるかに大きいです。
実行可能なメモリ、回復、およびストレージ管理の様々なレベルとの間のデータ交換の割当てを担うOSストレージ管理。
主記憶
頭字語のメインメモリまたはメインメモリストレージは、また、実行可能メモリと呼ばれるコンピュータの主な構成要素、プログラムおよびデータを実行する保存処理するための処理です。典型的には、プロセッサは、メインメモリから命令およびデータをフェッチします。
メインメモリへのアクセス速度は、レジスタ及びキャッシュにこの矛盾、コンピュータシステムを軽減するために、命令を実行するCPUの速度よりもはるかに低いからです。
登録
プロセッサのレジスタは、最速のレジスタのアクセス速度ので、CPUと完全に連携を同じ速度を持っていますが、価格が非常に高価であるため、記憶容量は大きくありません。
中型マシンで現在のコンピュータシステムにおいて、レジスタ32及び一般的に64のビット数、及び小さな組み込みコンピュータに、レジスタ・ビットは、典型的には8ビットです。
キャッシュ
キャッシュメモリとレジスタメモリとの間に介在された近代的なコンピュータ・アーキテクチャの重要な部分であり、それは大きいかもしれないので、メインメモリは、主に、より一般的にプロセッサのメインメモリへのアクセス回数を減少させるために使用されるバックアップ・データのために使用されます走行速度増加の大きさ。
キャッシュ容量よりも大きいレジスタの数が多い、メインメモリよりも高速アクセス。
コンピュータシステムでは、メモリとプロセッサ速度の間の矛盾を緩和するために、多くの場所では、キャッシュを設定しています。
典型的には、それらのメインメモリに格納されたデータやプログラムのプロセスは、一時的にキャッシュにコピーされた場合にのみ、アクセスすることができます。CPUは、情報の特定のセットにアクセスすると、最初のかどうかをチェックアクセスメインメモリに必要とされていないキャッシュにキャッシュから直接採取し、場合情報、。そうしないと、情報を得るために、メインメモリにアクセスする必要があります。
最高速度、容量の最小のキャッシュメモリに近いです。遠く、高速、大容量を下げます。
ディスクキャッシュ
現在のディスクI / O速度に起因は、ディスクキャッシュを設定し、2つの速度の間の矛盾を容易にするために、メインメモリにはるかに低いアクセスの速度よりも一時的にディスクアクセスを減らすために頻繁に使用されるデータおよび情報を格納するためのディスクの主要部であります番号。
データは、補助記憶装置に出力することができるメインメモリ、間に存在しなければなりません。
ロードとリンカ
ユーザープログラムは、以下のステップを経る通常、実行可能なプログラムを次のようになります。
1.コンパイルは、ソースプログラムは、オブジェクトモジュールの数を形成する、コンパイラによってコンパイルされます。
2.リンク、ターゲット・モジュールのセットは、コンパイラやリンカライブラリ関数によって形成され、その完全なロードモジュールを形成するために一緒にリンクされなければなりません。
3.ロードは、ローダは、メモリにモジュールをロードします。
モジュールがメモリにロードされると、次の三つの方法にロードすることができます。
1.ロード絶対道
コンピュータシステムは小さく、単一のチャネルプログラムは、時間を実行すると、プログラムの位置をメモリに常駐するかを知ることは完全に可能です。この負荷では絶対モードすることができます。
ユーザプログラムコンパイルされたオブジェクトコードの後に絶対アドレスを生成します。ロード・モジュールをメモリにロードされた後、論理アドレスと物理アドレスプログラムとデータが同じであるため、プログラムやデータのアドレスを変更する必要はありません。
再配置可能なように充填した(完了時にメモリにロードされ、すべてのアドレスのロードの完了には、物理アドレスです)
これは、適切なメモリ位置にロードモジュールメモリの状況に依存してもよいです。
環境をマルチプログラミングでは、コンパイラは、コンパイルされたオブジェクトモジュールは、メモリ内の任意の場所に保存する必要があります後に知ることはできません。したがって、ゼロの開始アドレスから通常、コンパイルされたオブジェクトモジュールが形成されているユーザプログラムの数を、他のアドレスは、プログラム開始アドレス計算に対するものです。
典型的には、ターゲット・プロセス命令及びデータロードプロセスのアドレス変更処理は、再配置と呼ばれています。アドレス変換の通常のプロセスが完了したときに一度にロードされているので、変更がその後は発生しないので、静的移転と呼ばれています。
再配置可能なロードモジュールがロードされる方法は、任意のメモリにロードすることができる可能にする環境をマルチプログラミングするための、位置。
実行時に動的にロードされました
モジュールの後に、実行時にダイナミックローダーがメモリにロードされ、モジュールの論理アドレスは、直ちに物理アドレスに変更されていないが、アドレス変換プログラムを実際に実行するときにのみ、そのロードされたメモリすべてのアドレスは論理アドレスです。
リンカ
場合は、リンクモジュールのターゲットは、リンクの時間に応じて、リンクは、3つのタイプに分けることができます。
1.静的リンクモード
プログラムの実行前に、しなくなり、オープンロード・モジュールリンクへの最初のターゲットモジュールと必要なライブラリ機能。私たちは、この方法は、事前にリンクされ、静的にリンクされた方法と呼ばれる呼び出します。