計算機アーキテクチャ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秒間
© Copyright 2024 ExpyDoc