ryo’s blog

日々学んだことをまとめています.

CS:APP コンピュータ・システム

第12章 並行プログラミング

プロセス スレッド セマフォによるスレッドの同期 並行性の問題 感想 12章について この章では、並行プログラミングを書くための基本的なメカニズムについて説明されていました。 プロセス、スレッド、マルチプレクシングと異なる手法を用いた実装方法をはじ…

第11章 ネットワーク・プログラミング

ネットワーク グローバルIPインターネット IPアドレス インターネット・コネクション ウェブの基本の話 感想 11章について この章では、これまで学んできたことを結びつけてネットワークの概念について説明してありました。 最終的にシンプルなWebサーバーの…

第10章 システム・レベルI/O

ファイルあれこれ カーネルのファイル管理 標準I/O 感想 10章について この章では、ファイルやディレクトリプタといったUNIX I/Oの基本的なコンセプトについて説明されていました。 Webサーバの実装や並行プログラミングにつながる章となっています。 以下ま…

第9章 仮想メモリ

仮想メモリの特徴 キャッシュの構成 ページ・テーブル アドレス変換 Linux の仮想メモリ・システム 共有オブジェクト コピー・オン・ライト 動的メモリ・アロケータ 断片化(フラグメンテーション) ガーベジコレクション 感想 9章について この章では、メモリマッ…

第8章 例外的な制御フロー

例外的な制御フローって? 例外 プロセス 平行と並列 コンテクスト・スイッチ システム・コールにおけるエラー・ハンドリング プロセスの生成と終了 シグナル 非局所的ジャンプ 感想 8章について この章では、制御フローについて学んでいきます。 例外的な制御…

第7章 リンク

リンクとは? 静的リンク オブジェクト・ファイル シンボル マングリング ライブラリが必要な理由 再配置 共有ライブラリって? ポジション非依存コード(PIC) インターポジショニング 感想 7章について この章では、そもそもリンクとはなんだろう?ということ…

第6章 メモリ階層

メモリ階層 ストレージの技術 DRAMの種類 メイン・メモリへのアクセス ディスク・ストレージ 半導体ディスク (SSD) 局所性 キャッシュ ライトに関する問題 キャッシュ・パラメタの性能への影響 感想 6章について この章では、メモリ階層ごとの特性や回転ディス…

第5章 プログラム性能の最適化

プログラムの最適化 最適化コンパイラ コードレベルの最適化 スーパースカラ 投機実行 レジスタ関連 ループ・アンローリング 条件付き移動 write/read依存 性能向上の4つのテクニック 感想 5章について この章では、コードの性能を向上させる数多くのテクニッ…

第4章 プロセッサ・アーキテクチャ

ISA(命令セット・アーキテクチャ) プログラマ・ビジブルって? ハードウェア設計 レジスタファイル シーケンシャルなプロセッサ(SEQ) 処理ステージの説明 パイプライン処理 効率低下の要因 パイプライン・ハザードとは? 例外処理 感想 4章について この章では…

第3章 プログラムのマシン・レベルの表現

高水準言語と低水準言語 マシン・レベル・コード 符号拡張 データ移動 ジャンプ命令 データ転送と制御転送 プロシージャ ポインタ演算 配列の格納 構造体と共用体 アラインメント制約 バッファ・オーバーフロー セキュリティ対策 感想 3章について この章では、…

第2章 情報の表現と操作

データ・サイズ エンディアンとは? 論理処理とシフト演算 符号付きと符号なしキャスト 加算 乗算と除算 浮動小数点 IEEE浮動小数点表現 浮動小数点演算 感想 2章について この章では、コンピュータ上における数値の扱い方について詳しく書かれていました。 I…

第1章 コンピュータ・システム・ツアー

そもそもCSAPPとは? コンピュータ・システムとは? .cファイルからa.outを作成する システムのハードウェア構成 キャッシュの重要性 オペレーティング・システム 平行性と並列性 抽象化って? 感想 そもそもCSAPPとは? コンパイラやリンカ、メモリの仕組み…