アドレスバインディングとは何ですか?

コンピューターのフラットスクリーンとキーボード-側面図

アドレスバインディングは、コンピュータのメモリをソフトウェアに割り当てます。

画像クレジット: ライアン・マクベイ/フォトディスク/ゲッティイメージズ

コンピュータメモリは、論理アドレスと物理アドレスの両方を使用します。 アドレスバインディングは、物理アドレスを論理アドレス(仮想アドレスとも呼ばれます)に関連付けることにより、物理メモリの場所を論理ポインタに割り当てます。 アドレスバインディングはコンピュータのメモリ管理の一部であり、メモリへのアクセスを必要とするアプリケーションに代わってオペレーティングシステムによって実行されます。

メモリ管理

アドレスバインディングは、プログラムのコードがメモリに格納される方法に関連しています。 プログラムは、以下の構造要件によって設定された一連のルールに従って、人間が読めるテキストで記述されています。 プログラミング言語、およびコンピューターの中央処理によってアクションに解釈されるキーワードの使用 ユニット。 プログラムの実行可能バージョンが作成されるポイントによって、アドレスバインディングがいつ発生するかが決まります。 「C」やCOBOLなどの一部のプログラム言語はコンパイルする必要がありますが、他の言語、主にスクリプトは、マシンコードでコンパイルされたバイナリバージョンではなく、元のプログラムテキストから実行されます。

今日のビデオ

コンパイル時間

最初のタイプのアドレスバインディングは、コンパイル時のアドレスバインディングです。 これにより、プログラムが実行可能バイナリファイルにコンパイルされるときに、メモリ内のスペースがコンピュータのマシンコードに割り当てられます。 アドレスバインディングは、オブジェクトコードが格納されているメモリ内のセグメントの開始点に論理アドレスを割り当てます。 メモリ割り当ては長期的であり、プログラムを再コンパイルすることによってのみ変更できます。

読み込み時間

プログラムの割り当て時にメモリ割り当てが指定されている場合、コンパイルされた状態のプログラムは、あるコンピュータから別のコンピュータに転送できません。 これは、実行可能コードに、新しいコンピューター上の他のプログラムによってすでに使用されている可能性のあるメモリ割り当てが含まれるためです。 この場合、プログラムが呼び出されてメモリにロードされるまで、プログラムの論理アドレスは物理アドレスにバインドされません。

実行時間

実行時のアドレスバインディングは通常、プログラム内の変数にのみ適用され、コンパイルされないスクリプトのバインディングの最も一般的な形式です。 このシナリオでは、プログラムは、スクリプト内の命令の処理中に変数が初めて検出されたときに、プログラム内の変数のメモリスペースを要求します。 プログラムシーケンスが終了するまで、またはスクリプト内の特定の命令が変数にバインドされたメモリアドレスを解放しない限り、メモリはその変数にスペースを割り当てます。