|
次のページ
前のページ
目次へ
8. カーネルデーモン
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND root 1 0.1 8.0 1284 536 ? S 07:37 0:04 init [2] root 2 0.0 0.0 0 0 ? SW 07:37 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW 07:37 0:00 (kupdate) root 4 0.0 0.0 0 0 ? SW 07:37 0:00 (kpiod) root 5 0.0 0.0 0 0 ? SW 07:37 0:00 (kswapd) root 52 0.0 10.7 1552 716 ? S 07:38 0:01 syslogd -m 0 root 54 0.0 7.1 1276 480 ? S 07:38 0:00 klogd root 56 0.3 17.3 2232 1156 1 S 07:38 0:13 -bash root 57 0.0 7.1 1272 480 2 S 07:38 0:01 /sbin/agetty 38400 tt root 64 0.1 7.2 1272 484 S1 S 08:16 0:01 /sbin/agetty -L ttyS1 root 70 0.0 10.6 1472 708 1 R Sep 11 0:01 ps aux
上記はシステム上で動いているプロセスのリストである。これらの情報は、前章で説明
した
これらのプロセスは、カーネルデーモンである。カーネルの大部分はプロセス
リストには現れないので、それらが消費するメモリの量を割り出すには、システムの
総メモリ量から利用可能なメモリ量を引いて計算するしかない。カーネルデーモンは、
上記の表では では、カーネルデーモンは何のためにあるのか? わたしはカーネルデーモンについて ほとんど知らなかったので、今回の改訂版を出すまで、その点に関し、この文書では 読者からの教えを請うていた。以下の断片的な説明は、読者からの様々な返答を つなぎ合わせたものであり、疑問に答えてくれたひとたちには非常に感謝している。 より詳しい手がかりや参照先、この文の訂正なども引き続き歓迎している。
入力と出力は、メモリ内の buffers 経由で行われる。実行速度を上げる
ためである。プログラムの出力は一旦メモリに、つまりバッファに蓄えられ、その後で
より安価で大容量を実現できるディスクに書き込まれる。
プロセスは、何もしていない状態になることがしばしばあり、実行中のプロセスと
いえどもそのコードとデータ全部をメモリ内に置く必要があるわけではない。すなわ
ちこれは、実行中のプロセスの使用されていない部分を、ハードディスクのスワップ
パーティションに移すことで、メモリを有効利用できることを意味する。
必要に応じてそうしたデータをメモリから出し入れする処理は、
また、カーネルに省電力機能を組み込んでいる場合は、システム上で
8.1 設定
スワップ空間は、
8.2 演習
8.3 参考文献等
Linux Documentation Project の "The Linux Kernel" ( URL については、 ここを見ること。)
勇気ある読者は、Linux カーネルのソースコードを読むこと。
次のページ 前のページ 目次へ |
[ |