8000 GitHub - shima8823/csapp: 「コンピュータ・システム プログラマの視点から」の演習問題を解く
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

「コンピュータ・システム プログラマの視点から」の演習問題を解く

Notifications You must be signed in to change notification settings

shima8823/csapp

Repository files navigation

CS:APP

コンピュータ・システム プログラマの視点から(Computer Systems: A Programmer’s Perspective)の練習問題を解いたリポジトリ

興味を惹いたもの

  • Ch 3 - なぜアセンブリを学ぶのか?
    "現代の最適化コンパイラを用いれば、通常は、生成されたコードは少なくとも熟練のアセンブリ言語プログラマが手で書いたコードと同等に効率的である。" p129 ->昨今のAIの状況と似ている
    ...
    アセンブリを調べることで、どの程度効率的にプログラムされるか、並行プログラムの共有データがどこでアクセスされるか、プログラムの脆弱性はどのようにして生じ、保護するか理解するにはマシン・レベル表現の知識が必要であある。
  • Ch 3 - 分岐予測ロジック
    "最新のマイクロプロセッサの設計では、90%オーダの成功率を達成することを目指している" p171
  • Ch 3 - 共用体が確保するサイズ p2 581D 13
  • Ch 3 - バッファ・オーバーフロー攻撃
    スタック・ランダマイゼーション, スタック破壊の検出(カナリア)
  • Ch 4 - パイプライン
    PC(プログラム・カウンタ)の計算、命令間に依存関係がある場合の問題-パイプライン・ハザード
  • Ch 5 - プログラムの最適化
    インライン展開、不要なメモリ参照の削除、ループアンローリング。並列処理(パイプライン化されたコンピュータ)の場合:複数の累積機、再結合変換(演算によって命令数が違うため)
  • Ch 6 - キャッシュに優しいコード
    キャッシュ・ミスの数を最小化する、内側ループへ着目、メモリマウンテン
  • Ch 7 - リンカは重複するシンボル名をどのように解決するのか
    同名のstrongシンボルは禁止、strong or weakシンボル場合はstrong、同名weakシンボルは任意の一つ
  • Ch 7 - 共有ライブラリを再配置なしにロード可能なPIC(ポジション非依存コード)
  • Ch 8 - 例外のクラス
    割り込み(interrupt)、トラップ(trap)、フォールト(failt)、アボート(abort)
  • Ch 9 - 仮想メモリのアドレス変換
    TLB(トランスレーション・ルックアサイド・バッファ)による高速化
  • Ch 9 - アロケータの実装
  • Ch 10 - カーネルのファイル共有
    デスクリプタ・テーブル、ファイル・テーブル、v-ノード・テーブル、プロセス共有はFalse, True, True
  • Ch 11 - Tiny Web Server
    CGIを使った動的コンテンツの適用
  • Ch 12 - I/Oマルプレクシング(多重化)による並行プログラミング
    Select、監視。Node.js, nginx, Tornadoで使われている

About

「コンピュータ・システム プログラマの視点から」の演習問題を解く

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0