201227開発ログ(20日目)-コンピュータシステム整理:第1章コンピュータシステムの旅(1)


コンピュータシステム:A Programmer's Perspectiveという本を整理したいです.少し時間がかかりますが(feat.roko)長い本を読むなら私の言葉で整理しておいた方がいいと思いますので、また読んだ方がいいと思いますので、元の私とは違う道を…
整理する前に、初期には多くの用語の整理が現れるはずです.1枚2回とも読み終えましたほとんど牛の立場に立ってお経を読む.
わあ整理しにくい...がんばってください.

hello.cファイルの理解


プログラマが以下のファイル「hello.c」のコードを作成した場合、これらのファイルを実行するには、いくつかの低レベルのマシンコマンド(??)が必要です.翻訳されるべきです.これらの構造は、「実行可能オブジェクトプログラム」と呼ばれるバイナリディスクファイルとして保存されます.
#include <studio.h>

int main()
{
  printf("hello, world\n");
  return 0;
}
ここでGCCコンパイラドライバはソースファイルhelloです.cを読み取り、実行可能ファイルhelloに翻訳すると、翻訳は以下の4つのステップを実行します.この4つのステップを実行するプログラムをコンパイルシステムと呼ぶ.

コンパイルシステムの動作原理を理解することが重要です

  • プログラムのパフォーマンスの最適化:コンパイラがC文をマシンコードに翻訳する方法を知っている限り、最適化できます.
  • リンクエラーを理解する:通常最も困惑するプログラミングエラーはリンカーの動作に関係している.リンカーに関するエラーは実行するまで現れないので、7章からよく勉強しましょう.
  • セキュリティの弱点を回避する:セキュリティプログラミングの第一歩は、データと制御情報がプログラムスタックに格納される方法によって生じる影響を理解することである.
  • システムのハードウェア組織


    次に、典型的なシステムのハードウェア組織図(?)を示します.はい.
  • CPU(=中央処理ユニット):メインプロセッサまたはプロセッサと呼ばれる.
    1.メインメモリに格納されている構造を解読(実行)するエンジンです.
  • センターには、ワードサイズ記憶装置プログラムカウンタ(PC)があります.
  • 電源が投入されると、内部PC指示での構築が繰り返し実行され、次の構築位置を指すように更新される.
  • すなわち、cpuは、以下の動作を繰り返す.
    4-1. マウント:メインメモリからレジスタにデータをコピー(上書き)する
    4-2. ストレージ(Store):レジスタからプライマリメモリへのデータのコピー(上書き)
    4-3. 操作(Operate):2つのレジスタ値をALUにコピーし、2つのワードで数式演算を行い、結果値をレジスタに上書きする
    4-4. ジャンプ(Jump):構築自体から1文字を抽出し、PC上に上書きする
  • 最新のCPUが
  • を使用する方法は前述の方法よりずっと複雑である.
  • メインメモリ:CPUはプログラムの実行中にすべてのデータとプログラムの一時メモリを記憶する.
    (0.DRAMシリーズのRAM.)
  • は物理的にDRAMチップからなる.
  • 個のプログラムを構成する各マシン言語の構造は、異なるバイトサイズを有する.
  • 入出力デバイス:キーボード、マウス、ディスプレイ、ディスクドライブなどの外部例との接続を担当します.
  • 各I/O機器はコントローラORアダプタを介してI/Oバスに接続されている.
    1-1. コントローラ:デバイス自体がチップセットまたはマザーボードに取り付けられています.
    1-2. アダプタ:マザーボードスロットに取り付けられているカード.
  • バス(Bus):システム内部を貫通する電気配線群
  • は、各コンポーネント間でバイト情報を送信する.
  • は、通常、固定サイズのバイト単位でデータを転送する.現在、ほとんどが32ビットまたは64ビットを使用しています.
  • 今日の用語を整理する

  • バイト(バイト):プログラム内のテキスト文字を表す8ビット(ビット)単位で構成されます.
  • ASCII:アメリカ情報交換規格コードは、英字を用いた代表的な文字符号化である.アスキーは、コンピュータや通信装置などの文字を使用する多くの装置に用いられ、ほとんどの文字符号化はアスキーに基づいている.→アスキーは7ビット符号化で、2^7=128文字からなる.
  • テキストファイル:Asky文字のみからなるファイル.
  • バイナリファイル:テキストファイル以外のすべてのテキストファイル.
  • コンテキスト:
  • は、テキストのように直接理解するオリジナルコンテンツではなく、
  • である.
  • は、コンテキストおよび状況に基づいて理解するより高いレベルの空間、領域
  • を意味する.
  • コンテキストは、コンピュータ内部の現在の状態(例えば、プロセッサ内のレジスタおよびフラグ)のセットである.
  • コンパイルシステム:プリプロセッサ、コンパイラ、アセンブリ、およびリンクプログラムを含むシステム