読者です 読者をやめる 読者になる 読者になる

雑記帳

ソフトを中心に雑記を書いてる割とすぐ転職したい28歳。

Linuxカーネル解読室(4日目)

今日も頑張って読むテスト。
今日からは第1章のプロセススケジューリングになります。

  • 第1章 1.1 マルチタスク
    • Linuxカーネルはマルチタスク機能があるから複数プロセスを同時に実行出来る。
    • Linuxカーネルは、その時点で最も重要と思われるプロセスに動作実行権を与える。そして、対象を高速に切り替えながら実行している。この切替をするのがプロセススケジューラである。
    • Linuxでは「O(1)」(オーダーワン)スケジューラというものが採用されている。
  • 第1章 1.2 プロセスとは?
    • 動作中のプログラム=プロセス。psコマンドで見れる。
    • プロセスのコンテキスト(プロセス空間やレジスタ値など)はtask_struct構造体(task_t型)で管理あsれている。
    • Linuxカーネルではスレッドもプロセスの一種とされている。
  • 第1章 1.3 プロセス切り替え
    • 上でも言ったが、最も重要そうなプロセスを選択して実行権を与える。切り替えるには、実行中のプロセスを中断し、新しいプロセスの実行を開始する必要がある。プロセスディスパッチャという機能がこの処理をする。
    • 切り替え処理は、実行中プロセスのレジスタ値をどこかに退避し、切り替え対象プロセスのレジスタ値を書きなおすことで実現出来る。


理屈は分かるぞ。


Linuxカーネル2.6解読室

Linuxカーネル2.6解読室


詳解 Linuxカーネル 第3版

詳解 Linuxカーネル 第3版