cxiプロセスとスレッドの違いと連絡


スレッドを導入するのは、プログラムの同時実行時に発生する時空オーバーヘッドを低減するためである。
属性:
  • 軽エンティティ。それはシステム資源を持っていません。ただ必要な資源があります。独立して運行できる資源があります。
  • 独立したスケジューリングと分派の基本単位。マルチスレッドOSにおいては、スレッドは独立して動作する基本単位であり、独立したスケジューリングおよび分派の基本単位でもあるが、スレッドは軽いので、スレッドの切り替えは非常に速く、かつオーバーヘッドが小さい。
  • は、同時に実行することができる。一つのプロセス中の複数のスレッドの間で同時に実行することができ、一つのプロセス中のすべてのスレッドを同時に実行することもできます。同じように、プロセスによってスレッドが同時に実行されます。
  • はプロセスリソースを共有する。同じプロセスにおける各スレッドは、プロセスが所有するリソースを共有することができ、これはまず、すべてのスレッドが同じアドレス空間(プロセスのアドレス空間)を有していることを示しており、これはスレッドがアドレス空間の各々にアクセスできることを意味している。また、プロセスが所有するオープンファイル、タイマー、信号量機構などにアクセスすることもできます。
  • スレッドの作成と終了
    終了しましたが、まだリソースが解放されていないスレッドは、停止されたスレッドを再起動して実行するために彼のスレッドが必要となります。このため、ディストリビュータスレッドは、「スレッド終了待ち」と呼ばれる接続コマンドを起動して、このスレッドと再接続する必要があります。一方のディストリビュータスレッドで「スレッド終了待ち」の接続コマンドを呼び出し、指定スレッドと接続しようとすると、指定スレッドがまだ終了していないと、指定スレッドが終了するまで接続コマンドを呼び出すスレッドがブロックされます。これが使用者スレッドとの接続を実現し、実行を継続することができます。指定されたスレッドが終了したら、起動スレッドはブロックされずに実行されます。
    マルチスレッドOSのプロセス:
  • は、システムリソース割り当ての単位として機能する。マルチスレッドOSでは、まだプロセスがシステムリソース割り当ての基本単位として残っており、どのプロセスにも保有されているリソースは、それぞれ保護されたユーザアドレス空間と、プロセス間とスレッド間の同期と通信を実現するための機構と、開いているファイルと、I/Oデバイスに申請されたファイルと、コアプロセスによって維持されているアドレスマップテーブルとを含む。このテーブルは、ユーザプログラムの論理アドレスをメモリ物理アドレスにマッピングするためのものです。
  • は、複数のスレッドを含むことができる。通常のプロセスは、複数の相対的に独立したスレッドを含み、その数は多くても少なくても良いが、少なくとも1つのスレッドが必要であり、プロセスによってこれらのスレッドにリソースと実行環境を提供し、これらのスレッドを同時に実行することができるようにする。OS中のスレッドはすべて特定のプロセスにのみ属します。
  • プロセスは実行可能なエンティティではない。マルチスレッドOSでは、スレッドを独立して動作する基本単位としているため、このときのプロセスは実行可能なエンティティではない。
  • 定義:
    一、プロセスは一定の独立した機能を持つプログラムで、あるデータセット上の一回の運行活動について、システムが資源配分とスケジュールを行う独立した単位である。
    スレッドはプロセスの一つのエンティティであり、CPUスケジュールと分派の基本単位であり、彼はプロセスより小さい独立して実行できる基本単位であり、スレッド自体は基本的にシステムリソースを持たず、実行に必要なリソースだけを持っています。
    プロセスとスレッドの関係:
    (1)スレッドは一つのプロセスにしか属しません。一つのプロセスは複数のスレッドがありますが、少なくとも一つのスレッドがあります。
    (2)リソースはプロセスに割り当てられ、同じプロセスのすべてのスレッドはこのプロセスのすべてのリソースを共有する。
    (3)スレッドは実行中に連携同期が必要です。異なるプロセスのスレッド間では、メッセージ通信の方法を用いて同期を達成する。
    (4)プロセッサがスレッドを配っています。つまり、本当に実行しているのはスレッドです。
    (5)スレッドとは、プロセス内の実行ユニットであり、プロセス内のスケジューリング可能エンティティでもある。
    スレッドとプロセスの違い:
    (1)スケジュール:スレッドはスケジュールと割り当ての基本単位として、プロセスはリソースを持つ基本単位とする。
    (2)同時性:プロセス間だけでなく、同じプロセスの複数スレッド間でも同時に実行できます。
    (3)資源を持つ:プロセスは資源を持つ独立単位であり、スレッドはシステム資源を持たないが、プロセスに属するリソースにアクセスできる。
    (4)システムオーバーヘッド:プロセスを作成または撤回する際、システムはリソースを割り当てて回収するため、スレッドを作成または撤回する際のオーバーヘッドより明らかに大きいシステムになる。しかし、プロセスには独立したアドレス空間があり、プロセスが崩壊した後、保護モードでは他のプロセスに影響を与えることはなく、スレッドはプロセスの異なる実行経路にすぎない。スレッドは自分のスタックと局部変数がありますが、スレッド間には独自のアドレス空間がありません。スレッドが死んだのはプロセス全体が死んだのと同じです。だから、マルチプロセスのプログラムはマルチスレッドのプログラムより丈夫です。
    スレッドの分割スケールはプロセスより小さいので、マルチスレッドプログラムの同時性が高い。
    また、プロセスは実行中に独立したメモリユニットを持ち、複数のスレッドがメモリを共有することで、プログラムの実行効率が大幅に向上します。
    スレッドは実行中に、個々のスレッドごとにプログラム実行の入口があり、シーケンスとプログラムの出口が順次実行されます。しかし、スレッドは独立して実行できず、アプリケーションに依存して複数のスレッド実行制御を提供しなければならない。
    論理的に見て、マルチスレッドの意味子と一つのアプリケーションでは、複数の実行部分が同時に実行されます。しかし、オペレーティングシステムは、複数のスレッドを複数の独立したアプリケーションとして見なしていない。これはプロセスとスレッドの重要な違いです。
    以上はcxiプロセスとスレッドの違いと連絡の詳細です。cxiプロセスとスレッドに関する資料は他の関連記事に注目してください。