プログラミング第三

「プログラミング第三」の編集履歴(バックアップ)一覧に戻る

プログラミング第三 - (2013/04/12 (金) 10:26:05) のソース

4/8/2013
**UNIXシステムコール(1)
プロセスとは実行中のプログラムのこと
OSはプロセスにメモリ、CPU、IOなどの計算資源を与える
OSは時分割等でプロセスを切替える
プロセスの優先度を切替えることで複数のプロセスを並列処理しているように見せている
プロセスはシステムコール経由でOSのサービスを受ける
プロセスはシステムコールfork()で生成される

プロセス管理表
psコマンドで/bin/psにあるOSがプロセスを管理するための情報を表示する
プロセススケジューリング
preemption(横取り)とは、一定時間でOSが強制的にプロセスの実行をスイッチすること
ブロックとは、入出力などのイベント待ちで実行を一時中断すること
カーネルはブロックしたプロセスを「待ち状態(blocked)」にして、別プロセスを実行する
横取りやブロックでプロセス切り替えが起こる
スケジューリングとは、実行可能な複数のプロセスから、次に実行するものを選ぶこと
ブロックするプログラムは、getchar.c、sleep.cなど

プロセス生成に関連するシステムコールとして
fork() : プロセスの生成
exec : プロセスの変身 (execve()、execlp()など)
exit() : プロセスの終了
wait() : 子プロセスを持つ

fork()
実行中のプロセスのコピーを作る
##include <unistd.h> pid_t fork(void)