「コンピュータシステムの深い理解。」速読

今週の読み込み速度、「コンピュータシステムの深い理解、」本、この本は、プログラマの観点から、コンピュータシステムの内部の仕組みを説明する方法を正し、性能や実用的な影響の実用的なアプリケーションの性質のいくつかの概念を提示し自然。収穫次のように:

プロセスとスレッドの1、

  • プロセスは、システムリソースの割り当てとスケジューリングの基本単位である、コンピュータプログラムが実行されたプログラムを実行するオペレーティング・システムの抽象概念が参照され、基礎となるオペレーティング・システム・アーキテクチャです。
  • スレッドは時々軽量プロセスと呼ばれ、オペレーティング・システムは、操作のスケジューリングが可能な最小単位です。スレッドは、スレッドは、独自のシステムリソースを所有していない、物理的なプロセスであり、必要不可欠なリソースの動作に少しだけを持っていますが、それはプロセスの他のスレッドと共有することができるのと同じプロセスに属するほとんど同じプロセス、すべてのリソースを持っていますこれは、スレッド間で同時に実行することができます。

図2に示すように、いくつかのデータ転送命令

  • MOVL:ダブル・ワードを転送し、ソースオペランド指定された値、即値であってもよいし、レジスタまたはメモリに格納することができます。オペランド位置がレジスタまたはメモリのアドレスにすることができ、宛先を指定します。
  • MOVW:一方のオペランドは、次の図では8バイトの要素であるため、レジスタ、レジスタである場合、2つのバイトを送信します。
  • MOVB:オペランドレジスタ、バイトを送信する8は、図中の次の要素のための単一のバイトレジスタを有します。
  • movsblとmovzbl責任コピーバイト、残りのビットでデスティネーションオペランドに設定してください。
    • Movsblソース・オペランドは、単一バイトであり、最も高いソースのための24のバイトを高く設定し、デスティネーションダブルワードにコピーします。
    • Movzblソース・オペランドは、宛先ダブルワードにコピーされ、32 0延長部24が先行シングルバイトです。

3、レジスタの使用規則

    IA32采用了一组统一的寄存器使用惯例,根据惯例,寄存器eax、edx、ecx被划分为调用者保存寄存器,当过程P调用Q时,Q可以覆盖这些寄存器,二不会破坏任何P所需要的数据;ebx、esi、edi被划分为被调用者保存寄存器,这意味着Q必须在覆盖这些寄存器之前,将这些寄存器中的值保存到栈中,并在返回前恢复它们,因为P可能会在今后的计算中需要这些值。由此根据惯例,必须保持寄存器ebp、esp。

4、アムダールの法則

    Gene Amdahl做出了一个关于提高系统一部分性能的效果的简单但富有洞察力的观察,被称为Amdahl定律。其主要思想是当我们加快系统一个部分的速度时,对系统整体性能的影响依赖于这个部分有多重要和速度提高了多少。
    考虑一个系统在其中执行某个应用程序需要时间t,设系统某部分需要这个时间的百分比为a,二我们将它的性能提高到了k倍,因此整个执行时间为T=(1-a)t+(at)/k=t[(1-a)+a/k],由此可以得出加速S=1/[(1-a)+a/k]。例如原来占用60%时间的部分提高到了三倍即a=0.6,k=3,此时加速S=1.67。可以看出我们大幅度改进了系统的一个主要部分,但是净加速还是很小。
    所以Amdahl定律的主要观点就是要想大幅度提高整个系统的速度,必须提高整个系统很大一部分的速度。

5、キャッシュライン、グループとブロックの違いは何ですか?

  • ブロックキャッシュと居住の間で前後に送信固定サイズのパケットです。
  • 行は、容器内のキャッシュブロックと他の情報に格納されています。
  • グループは、1つまたは複数の行のコレクション、直接マッピングされたキャッシュセットアソシアティブつのみの行から成る群、及び複数の行の完全連想キャッシュのルームメイト基です。
    グループとダイレクトマップキャッシュラインは等価であるが、両方連想キャッシュを混在させることはできません。

6、リロケーション手順:

移転は、2つのステップで構成されています。

  • リロケーションセクションとシンボル定義。リンカーは、重合の同じ種類の新しいセクションにすべての同じタイプのセクションをしたい、との重合実験の新しいセクションに割り当てられ、次いでリンカーメモリアドレス、各ノードは、入力モジュール定義に割り当てられ、入力モジュールに割り当てられて定義されます各シンボル。これが達成されると、プログラムの各命令とグローバル変数は、実行時の独特のメモリアドレスを持っています。
  • リファレンスシンボル再配置セクション。リンカー部分は、再配置テーブルのデータ構造の再配置可能なオブジェクトモジュールの目的に依存し、この工程を行う、それらが正しいランタイムアドレスを指し示すように、それぞれの参照シンボルのコードとデータセクションを修正します。

測定機能はgettimeofdayに基づいて7、

現在の日付と時刻を決定するために、このライブラリ関数クエリシステムクロックを使用します。時間のこの機能は、渡さ呼び出し元の構造に書き込まれ、フィールド単位を含むこのような構造はSであり、そしてマイクロ秒のフィールド装置。

8、ガベージコレクション

ガベージコレクションは、それが自動的にもはやプログラムをリリースしゴミと呼ばれている割り当てられたブロックを必要とし、動的なメモリアロケータではありません。ガベージコレクションと呼ばれるヒープメモリのプロセスの自動回復。システムでガベージコレクションのためのサポート、アプリケーションが明示的にヒープブロックが割り当てられますが、明示的に解放しません。Cプログラムのコンテキストでは、アプリケーションは、malloc関数を呼び出しますが、自由呼び出すことはありません。ガベージコレクタは、定期的に無料のリストに戻って、空きブロックをスパムブロックに対応する呼び出しとを識別します。

おすすめ

転載: www.cnblogs.com/fanxiaonan/p/11746217.html