個人ブログ

インフラ、アプリケーションまわり

プログラムが動く仕組み

こちらも、学習備忘録として随時更新していきます。

プログラムが動く仕組み

  • プログラムを書く(ここでは、高水準言語を想定)
  • プログラムがコンパイラにより、マシン語に変換される。
  • OSにより、ハードウェアに保存されたプログラムがメモリーにロードされる。
    ※ディスクの中にあるままだと、CPUで実行させることはできない(実行自体はできるが、処理が低速になる)
    ※もし、ディスクをメモリーとして使いたい場合は、仮想記憶(実態はディスクだが、実行時にメモリーと入れ替わりされる)などがある。
    ※また、ディスクキャッシュという仕組みもある。これについては、実態はメモリーである。(メモリーの一部分が領域として割り当てられ、一度ディスクからロードされたデータに関しては、アクセスが高速化される。
  • CPUにより、メモリーに保存されたプログラム(データと命令)が読み出される。
  • CPUが、読みだしたデータや命令を解釈し、演算・制御が行われる。

CPUを深掘ると

  • CPU内部では、レジスタを使って処理が行われる。
  • レジスタとは、記憶領域のことで、演算を行うためのレジスタや、メモリーのアドレスを参照するレジスタなど種類がある。
  • プログラムの実行時は、メモリーのアドレスが参照されたレジスタから、メモリーにロードされた各種命令などを読み出す。そしてそれが、演算を行うレジスタ(アキュムレータ)にコピーされることで、演算が行われる。

条件分岐・ループ文・関数

  • これらの場合は、マシン語の命令によって、該当のメモリーのアドレスの命令が実行されるように制御してくれる

モリーについて

  • 基本的には、アドレス1番地に対して1バイトのデータが格納されていく。
  • ただし、型指定などによって、1バイトより大きいデータを格納することも可能。この場合、バイト数の分だけメモリーのアドレス番地が確保される。 (例えば2バイトだったら、アドレス番地が2つ確保される)
  • スタック・キューによって、アドレス番地を指定せずとも、メモリーへのデータの格納・書き出しができるので便利。

プログラムにできること

随時更新。イメージです。

  • 計算
  • 条件による処理の分岐
  • 繰り返し

Webアプリケーションとデスクトップアプリケーションの違い

Webアプリケーション

  • 処理はサーバーで行われる
  • 画面はWebブラウザ上で、HTML表現によって表示される

デスクトップアプリケーション

  • 処理はCPUで行われる
  • 画面はOS上で表示される