第6回 第7章 プロセスとその管理

7.1 プログラム実効制御とプロセス

1.プロセス=プログラムの実行単位
OSがプログラムに対して行う必要があること

  • 中断時の実行環境の退避と中断点から実行再開さきること
  • プログラムの状態管理
    • 実行中・I/O待ちetc.

2.プロセス=仮想マシン
各プログラムは論理的には自分専用のプロセッサが与えられるように見える
最近のOSでは、プロセスごとに自分専用のメモリ空間を持つ
3.プロセスによる並列処理
プロセスは論理的には並列に実行されている
実際はプロセッサ1つで同時に実行できるのは1つ

複数ユーザ向けのOSとシングルユーザ向けのOSが存在する。
まあ、それだけ

7.2 プロセスの実現

1.プロセスを構成するもの

  • プロセッサの実行環境*1
  • メモリ空間
  • 開かれているファイル*2
  • 親プロセスの情報・プロセスは別のプロセスによって生成される
  • 使用ユーザの情報

その他さまざまな情報をOSが管理しなければならない
2.プロセスの状態の管理

  • 実行中状態
  • レディ状態,実行可能状態
  • 待ち状態(実行できない状態)

レディから待ちに遷移することはなく、待ちから実行中に遷移することもない。それ以外はありうる。

7.3 プロセススケジューリング

いつ、どのプロセスを実行するかを決める。
プロセススケジューラの仕事

  • プロセスの状態を管理する
  • 実行するべきプロセスを選択する
  • 選択したプロセスにプロセッサの制御を渡す

基本的には将来のことを考えるのではなく、今何をすべきかを考えることでスケジュール処理を行う。

*1:プロセッサの実行情報:プログラムカウンタ・レジスタ

*2:fopen等で開く