CS:APP コンピュータ・システム
プロセス スレッド セマフォによるスレッドの同期 並行性の問題 感想 12章について この章では、並行プログラミングを書くための基本的なメカニズムについて説明されていました。 プロセス、スレッド、マルチプレクシングと異なる手法を用いた実装方法をはじ…
ネットワーク グローバルIPインターネット IPアドレス インターネット・コネクション ウェブの基本の話 感想 11章について この章では、これまで学んできたことを結びつけてネットワークの概念について説明してありました。 最終的にシンプルなWebサーバーの…
ファイルあれこれ カーネルのファイル管理 標準I/O 感想 10章について この章では、ファイルやディレクトリプタといったUNIX I/Oの基本的なコンセプトについて説明されていました。 Webサーバの実装や並行プログラミングにつながる章となっています。 以下ま…
仮想メモリの特徴 キャッシュの構成 ページ・テーブル アドレス変換 Linux の仮想メモリ・システム 共有オブジェクト コピー・オン・ライト 動的メモリ・アロケータ 断片化(フラグメンテーション) ガーベジコレクション 感想 9章について この章では、メモリマッ…
例外的な制御フローって? 例外 プロセス 平行と並列 コンテクスト・スイッチ システム・コールにおけるエラー・ハンドリング プロセスの生成と終了 シグナル 非局所的ジャンプ 感想 8章について この章では、制御フローについて学んでいきます。 例外的な制御…
リンクとは? 静的リンク オブジェクト・ファイル シンボル マングリング ライブラリが必要な理由 再配置 共有ライブラリって? ポジション非依存コード(PIC) インターポジショニング 感想 7章について この章では、そもそもリンクとはなんだろう?ということ…
メモリ階層 ストレージの技術 DRAMの種類 メイン・メモリへのアクセス ディスク・ストレージ 半導体ディスク (SSD) 局所性 キャッシュ ライトに関する問題 キャッシュ・パラメタの性能への影響 感想 6章について この章では、メモリ階層ごとの特性や回転ディス…
プログラムの最適化 最適化コンパイラ コードレベルの最適化 スーパースカラ 投機実行 レジスタ関連 ループ・アンローリング 条件付き移動 write/read依存 性能向上の4つのテクニック 感想 5章について この章では、コードの性能を向上させる数多くのテクニッ…
ISA(命令セット・アーキテクチャ) プログラマ・ビジブルって? ハードウェア設計 レジスタファイル シーケンシャルなプロセッサ(SEQ) 処理ステージの説明 パイプライン処理 効率低下の要因 パイプライン・ハザードとは? 例外処理 感想 4章について この章では…
高水準言語と低水準言語 マシン・レベル・コード 符号拡張 データ移動 ジャンプ命令 データ転送と制御転送 プロシージャ ポインタ演算 配列の格納 構造体と共用体 アラインメント制約 バッファ・オーバーフロー セキュリティ対策 感想 3章について この章では、…
データ・サイズ エンディアンとは? 論理処理とシフト演算 符号付きと符号なしキャスト 加算 乗算と除算 浮動小数点 IEEE浮動小数点表現 浮動小数点演算 感想 2章について この章では、コンピュータ上における数値の扱い方について詳しく書かれていました。 I…
そもそもCSAPPとは? コンピュータ・システムとは? .cファイルからa.outを作成する システムのハードウェア構成 キャッシュの重要性 オペレーティング・システム 平行性と並列性 抽象化って? 感想 そもそもCSAPPとは? コンパイラやリンカ、メモリの仕組み…