アドレス バインドとは?

コンピュータのメモリは、論理アドレスと物理アドレスの両方を使用します。アドレスバインディングは、物理アドレスを論理アドレス (仮想アドレスとも呼ばれる) に関連付けることによって、物理メモリ位置を論理ポインタに割り当てます。アドレス バインドはコンピューターのメモリ管理の一部であり、メモリへのアクセスが必要なアプリケーションに代わってオペレーティング システムによって実行されます。
メモリ管理
アドレスバインディングは、プログラムのコードがメモリに格納される方法に関連しています。プログラムは人間が読めるテキストで書かれ、プログラミング言語の構造要件によって設定された一連の規則に従い、コンピューターの中央処理装置によってアクションに解釈されるキーワードを使用します。プログラムの実行可能バージョンが作成される時点によって、アドレス バインドが発生するタイミングが決まります。 「C」や COBOL などの一部のプログラム言語はコンパイルする必要がありますが、その他の主にスクリプトは、マシン コードでコンパイルされたバイナリ バージョンではなく、元のプログラム テキストから実行されます。
コンパイル時間
アドレスバインディングの最初のタイプは、コンパイル時のアドレスバインディングです。これにより、プログラムが実行可能なバイナリ ファイルにコンパイルされるときに、コンピューターのマシン コードにメモリ内のスペースが割り当てられます。アドレスバインディングは、オブジェクトコードが格納されているメモリ内のセグメントの開始点に論理アドレスを割り当てます。メモリ割り当ては長期的であり、プログラムを再コンパイルすることによってのみ変更できます。
読み込み時間
プログラムが割り当てられるときにメモリ割り当てが指定されている場合、プログラムはコンパイルされた状態であるコンピューターから別のコンピューターに転送することはできません。これは、実行可能コードに、新しいコンピューター上の他のプログラムによって既に使用されている可能性があるメモリ割り当てが含まれるためです。この場合、プログラムが呼び出されてメモリにロードされるまで、プログラムの論理アドレスは物理アドレスにバインドされません。
実行時間
実行時アドレス バインドは通常、プログラム内の変数にのみ適用され、コンパイルされないスクリプトのバインドの最も一般的な形式です。このシナリオでは、プログラムは、スクリプト内の命令の処理中に変数が初めて検出されたときに、プログラム内の変数のメモリ領域を要求します。メモリは、プログラム シーケンスが終了するまで、またはスクリプト内の特定の命令が変数にバインドされたメモリ アドレスを解放しない限り、その変数にスペースを割り当てます。