Document

計算機アーキテクチャ2
(計算機アーキテクチャ(再))
第二回
コンパイラとアーキテクチャ
担当:三浦康之
コンパイラとアーキテクチャ
高水準言語(C言語とかJavaとか、そういうやつ)レベルアーキテクチャと
機械語命令レベルアーキテクチャの間には、意味的なギャップがある
→ セマンティックギャップ
セマンティックギャップを埋めるための2つの方法
① コンパイラ方式
上位層の命令をまとめて下位層の命令に翻訳する
→ ○ 出来上がる機械語コードは効率的で実行が早い。
× コンパイル自体に時間がかかる。
② インタプリタ方式
上位層の命令を逐次的に下位層の命令に置き換える
→ × 出来上がる命令はあまり効率よくない。
○ 手軽に実行できる。
※ 現状では、コンパイラ方式が中心
オペレーティングシステムと
アーキテクチャ
OSの分類

バッチ処理OS
ユーザからのジョブをそのまま入力して順番に処理する。

タイムシェアリングOS
多くのユーザに同時にサービスする。

リアルタイムOS
オンラインで結合された外部の処理にサービスする。応答
時間が最悪でも一定時間より短くなることを保障する。
マルチプログラミング方式
1台のマシンで複数のプログラムを効率よく実
行するための方式


メモリ上に複数のプログラムを置いておく
あるプログラムAの実行中に、中断せざるを得ない
事情ができたとき、別のプログラムBにCPUを明け
渡す。
※ 入出力命令の実行中などに、プログラムの中断
が発生するので、そのような場合にCPUを明け
渡したりする。
p.22の実行例
ジョブA:
 開始2秒後で、I/Oを呼び出す。その結果を、開始4秒後に使う。
 1回目のI/O呼び出しに必要な時間は8秒間
 1回目のI/O呼び出し終了後、2回目のCPU処理を4秒間行う。
 2回目のCPU処理の開始2秒後に、2回目のI/O呼び出しを行う。
 2回目のI/O呼び出しに必要な時間は8秒間
ジョブB:
 開始2秒後で、I/Oを呼び出す。その結果を、開始4秒後に使う。
 1回目のI/O呼び出しに必要な時間は4秒間
 1回目のI/O呼び出し終了後、2回目のCPU処理を11秒間行う。
 2回目のCPU処理の開始9秒後に、2回目のI/O呼び出しを行う。
 2回目のI/O呼び出しに必要な時間は5秒間