(概要)ITシステムやソフトウェアの開発,運用において,その基盤となるOSやハードウェアのしくみや動作を,具体的にイメージすることができるでしょうか。
本書では,サーバ,クラウドからスマートフォン,IoT機器まで幅広く利用されているLinux OSを対象に,プロセススケジューラ,メモリ管理,記憶階層,ファイルシステム,ストレージデバイスなど,OSとハードウェアに関するしくみがどのように動くのか,実験とその結果を示すグラフを用いてわかりやすく解説します。
(こんな方におすすめ)・Linuxの動作や仕組みに興味がある方
・OSやハードウェアのしくみを手軽に学びたいと考えている方
(目次第1章 コンピュータシステムの概要
第2章 ユーザモードで実現する機能
- システムコール
- システムコールのラッパー関数
- 標準Cライブラリ
- OSが提供するプログラム
第3章 プロセス管理
- 2段階のプロセス生成
- fork()関数
- execve()関数
- 終了処理
第4章 プロセススケジューラ
- 実験プログラムの仕様
- 実験プログラムの実装
- 実験
- 考察
- コンテキストスイッチ
- プロセスの状態
- 状態遷移
- アイドル状態
- さまざまな状態遷移
- スループットとレイテンシ
- 実際のシステム
- 論理CPUが複数の場合のスケジューリング
- 実験方法
- 実験結果
- スループットとレイテンシ
- 考察
- 経過時間と使用時間
- スリープするプロセス
- 現実のプロセス
- 優先度の変更
第5章 メモリ管理
- メモリに関する統計情報
- Out Of Memory
- 単純なメモリ割り当て
- 仮想記憶
- ページテーブル
- 実験
- プロセスへのメモリ割り当て
- 実験
- 上位レイヤによるメモリ割り当て
- 問題の解決
- 仮想記憶の応用
- ファイルマップ
- デマンドページング
- コピーオンライト
- スワップ
- 階層型ページテーブル
- ヒュージページ
第6章 記憶階層
- キャッシュメモリ
- キャッシュメモリがいっぱいになったら
- 階層型キャッシュメモリ
- キャッシュの実験
- 参照の局所性
- まとめ
- Translation Lookaside Buffer
- ページキャッシュ
- 同期書き込み
- バッファキャッシュ
- ファイル読み出しの実験
- ファイル書き込みの実験
- チューニングパラメータ
- まとめ
- ハイパースレッド
第7章 ファイルシステム
- Linuxのファイルシステム
- データとメタデータ
- 容量制限
- ファイルシステムの不整合
- ジャーナリング
- コピーオンライト
- それでも防げない場合
- ファイルシステム不整合への対策
- ファイルの種類
- キャラクタデバイス
- ブロックデバイス
- さまざまなファイルシステム
- メモリベースのファイルシステム
- ネットワークファイルシステム
- 仮想ファイルシステム
- Btrfs
第8章 ストレージデバイス
- HDDのデータ読み書きのしくみ
- HDDの性能特性
- HDDの実験
- 実験プログラム
- シーケンシャルアクセス
- ランダムアクセス
- ブロックデバイス層
- I/Oスケジューラ
- 先読み
- 実験
- SSDのしくみ
- まとめ