システムパフォーマンス本を読む〜第3章
About
前回に引き続き、第3章を読んでいきます。
システムパフォーマンス本を読む〜第1章 - tjinjin's blog
システムパフォーマンス本を読む〜第2章 - tjinjin's blog
オペレーティングシステム
OSの基礎とOSの根幹とも言えるカーネルについての概要を学ぶ
3.1 用語
- カーネル:デバイス、めもり、CPUスケジューリングなどのシステムを管理するプログラム。ハードウェアに直接アクセスできるカーネルモードでCPUを動作する
- プロセス:通常ユーザーモードで実行され、システムコールやトラップを介してカーネルモードにアクセスできる
- スレッド:CPUで実行されるようにスケジューリングできる実行コンテキスト。
- タスク:Linuxの実行可能な実態で、プロセス(シングルスレッド)、マルチスレッドプロセス、カーネルスレッドのどれか。
- コンテキストスイッチ:異なるアドレス空間で動作するようにCPUを切り替えるサブルーチン。具体的な動きはどんな感じなんだろう?レジスタ内のデータを一旦退避させて、別のプログラムのデータをレジスタに展開する流れを具体的には指している?
3.2 基礎知識
- カーネル
- クロック
- カーネルモード
- スタック
- スレッドが必要とする過去の実行情報を格納
- コピーオンライト
- メモリ管理
- スワッピング:プロセス全体をメインメモリとセカンダリストレージの間で移動
- ページング:ページという単位で移動する
- スケジューラはI/Oバウンド > CPUバウンド の順で優先度を決める。
- VFS:ファイルシステムを抽象化するためのインターフェイス
- ディスクはレイテンシが高いので、キャッシングの層が多くある。例では14個あった。
- プリエンプション
- 優先度の高いユーザーレベルスレッドがカーネルに割り込んで処理を実行できる
感想
OS周りは理解できるようになりたいと常々思っているわりに知らないことが多かった。他の本とかも合わせてしっかり読んでいきたいと思います!