ホーム » スタッフ » 斉藤徹 » プログラムの実行とメモリの利用

2009年10月
« 9月   11月 »
 123
45678910
11121314151617
18192021222324
25262728293031

最近の投稿(電子情報)

アーカイブ

カテゴリー

プログラムの実行とメモリの利用

計算機システムの授業にて、先週のROM/RAMおよびブートローダの話の続きとして、 メモリ階層の話と、プログラムの実行方法について説明する。

メモリ階層

CPUの処理速度と主記憶の読み書き速度には差があり、CPUの方が速い。 このため、SRAM(半導体メモリによる高速・小容量メモリ)と、DRAM(電荷蓄積をつかった低速・大容量)を組み合わせて使い、SRAMによるキャッシュメモリをCPUとの間に置くことで、 よく利用するデータはSRAMによるキャッシュメモリに保存し、 必要に応じてDRAMによる主記憶に保存するようにすることで、 見かけ上、高速大容量のメモリがあるように見せることを説明する。 これに加え、補助記憶装置(ハードディスク)に、実行待ちのプログラムで一時的に 主記憶を使わないものは、ハードディスクに保存し主記憶を明け渡すことで、大容量の主記憶に 見せかける仮想メモリについて解説する。メモリ階層の最上部のレジスタも補足で説明する。

インタプリタ・コンパイラ

プログラムの実行方式として、インタプリタ方式とコンパイラ方式を説明し、 インタプリタ方式はすぐにプログラムの実行を始められるけど、いちいち命令変換が必要で、 処理効率が悪いことを説明する。コンパイラ方式は、手間をかけて機械語に変換するけど、 実行が始まれば余計な命令変換が不要で高速に実行できることを説明する。 また、インタプリタ方式は実行時にソースが必要となることから、処理内容が他の人に流用される危険性があることを紹介。

Javaによるバイトコードインタプリタ方式などの特殊な事例も紹介し、 その1つとしてMac OSが、68000⇒PowerPC⇒Intel とCPUが変わることで、 エミュレータなどが必要であったことを紹介する。

プログラムの実行までの説明として、コンパイラ・リンク処理などの流れを説明し、 中間コードやライブラリの考えを説明する。ライブラリの説明にあたり、静的リンク方式と動的リンク方式を説明し、メモリの有効利用やライブラリの修正の容易さを特徴としてあげた。