課外拡張(7)

プロセス
コンピュータのコアはすべてのコンピューティングタスクを担うCPUであり、オペレーティングシステムはタスクのスケジューリング、リソースの割り当てと管理を担当するコンピュータのマネージャであり、コンピュータハードウェア全体を制御することは誰でも知っています。アプリケーションプログラムには特定の種類があります。機能プログラム。プログラムはオペレーティングシステム上で実行されます。
プロセスは、データセットに対する特定の独立した機能、オペレーティングシステムによるリソースの割り当てとスケジューリングのための独立したユニット、およびアプリケーションプログラムを実行するためのキャリアを備えたプログラムの動的実行プロセスです。プロセスは抽象的な概念であり、統一された標準の定義はこれまでありませんでした。プロセスは通常、プログラム、データセット、プロセス制御ブロックの3つの部分で構成されます。プログラムは、プロセスによって実行される機能を記述するために使用され、プロセスの実行を制御する命令セットです。データセットは、実行時にプログラムが必要とするデータと作業領域です。プログラム制御ブロックには、プロセスの説明情報と制御情報が含まれ、プロセスが存在する唯一の兆候です
プロセスには次の特徴があります。
動的:プロセスはプログラム実行プロセスであり、一時的であり、ライフサイクルがあり、動的に生成され、動的に停止します。
同時実行性:どのプロセスも他のプロセスと同時に実行できます。
独立性:プロセスは、システム内のリソース割り当てとスケジューリングのための独立したユニットです。
構造:プロセスは、プログラム、データ、プロセス制御ブロックで構成されています


初期のオペレーティングシステムでは、スレッドにはスレッドの概念がありませんでした。プロセスは、リソースを持ち、独立して実行される最小単位であり、プログラム実行の最小単位でもあります。タスクスケジューリングはタイムスライスローテーションのプリエンプティブスケジューリング方式を使用しており、プロセスはタスクスケジューリングの最小単位です。各プロセスには独自の独立したメモリがあるため、各プロセスのメモリアドレスは互いに分離されています。
その後、コンピュータの開発に伴い、CPUの要件がますます高くなり、プロセス間の切り替えオーバーヘッドが大きくなり、ますます複雑なプログラムの要件を満たすことができなくなります。スレッドは、プログラム実行における単一の順次制御フローであり、プログラム実行フローの最小単位であり、プロセッサのスケジューリングとディスパッチの基本単位です。プロセスは1つ以上のスレッドを持つことができ、プログラムのメモリ空間(つまり、プロセスが配置されているプロセスのメモリ空間)は各スレッド間で共有されます。標準スレッドは、スレッドID、現在の命令ポインタPC、レジスタ、スタックで構成されています。プロセスは、メモリ空間(コード、データ、プロセス空間、開いているファイル)と1つ以上のスレッドで構成されます。

プロセスとスレッドの違い
スレッドはプログラム実行の最小単位であり、プロセスはオペレーティングシステムによって割り当てられるリソースの最小単位です。
プロセスは1つ以上のスレッドで構成され、スレッド
プロセス内のコードの異なる実行ルートから独立しています。ただし、プログラムのメモリ空間(コードセグメント、データセット、ヒープなどを含む)と一部のプロセスレベルのリソース(開いているファイルやシグナルなど)は、同じプロセス内のスレッド間で共有され、プロセス内のスレッドは他のプロセスでは表示されません。 ;
スケジューリングと切り替え:スレッドコンテキストの切り替えは、プロセスコンテキストの切り替えよりもはるかに高速です。

スレッドとプロセスはどちらも抽象的な概念です。スレッドはプロセスよりも小さい抽象概念です。スレッドとプロセスの両方を使用して、並行性を実現できます。
初期のオペレーティングシステムには、スレッドの概念はありませんでした。プロセスは、リソースを持ち、独立して実行できる最小の単位です。これは、プログラム実行の最小単位でもあります。これは、プロセス内の1つのスレッドのみに相当し、プロセス自体はスレッドです。したがって、スレッドは軽量プロセスと呼ばれることもあります。
その後、コンピュータの開発に伴い、複数のタスク間のコンテキスト切り替えの効率がますます高くなり、より小さな概念スレッドが抽象化されます。一般に、プロセスは複数(または1つ)のスレッド。

オリジナルの記事を14件公開しました Like1 訪問数477

おすすめ

転載: blog.csdn.net/a1152946932/article/details/105501274