2014-04-28 LINUXカーネル(LINUXを理解するために(3)) 読書 プロセス/カーネルモデル システムコール:カーネルモードを使用するための特殊なプログラミング手続き カーネルスレッド カーネルモードで動作 端末デバイスを必要としない シャットダウンされるまで動作する カーネルルーチン プロセスによるシステムコールの発行 プロセス実行中のCPUによる例外信号の発生 割り込み信号の発行:割り込みハンドラによって処理される。 カーネルスレッドの実行 プロセスの実装 プロセスディスクリプタ:プロセスについての情報、プロセスが停止したときのプロセッサレジスタにある情報を退避させる。 レジスタ プログラムカウンタ(PC)レジスタ、スタックポインタ(SP)レジスタ 汎用レジスタ 浮動小数点レジスタ プロセッサ制御レジスタ(プロセッサステータスワード、CPUの状態についての情報) メモリ管理レジスタ(プロセスが使用するRAMの管理) 再入可能なカーネル 同時に複数のプロセスをカーネルモードで実行可能 再入可能な関数:ローカル変数のみを使う カーネル実行パス:システムコール、例外、割り込みを処理するためにカーネルによって実行される命令シーケンスのこと プロセスアドレス空間 同期とクリティカル区間 競合状態:何らかの計算の結果が2つ以上のプロセスのスケジューリングに依存する場合 グロバール変数への安全なアクセスは、アトミックな操作(不可分な操作)行われる。 クリティカル区間:実行を開始したプロセスが、他のプロセスが同じ部分を実行する前にその処理を終了する必要があるコード領域のこと シグナルとプロセス間通信 プロセス管理 メモリ管理 デバイスドライバ