パソコン悪戦苦闘記録

コンピュータープログラムはなぜ動くのか

 先日、途中まで読みかけて時間切れになってしまった本を再読するため、また図書館に行きました。

 その本とは、
  矢沢久雄著「プログラムはなぜ動くのか」(第3版)
です。

 それについては、
  こちらの記事をご覧ください。


 今回も、その本の最初の部分しか読むことができなかったのですが、今回は丁寧に読み込んで、読んだ部分はしっかりと頭の中に叩き込んできました。





  
 人間(ユーザー)が書いたプログラムは、PC内部でどのように実行されるのか、プログラム実行時、PC内部でどんなことが起きているのかが解説されています。なお、プログラムとは、コンピュータが行う処理を順序立てて記述した命令の集まりです。

 プログラムが実行される過程は、具体的には、次のような流れとなります
1 ユーザーがプログラムの起動を指示
2 OSが、ハードディスクに保存されているプログラムをメモリにコピー(ロード)
3 レジスタの一つであるプログラムカウンタに、プログラムが格納されたメモリ上のアドレス番地(つまりプログラムの先頭番地)を設定
4 CPUの制御装置がプログラムカウンタの値を参照してメモリ上の命令を読み出し、プログラムの実行を開始
5 CPUが1つの命令を実行するたびに、プログラムカウンタの値が命令のサイズ分だけ自動的に増加
6 CPUの制御装置は、プログラムカウンタの値を参照して、メモリから次の命令を読み出して順次実行

 このように、プログラムカウンタがプログラムの流れを決める重要な役割を果たしています。
 すなわち、プログラムカウンタは、
  次に実行する命令が格納されたメモリのアドレスを格納するレジスタ
です。

 なお、レジスタにはいくつかの種類があって、値の種類によって、格納するレジスタの種類は異なります。そのレジスタの種類の一つが、上記「プログラムカウンタ」です。


 プログラムの流れには
1 順次進行
2 条件分岐
3 繰り返し

と、3種類あります。

 順次進行であれば、プログラムカウンタの値は順次増加していくだけですが、プログラムの中に条件分岐や繰り返しがある場合は、それらのマシン語命令が、プログラムカウンタの値を任意のアドレスに設定することになります。
 これによって、前のアドレスに戻って同じ命令を繰り返したり、任意のアドレスにジャンプして分岐ができるというわけです。

 PCを日常的に使っていますが、内部がこのように動いていることは知りませんでした。これまで、PC内部の動作を意識したことはほとんどありません。
 メモリとCPUの間で、命令やデータのやり取りが一つ一つ丁寧に行われているんですね。しかも、それがごく短時間で、いえいえ短時間とまでもいかないくらいの瞬時に、超高速で行われているのだから驚きです。すごいことです。

 これまで、当たり前のこととしてPCを使っていました。
 が、今回の読書で、内部の動作を詳しく知り、コンピューターのことがより身近に感じられるようになりました。


プログラムはなぜ動くのか(第3版)


それでは、また次の記事で
goosyun

コメント一覧

goosyun
narkejp さん
 目の付け所がシャープですね。
 私は、適当に眺めて、適当に掲載していました。
 
 PCとノートの併用は、むつかしいですね。
私ならば、
1 ノートを参照するのならば、キーボードが手前
2 メモ等をする場面ならばPCのテキストエディタなどで済ませられるから、ノートを拡げることはない
となります。
 ・・・・ということで、掲載の画像のような使い方(ノートがキーボードの手前)は、まずないでしょうね。
narkejp
テーマとは関係ない話ですみませんが、画像のノート、開いた上にらせん形の重しが載っているように見えますね。らせん綴じノートという表現がAIにはわからなかったのかもしれません(^o^)/
もう一つ、ノートとキーボードの位置関係、ノートが手前にある場合とキーボードが手前にある場合とで、どうも活動の種類が違うような気がします。あ、これ私の記事ネタにしよう(^o^)/
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「自宅PC」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事