現代のプロセスは、タイムシェアリングオペレーティングシステムの作業単位です。
プロセスは、リソース割り当ての基本単位です。
スレッドは、プログラム実行の最小単位です。
3.1プロセスの概念
3.1.1プロセス
プロセスは非公式声明で実行、です。データセグメント(例えば、関数の引数、ローカル変数とリターンアドレスなどの一時データを含む)プロセスプログラムコード(また、テキストセクションと呼ぶ)には、処理をさらに含む(コンテンツ値と、プロセッサレジスタ、プログラムカウンタ、等)データ、プロセス・スタックのみならず(グローバル変数を含む)およびヒープ。
メモリのプロセス
3.1.2プロセスステータス
新(新):作成中のプロセス
ラン(ランニング):コマンドが実行されています
待ち(waitting):いくつかの時間を起こるのを待って、プロセス(例えばI / O完了または信号を受信するように)
(レディ)レディ:プロセスがディスパッチプロセッサを待っています
終了(終了):実行プロセスが完了しました
3.1.3プロセス制御ブロック
オペレーティング・システム内の各プロセス、タスク制御ブロックとして知られているプロセス制御ブロック(進行制御ブロック、PCB)を使用すること。これは、プロセスに関連する情報が含まれています。
- プロセスステータス:新しい、準備、実行中、待機中、および停止。
- プログラムカウンタ:1つの命令を次に実行するプロセスのアドレスを示します。
- CPUレジスタ:アキュムレータ、インデックスレジスタ、スタックポインタ、条件コード、及び他の汎用レジスタ情報レジスタを含みます。割り込みが発生すると、必要にプログラムカウンタやステータス情報は保存します。
- CPUのスケジューリング情報:プロセスの優先度、スケジューリングキューポインタと他のスケジュールパラメータ。
- メモリ管理情報:レジスタのベースアドレスと限界値、ページ・テーブル又はセグメント・テーブル。
- 課金情報:CPU時間、時間の実際の使用、時間、このようなジョブまたはプロセスの数などのデータを、会計を含みます。
- I / Oのステータス情報が含まれます:プロセス・リストなどに割り当てられたI / Oデバイスを
3.1.4スレッド
...
3.2プロセスのスケジューリング
ターゲットのマルチチャンネルプログラミングプロセスは、CPUの使用率を最大化するために実行した時はいつでもということです。汎用タイムシェアリングオペレーティングシステムは、ユーザがプログラムが実行されていると対話できるようにすることを、すぐにプロセスを切り替えるCPUです。これらの目的を達成するために、スケジューラは、CPU上で実行するために利用可能なプロセスを選択します。注文処理システムは、実行中の複数のプロセスを持っていません。
3.2.1ディスパッチキュー
プロセスシステムに入るときに、ジョブキュー(ジョブ・キュー)、システム内のすべてのプロセスを含むキューに追加されるであろう。
準備ができて、プロセスを実行するために待機しているメモリに常駐は、レディキューに格納されます。
デバイスキューと呼ばれる特定のI / Oデバイスを待ってプロセスのリストです。各デバイスは、独自のデバイスキューを持っています。
最初に、新しいプロセスを実行するために選択されたことを知って、レディキュー待ちに追加されます。プロセスがCPUに割り当てられて実行されると、何時発生する可能性があります。
- プロセスは、I / O要求を発行し、I / Oキューに配置します。
- プロセスは、終了の子プロセスを待つを作成することができます。
- プロセスは、強制リリースCPUが原因で中断されることがレディキューに戻ります
最初の2つのケースは、プロセスが最終的に準備完了状態に待ち状態から切り替えて、レディキューに戻されます。終了が知っているこのプロセスのループを繰り返し、その後、PGBとそのリソースが解放され、すべてのキューから削除されます。
3.2.2スケジューラ
様々なスケジューリング・キューの間で移行するプロセスは、オペレーティングシステムのスケジューラは、キューから特定のモード選択処理を振るう必要があります。適切なプロセススケジューラまたはディスパッチャによって実行さを選択します。
典型的には、バッチシステムのための、より多くのプロセスより提出のプロセスを直ちに実行することができ、これらの方法は、大容量記憶装置(通常はディスク)の実行のためにプールをバッファに保存されます。あなたが実行するためにメモリに追加したプログラムを、選択することをプールから長期スケジューラ。準備処理の実行、および割り当てCPUからの短期スケジューラやCPUスケジューラ選択プロセス。
2つの主な違いは、周波数スケジューリングプログラムを実行することです。
短期スケジューリングプロセスは、多くの場合、CPUのための新しいプロセスを選択する必要があります。
長期スケジューリングプロセスは、まれに実行します。長期スケジューラは、マルチプログラミングの程度(プロセスのメモリの量)を制御します。長期スケジューラ慎重に選択、プロセスのI / O集中型とCPU集約型の適切な組み合わせを選択する必要があります。
こうしたタイムシェアリング・オペレーティング・システムなどの一部のオペレーティングシステムでは、追加の中期スケジューラを導入することができます。アイデアは、プロセスがスワップアウトメモリからスワップすることができるということです。
3.2.3コンテキストの切り替え
割り込みが発生すると、システムは、その後、回復プロセスをプロセスを中断することです後処理の文脈でその回復してCPU上で実行されている現在のプロセスのコンテキストを保存する必要があります。PGBは、プロセス・コンテキストを使用して表現しました。
別のプロセスにCPUを切り替えて別のプロセス状態に現在のプロセスの状態を保存および復元する必要があり、このタスクは、コンテキストスイッチと呼ばれています。
実行中のプロセス3.3
ほとんどのシステムが同時に処理することができ、彼らは動的に作成および削除されたので、オペレーティングシステムはプロセスを作成し、プロセスを終了するメカニズムを提供しなければならないことができます。
3.3.1プロセスの作成
プロセス(親プロセス)プロセスツリーを形成し、実装プロセスにおいて複数のサブプロセスを作成することができます。
識別プロセスは、通常、整数、一意のプロセス識別子PIDを使用するためのオペレーティングシステムの最も。
新しいプロセスを作成するプロセスは、親プロセスは子を同時に実行することができた場合、子プロセスの親プロセス実行サブプロセスの一部または全部を待ちます。
プロセス3.4間の通信
プログラムが同時にオペレーティングシステムを実行する独立した缶はまた、他のプロセスとデータを共有するコラボレーションは、共同プロセスであることとすることができます。、情報共有モジュラーかつ簡単に、コンピューティングのスピードアップ:それはプロセスが理由を支援することができます。
データと情報の相互交流のプロセスを可能にするためのプロセスの間、ヘルププロセス間通信メカニズムを必要とします。共有メモリとメッセージパッシング:プロセス間通信は、2つの基本的なモデルがあります。
共有にプロセスを協働するためのメモリ領域を作成し、共有メモリモデルは、このプロセスは、情報交換にデータを読み書きする共有領域を提供します。
メッセージパッシングモデルは、共同プロセス通信との間でメッセージを交換することを提供します。
メッセージングデータは、競合を避けるために必要はありませんので、あまり有用で交換します。マルチコアシステムの場合、メッセージは、共有メモリへの優れた性能を渡します。共有メモリは、一貫性の問題をキャッシュします。