I-6-3. マルチタスクOSにおけるプロセスの概念

「プロセス」の概念と、プロセスを切り替えて時分割でタスクを遂行するマルチタスクの概念について解説する。またOSが各プロセスを管理する手法についても言及する。

【学習の要点】

* プロセスとは、オペレーティングシステム上における処理の単位の1つであり、実行命令コードやプロセス固有データ・リソース記述子などで構成されている。

* オペレーティングシステムが、複数のプロセスを切り替えながら実行することをマルチタスクという。この場合、ユーザ側から見ると複数のプログラムが同時に実行されているように見える。

* プロセス管理は、カーネルの重要な機能の1つである。

図I-6-3. マルチタスクの概念

【解説】

1) プロセスとは

プロセスとは、オペレーティングシステム上における処理の単位の1つである。マルチタスクオペレーティングシステムでは、多くのプロセスを並列的に実行させることが可能である。また、「ジョブ」と表現されることもあるが、「ジョブ」がユーザ側から見た処理の単位であり、「プロセス」はコンピュータ側から見た処理の単位を表している。プロセスは以下に示す資源で構成されている。

* 実行命令コード

* プロセス固有データ

* リソースの記述子

* セキュリティ属性

* プロセッサ状態

2) マルチタスクの概念

オペレーティングシステムが、複数のプロセスを切り替えながら実行することをマルチタスクという。プロセスが順次切り替わりながら実行されていく仕組みだが、ユーザ側から見ると複数のプログラムが同時に実行されているように見える。また、プロセスが入出力待ち状態となっても他のプロセスが実行されるため、全体として処理速度が向上する。

* プリエンプティブ・マルチタスク

プリエンプティブ・マルチタスクとは、プロセスの切り替えの際にハードウェアによるタイマ割り込みが用いられる方法である。この割り込みによって制御をOSに戻す。これを強制的に繰り返している。

* ノンプリエンプティブ・マルチタスク

各プロセス自身が、短い時間間隔でOSに制御を戻すことによりマルチタスクが実現されているものを、ノンプリエンプティブ・マルチタスクと呼ぶ。

3) プロセスの管理方法

プロセス管理とは、カーネルの重要な機能の1つである。(ユーザ)プロセスの様々な状態はカーネルプロセスにより管理されている。プロセスが最初に生成されると「生成」もしくは「新規」という状態となり、そのあとで、実行待ち(待機)、実行中といった状態に遷移しながら、最終的には「終了状態」へと遷移してゆく。このような状態遷移を、複数のプロセス間の状況に基づき、スケジューリングし、コントロールしているのがカーネルプロセスである。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。