カーネル
機能
プロセス管理
プロセス(タスク)
OS上で実行中のプログラム
状態
実行中
プロセッサ割当待ち
待機
プロセス生成、削除などを通じて、システム内のプロセスの状態を把握し管理する
タイマからの割り込みをスケジューラで検知して、プロセッサをいつ、どのプロセスに割り当てるかを決める
マルチタスク
プロセス間でプロセッサを短時間で切り替えることで、複数のプロセスが同時に動いているかのように見せる
CPUの利用率をあげる
プロセス間の同期、協調を実現
メモリ管理
プログラム実行に先立って、補助記憶からメモリにロードする必要がある
ロードする領域の確保が必要
仮想記憶
メモリよりも大きなプログラムを実行できるようにする技術
割り込みと入出力制御
割り込み
入出力機器の状態をプロセッサに伝える技術
実行中のプログラムから独立して発生する
割り込み処理ハンドラ
一旦実行中のプログラムの状態を退避して、割り込みの処理を実行し、実行中の処理に復帰するプログラム
ファイルシステム
データの名前をつけた集合
補助記憶へのデータ保存を抽象化する
ディレクトリ、ファイル、それらへのアクセス制御を通じて補助記憶上のデータを扱いやすくする
ブートストラップ
ブートストラップ
電源を入れてからOSが起動するまでの一連の流れ
ROM(不揮発性メモリ)にあらかじめ置いて置いたプログラムを電源起動時に実行して、ブートローダをメモリに乗せる
ブートローダが補助記憶装置からカーネルをメモリ上に乗せる
構成法
モノリシックカーネル
カーネルに必要な機能をすべて1つにまとめたもの
実行速度は早いが、1箇所の修正がカーネル全体の再構築につながる
Linuxなど
マイクロカーネル
OSの中核の機能だけをカーネルに持たせ、それ以外はカーネル外のプロセスに任せる
ハイブリッドなもの
モノリシックカーネルとマイクロカーネルのハイブリッド
WindowsやmacOSなど