内容梗概
オペレーティングシステム(OS)は、利用者やアプリケーションプログラムに対して共通的な機能を提供すると共に、ハードウェアを効率良く利用するための基盤ソフトウェアである。そのオペレーティングシステムを基本的な機能を提供する仮想計算機とより高度なサービスを提供するサブシステムに分類し、その分類に基づいてオペレーティングシステムの基本的な概念と機構、および、それらの関係が理解できるよう解説する。オペレーティングシステムにおける資源管理やスケジューリングなどの考え方をコンピュータ以外の生活や社会において応用できる身近な例を示すなどして、理解が深まるよう解説を行う。
章目次
- オペレーティングシステムとは
- 実行管理
- 同期・通信
- デバイス管理
- 記憶領域管理
- 仮想記憶
- ファイルシステム
- ネットワーク
- 並列・分散処理
- ユーザインタフェース
- 保護とセキュリティ
- 構成法と事例
- 歴史と展望
1.から6. は、OSの仮想計算機としての側面を解説
7.から11.は、OSのサービス提供システムとしての側面を解説
詳細目次
- 1 オペレーティングシステムとは
- 1.1 重要な概念
- 1.2 コンピュータの構造
- 1.3 オペレーティングシステム構造
- 1.4 仮想計算機としてのオペレーティングシステム
- 1.4.1 仮想プロセッサ
- 1.4.2 仮想デバイス
- 1.4.3 仮想メモリ
- 1.5 サービス提供システムとしてのオペレーティングシステム
- 1.6 オペレーティングシステムの構造,機能,運用法
- 2 実行管理
- 2.1 実行主体
- 2.2 入出力処理とアイドル状態
- 2.3 マルチタスキング
- 2.4 実行状態
- 2.5 実行モード
- 2.6 割込み
- 2.6.1 ベクタ割込みとポーリング
- 2.6.2 割込み処理の流れ
- 2.6.3 割込みレベル
- 2.6.4 タイマ割込み
- 2.7 ディスパッチャ
- 2.8 実行スケジューリング
- 2.8.1 タイミング
- 2.8.2 優先度付与基準
- 2.9 実行スケジューリング・アルゴリズム
- 2.9.1 先着順
- 2.9.2 時間順
- 2.9.3 ラウンドロビン
- 2.9.4 実時間スケジューリング
- 2.9.5 締切順
- 2.9.6 レート・モノトニック
- 3 同期・通信
- 3.1 同期・排他制御
- 3.1.1 相互排除の条件
- 3.1.2 割込み禁止
- 3.1.3 フラグ
- 3.1.4 不可分命令
- 3.1.5 ビジーウェイト
- 3.2 セマフォ
- 3.3 モニタ
- 3.4 優先度逆転
- 3.4.1 優先度継承アルゴリズム
- 3.4.2 優先度上限アルゴリズム
- 3.5 デッドロック
- 3.6 デッドロック解決法
- 3.6.1 防止
- 3.6.2 回避
- 3.6.3 回復
- 3.6.4 楽観的同期
- 3.7 情報交換
- 3.7.1 メッセージ通信
- 3.7.2 同期式・非同期式通信
- 3.7.3 メモリ上の情報交換方式
- 3.1 同期・排他制御
- 4 デバイス管理
- 4.1 デバイス
- 4.1.1 デバイスコントローラ
- 4.1.2 デバイスの入出力
- 4.1.3 ダイレクトメモリアクセス
- 4.1.4 バス
- 4.1.5 状態変化の検出
- 4.2 デバイスの分類
- 4.3 デバイスドライバ
- 4.4 バッファリング
- 4.4.1 ダブルバッファ
- 4.4.2 バッファプール
- 4.4.3 リングバッファ
- 4.5 ブロッキング
- 4.6 スプーリング
- 4.7 ディスク装置
- 4.7.1 ボリューム
- 4.7.2 ハードディスクの構造
- 4.7.3 アクセス時間
- 4.8 ディスクアクセススケジューリング
- 4.8.1 先着順
- 4.8.2 最短シーク時間
- 4.8.3 SCAN
- 4.8.4 C-SCAN
- 4.8.5 LOOKとC-LOOK
- 4.8.6 ディスクアクセススケジューリング例
- 4.8.7 ハードディスク装置の発展
- 4.9 予測に基づいたアクセス高速化技法
- 4.9.1 プリフェッチ
- 4.9.2 キャッシング
- 4.10 表示装置
- 4.11 プラグ・アンド・プレイ
- 4.1 デバイス
- 5 記憶領域管理
- 5.1 アドレス
- 5.2 記憶領域の基本管理手法
- 5.2.1 可変長領域管理
- 5.2.2 固定長領域管理
- 5.2.3 ブロック管理方式
- 5.3 コンパクション
- 5.4 ガーベジコレクション
- 5.5 ページング
- 5.5.1 ページテーブル
- 5.5.2 多段ページテーブル
- 5.5.3 逆ページテーブル
- 5.5.4 アドレス変換キャッシュ
- 5.5.5 ページ共有
- 5.5.6 ページ保護
- 5.6 セグメンテーション
- 6 仮想記憶
- 6.1 オーバーレイ
- 6.2 仮想記憶システム
- 6.3 プロセス・スワッピング
- 6.4 デマンドページング
- 6.4.1 処理の流れ
- 6.4.2 ページアウト・デーモン
- 6.5 参照の局所性
- 6.5.1 ワーキングセットモデル
- 6.5.2 ページフォールト率
- 6.6 置換えアルゴリズム
- 6.6.1 FIFO
- 6.6.2 OPT
- 6.6.3 LRU
- 6.6.4 クロック・アルゴリズム
- 6.7 スラッシング
- 7 ファイルシステム
- 7.1 ファイル
- 7.2 ファイルシステムの機能
- 7.3 名前空間
- 7.3.1 ディレクトリ
- 7.3.2 階層ディレクトリ
- 7.3.3 ハッシュ表
- 7.4 ファイルの属性
- 7.5 ファイルの内容領域管理
- 7.5.1 FATファイルシステム
- 7.5.2 UNIXファイルシステム
- 7.6 リンク
- 7.7 メモリ・マップト・ファイル
- 7.8 ログ構造ファイルシステム
- 7.9 耐故障性
- 7.9.1 ジャーナリング・ファイルシステム
- 7.9.2 耐故障性ディスク
- 8 ネットワーク
- 8.1 データ交換モデル
- 8.1.1 回線交換モデル
- 8.1.2 パケット交換モデル
- 8.2 ネットワーク・トポロジ
- 8.2.1 代表的トポロジ
- 8.2.2 物理構造と論理構造
- 8.3 プロトコル
- 8.4 インターネットプロトコル
- 8.4.1 アドレス
- 8.4.2 カプセル化
- 8.4.3 ヘッダ構造
- 8.5 グループ通信方式
- 8.6 URI
- 8.1 データ交換モデル
- 9 並列分散処理
- 9.1 分散処理
- 9.2 クライアント・サーバ・モデル
- 9.3 遠隔手続き呼出し
- 9.3.1 データ表現
- 9.3.2 遠隔手続き呼出しセマンティクス
- 9.4 遠隔共有
- 9.4.1 デバイス遠隔共有
- 9.4.2 分散共有ファイル
- 9.4.3 分散共有メモリ
- 9.5 分散キャッシュ
- 9.5.1 キャッシュ・コヒーレンス
- 9.5.2 メッセージ通信とメモリ共有の双対性
- 9.6 並列処理
- 演習問題
- 10 ユーザインタフェース
- 10.1 キャラクタユーザインタフェース
- 10.2 グラフィカルユーザインタフェース
- 10.3 ウィンドウシステム
- 10.4 国際化・地域化
- 10.4.1 ロケール
- 10.4.2 文字コード
- 10.4.3 符号化方式
- 10.5 インプットメソッド
- 10.5.1 フロントエンド方式とバックエンド方式
- 10.5.2 変換エンジン
- 11 保護とセキュリティ
- 11.1 保護
- 11.1.1 アクセス制御行列
- 11.1.2 ケーパビリティリスト
- 11.1.3 アクセス制御リスト
- 11.1.4 ロック・キー機構
- 11.2 束モデル
- 11.3 暗号
- 11.3.1 共通鍵暗号
- 11.3.2 公開鍵暗号
- 11.4 認証
- 11.4.1 データ認証
- 11.4.2 ユーザ認証
- 11.4.3 公開鍵基盤
- 11.5 セキュリティ
- 11.6 悪意のあるソフトウェア
- 11.6.1 トロイの木馬
- 11.6.2 スパイウェア
- 11.6.3 コンピュータウィルス
- 11.6.4 ワーム
- 11.6.5 ルートキット
- 11.7 攻撃
- 11.7.1 ソーシャル・エンジニアリング
- 11.7.2 サービス不能
- 11.7.3 バッファオーバーラン
- 11.8 防御
- 11.8.1 ワクチン
- 11.8.2 ネットワーク・ファイアウォール
- 11.8.3 サンドボックス
- 11.9 事後の検証
- 11.1 保護
- 12 構成法と事例
- 12.1 関心の分離
- 12.2 構成法
- 12.3 仮想計算機
- 12.3.1 ハードウェア支援による仮想計算機
- 12.3.2 ソフトウェアシミュレーションによる仮想計算機
- 12.4 運用と管理
- 12.4.1 ブートストラップ
- 12.4.2 オペレーティングシステムの初期化
- 12.4.3 オペレーティングシステムの終了
- 12.5 オペレーティングシステム事例
- 12.5.1 Linux
- 12.5.2 Plan9
- 12.5.3 Windows
- 12.5.4 MacOS X
- 12.5.5 ITRON
- 12.5.6 特殊化されたOS
- 13 歴史と展望
- 13.1 オペレーティングシステムの歴史
- 13.2 将来展望
- 引用・参考文献
- 演習問題解答
- 索引