こんにちは😀
今回は、プログラムの主記憶への配置の性質に関してまとめました。
CPU上でプログラムを主記憶に配置して実行するわけですが、どこでプログラムを実行するか、実行した後そのプログラムを破棄するかどうかなど、状況に応じてそのプログラムの性質を決められます。
その状況や使用に応じてプログラムの性質があるので、いくつかみていきましょう。
再配置可能とは
補助記憶装置から主記憶上にロードする際に、主記憶上のどこに配置しても実行することができるという性質を「再配置可能(リロケータブル)」と呼びます。
どこでというのは、どのアドレスで実行しても正常に機能するということです。
再使用可能とは
主記憶上にロードされて処理を終えたプログラムを、再ロードすることなく、繰り返し実行できるという性質を「再使用可能(リユーザブル)」と言います。
終了したプログラムを破棄することなく、使用した変数を初期化して繰り返しの実行に備えます。
再入可能とは
再ロードすることなく繰り返し実行できる再使用可能プログラムにおいて、複数のタスクから呼び出してもお互い干渉することなく、同時実行できるという性質を「再入可能(リエントラント)」と言います。
例えば、プログラムAを呼び出している最中に、プログラムBを呼び出しても、同時に実行することができます。
プログラムの中で、処理の手順を定義した部分と使用するデータ部分に分けます。
このデータ部分をタスクごとに持つことで、互いに干渉することなく並行して動作することができます。
また、再使用可能なプログラムでも複数の実行が不可能な場合は、逐次再利用可能と言います。
再帰的とは
実行中に、自身を呼び出すことができるという性質を「再帰的(リカーシブ)」と言います。
例えば、検索処理を行うとき目的のファイルを見つけるために、フォルダを検索し、その中にさらにフォルダがあれば検索し・・・、というように目的のファイルを見つけるまで再帰的に処理を行い続けます。
これはスタック領域に現在の状態を退避させる(プッシュする)ことと、使用するときに読み出す(プルする)ことで、再帰的な処理を可能としています。
今回の一言・・・
上記の処理や考え方は、プログラムを書く上でも必要になります。
1つのトランザクションで効率よくプログラムを実行するために、何気なく使っている性質も意識すると深みが増します。
今回はここまで。
では、また次回。
コメント