OSの仕組みの絵本
Windows, Linux・・・仕事でいろいろなOSに触っているけれど、基本知識が理解できていないと感じることがあるので、浅く広くまず俯瞰する。
- OSの勉強を始める前に
- OS: Operating System: 基本ソフトウェア
- プロセス管理、メモリ管理、ディスク管理、ネットワーク管理
- BIOS
- POST: Power On Self Test
- OS: Operating System: 基本ソフトウェア
- 第1章 OSの機能
- KEY
- コンピュータ五大装置
- 制御装置、演算装置、記憶装置、入力装置、出力装置
- カーネル、シェル
- 基本ソフトウェア、ミドルウェア、応用ソフトウェア
- API: Application Programming Interface
- コンピュータ五大装置
- パソコン起動
- BIOS: Basic Input Output System
- カーネル
- ユーザからは不可視(シェルに包まれている)
- ユーザ入力→シェル解釈、カーネルに処理依頼→カーネル処理
- システムコール: カーネルがシェルに提供している機能
- ユーザ入力→シェル解釈、カーネルに処理依頼→カーネル処理
- ユーザからは不可視(シェルに包まれている)
- シェル
- I/Oポート
- 記憶装置
- レジスタ(小、速)
- 内部記憶(中、並)
- 外部記憶(大、遅)
- 性能差緩和にキャッシュを用いている
- プログラミング
- KEY
- 第2章 CPUとプロセス
- KEY
- ジョブとタスク
- ジョブ: 人間から見た仕事単位。複数のプログラム実行を含む。
- ジョブ管理: OSはジョブの順序や処理結果を管理する。
- ジョブステップ: ジョブを小さく分けた処理単位
- ジョブ制御言語: JCL: ジョブの実行方法を制御する言語
- タスク: OSから見た作業単位。OSはジョブステップをタスクに分解してCPUに処理を依頼する。
- ジョブ→ジョブステップ→タスク
- スループット
- レスポンスタイム: CPUの実処理時間
- ターンアラウンドタイム: 処理条件の入力 + CPUの実処理時間 + 処理結果の出力時間
- スプール: CPUから入出力装置への命令を高速な記録装置に一時保存すること。
- プリンタでよく見るアレ。プリンタ遅い→CPU持ってるデータを先出しする必要性
- 割り込み: interrupt
- プロセス
- TSS: タイムシェアリングシステム
- プロセス管理
- ディスパッチ: CPU実行権割り当て
- プリエンプション: 割り当て解除
- マルチタスク
- プリエンティブ: 実行可能状態のタスクに実行権を割り当て、タイムスライスごとに強制的に切り替えていく管理。現在の主流。
- ノンプリエンティブ: タスクが終了するまで他のタスクにCPU実行権を譲らない管理。CPU解放しないタスクがいると、OS全体が停止する恐れあり。
- プロセス制御
- プログラム状態語: PSW: Program Status Word
- 割り込みで中断したプログラム状態、演算の終了状態を保存しておくレジスタ。CPUの話。64bit程度(英単語程度)なので「語」と呼ぶ。
- プロセス制御ブロック: PCB: Process Control Block
- 各プロセスのCPU状態(コンテキスト)/プロセス状態を保存するメモリ領域のこと。メモリの話。
- コンテキストスイッチ
- OSが割り込みによってプロセスを切り替えるとき、OSがPCBにコンテキストを保存、復元する処理のこと
- スケジューリング
- プログラム状態語: PSW: Program Status Word
- プロセスの分岐
- プロセスの同期
- 排他制御
- セマフォ: カウンタをP操作(獲得)/V操作(解放)で制御する
- クリティカルセクション: P操作〜V操作の間の排他制御が必要な部分
- デッドロック: 2プロセスによる半永久的待ち状態のこと。が別々の共有資源をロックしたまま、相手のロックしている共有資源にアクセスしようとするときに発生。
- プロセス間通信
- メッセージキュー
- パイプ: 複数プロセスの入出力をつなぐ。forkした親子プロセス間。
- 名前つきパイプ: 親子プロセス以外でのパイプは紐付けのために名前が必要。
- ? ll | wc -l ←この"|"は名前なしパイプであってる?
- 共有メモリ: システムコールにより生成される複数プロセスで共有できるメモリ領域。
- アタッチ: 共有メモリに接続すること
- デタッチ: 共有メモリから切断すること
- スレッド: プロセス内のプログラム実行の流れのこと。分岐が可能。マルチスレッド。
- スレッドとプロセスの違い
- プロセス: プロセス固有のメモリ空間。
- スレッド: 同プロセスのスレッドは同じメモリ空間を参照。省メモリ。CPU占有の最小単位: ライトウエイトプロセス
以下未読
- 第3章 メモリ管理
- 第4章 ディスク管理
- 第5章 ネットワーク管理
- 第6章 Windows
- 第7章 Linux
- 第8章 MacOSとその他OS
- 付録