コンピュータ・システム ―プログラマの視点から(電子書籍版)

出版社: 丸善出版
著者:
発行日: 2019-03-29
分野: 基礎・関連科学  >  基礎医学関連科学一般
ISBN: 9784621302019
電子書籍版: 2019-03-29 (電子書籍版)
電子書籍
章別単位での購入はできません
ブラウザ、アプリ閲覧

17,600 円(税込)

商品紹介

コンピュータ・システムの構造と設計についての多様な側面がプログラマの視点から書かれた一冊。コンピュータ・システムに関する書籍には、ハードウェア・アーキテクチャ、オペレーティング・システム、コンパイラ、ネットワークなど、システムのある一側面について作り手の視点から著されたものが多いなか、本書ではそれらのシステム全体に関する知識をどう活用すればよいプログラムを書けるのか、それらがプログラムの正しさ、性能、利便性にどう影響するかがプログラマの観点から統一的に著されている。本書はx86-64マシン・コードを実行可能なマシンでLinux上のCプログラムがどう動くかに焦点を当てており、読者はすぐに試してみて結果をじかに見ることができる。カーネギー・メロン大学のコンピュータ科学入門コースから生まれた世界的に定評のある教科書の第3版の翻訳。

目次

  • 表紙
  • 監訳者まえがき
  • 序文
  • 著者紹介
  • 監訳者・訳者一覧
  • 目次
  • 第1章 コンピュータ・システム・ツアー
  • 1.1 情報はビット + コンテクストである
  • 1.2 プログラムは別のプログラムによって別の形に翻訳される
  • 1.3 言語システムの働きを理解することは割に合う
  • 1.4 プロセッサはメモリに格納された命令を読んで解釈する
  • 1.5 キャッシュが性能を左右する
  • 1.6 ストレージ・デバイスは階層を形成する
  • 1.7 オペレーティング・システムがハードウェアを管理する
  • 1.8 システムはネットワークを使って他のシステムと通信する
  • 1.9 重要なテーマ
  • 1.10 まとめ
  • 書誌ノート
  • 練習問題の解答
  • 第I部 プログラムの構造と実行
  • 第2章 情報の表現と操作
  • 2.1 情報の格納
  • 2.2 整数の表現
  • 2.3 整数演算
  • 2.4 浮動小数点数
  • 2.5 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第3章 プログラムのマシン・レベルの表現
  • 3.1 歴史的な視点
  • 3.2 プログラムのエンコーディング
  • 3.3 データ・フォーマット
  • 3.4 情報へのアクセス
  • 3.5 算術および論理演算
  • 3.6 制御
  • 3.7 プロシージャ
  • 3.8 配列の配置とそのアクセス
  • 3.9 非均質データ構造
  • 3.10 マシン・レベル・プログラムにおける制御とデータの組み合わせ
  • 3.11 浮動小数点コード
  • 3.12 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第4章 プロセッサ・アーキテクチャ
  • 4.1 Y86 - 64命令セット・アーキテクチャ
  • 4.2 論理設計とハードウェア制御言語HCL
  • 4.3 シーケンシャルなY86 - 64の実装
  • 4.4 パイプライン処理の一般的な原理
  • 4.5 パイプライン化されたY86 - 64の実装
  • 4.6 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第5章 プログラム性能の最適化
  • 5.1 最適化コンパイラの機能とその限界
  • 5.2 プログラム性能の表現
  • 5.3 プログラム例
  • 5.4 ループ非効率性の除去
  • 5.5 関数呼び出しの削減
  • 5.6 不要なメモリ参照の削除
  • 5.7 最新のプロセッサを理解する
  • 5.8 ループ・アンローリング
  • 5.9 並列性の強化
  • 5.10 コンバイン・コードの最適化に対する結果のまとめ
  • 5.11 いくつかの制限事項
  • 5.12 メモリ性能を理解する
  • 5.13 現実世界での生活 : 性能向上のテクニック
  • 5.14 性能ボトルネックを明確にし削除する
  • 5.15 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第6章 メモリ階層
  • 6.1 ストレージの技術
  • 6.2 局所性
  • 6.3 メモリ階層
  • 6.4 キャッシュ・メモリ
  • 6.5 キャッシュに優しいコードを書く
  • 6.6 まとめ : プログラム性能に対するキャッシュの影響
  • 6.7 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第II部 コンピュータ・システム上でのプログラムの実行
  • 第7章 リンク
  • 7.1 コンパイラ・ドライバ
  • 7.2 静的リンク
  • 7.3 オブジェクト・ファイル
  • 7.4 再配置可能オブジェクト・ファイル
  • 7.5 シンボルおよびシンボル・テーブル
  • 7.6 シンボル解決
  • 7.7 再配置
  • 7.8 実行可能オブジェクト・ファイル
  • 7.9 実行可能オブジェクト・ファイルのロード
  • 7.10 共有ライブラリの動的リンク
  • 7.11 アプリケーションからの共有ライブラリのロードおよびリンク
  • 7.12 ポジション非依存コード ( PIC )
  • 7.13 ライブラリのインターポジショニング
  • 7.14 オブジェクト・ファイルを操作するツール
  • 7.15 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第8章 例外的な制御フロー
  • 8.1 例外
  • 8.2 プロセス
  • 8.3 システム・コールにおけるエラー・ハンドリング
  • 8.4 プロセス制御
  • 8.5 シグナル
  • 8.6 非局所的ジャンプ
  • 8.7 プロセスを扱うためのツール
  • 8.8 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第9章 仮想メモリ
  • 9.1 物理アドレシングと仮想アドレシング
  • 9.2 アドレス空間
  • 9.3 キャッシュするツールとしてのVM
  • 9.4 メモリ管理ツールとしてのVM
  • 9.5 メモリ保護ツールとしてのVM
  • 9.6 アドレス変換
  • 9.7 ケース・スタディ : Intel Core i7 / Linux メモリ・システム
  • 9.8 メモリ・マッピング
  • 9.9 動的なメモリ割り当て
  • 9.10 ごみ集め
  • 9.11 Cプログラムでよくあるメモリ関連のバグ
  • 9.12 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第III部 プログラム間のやり取りと通信
  • 第10章 システム・レベルI / O
  • 10.1 UNIX I / O
  • 10.2 ファイル
  • 10.3 ファイルのオープン・クローズ
  • 10.4 ファイルの読み書き
  • 10.5 RIOパッケージを用いたロバストな読み書き
  • 10.6 ファイルのメタデータの読み込み
  • 10.7 ディレクトリの中身の読み込み
  • 10.8 ファイル共有
  • 10.9 I / Oのリダイレクト
  • 10.10 標準I / O
  • 10.11 まとめ : どのI / O関数を用いるべきか ?
  • 10.12 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第11章 ネットワーク・プログラミング
  • 11.1 クライアント・サーバ・プログラミング・モデル
  • 11.2 ネットワーク
  • 11.3 グローバルIPインターネット
  • 11.4 ソケット・インターフェース
  • 11.5 ウェブ・サーバ
  • 11.6 まとめ : TINYウェブ・サーバ
  • 11.7 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 第12章 並行プログラミング
  • 12.1 プロセスによる並行プログラミング
  • 12.2 I / Oマルチプレクシングによる並行プログラミング
  • 12.3 スレッドによる並行プログラミング
  • 12.4 スレッド・プログラムにおける共有変数
  • 12.5 セマフォによるスレッドの同期
  • 12.6 並行処理のためのスレッドの使い方
  • 12.7 他の並行性問題
  • 12.8 まとめ
  • 書誌ノート
  • ホームワーク
  • 練習問題の解答
  • 付録A エラー・ハンドリング
  • A.1 UNIXシステムにおけるエラー・ハンドリング
  • A.2 エラー・ハンドリング・ラッパー
  • 参考文献
  • 索引
  • 奥付

おすすめ商品

最近チェックした商品履歴

Loading...