以下のためのタイムスライスとJavaプロセスとスレッド:()の単純な個人的な理解

以下のためのタイムスライスとJavaプロセスとスレッド:()の単純な個人的な理解


A.タイムスライス

       あなたは明確なプロセスの理解とマルチスレッドとの間の関係を知りたい場合は、私たちは東のタイムスライスと呼ばれて言及する必要があり、私たちの最初のエントリシュシュBaiduは言う方法ですしてみましょう:

  •  - また、プリエンプティブカーネルにおける顕微鏡上で実行中の各プロセスにCPU時間を割り当てる時分割オペレーティングシステムの周期である(「量子(量子)」または「プロセッサチップ(プロセッサスライス)」として知られているタイムスライス(タイムスライス) :プロセスは時間を横取りされるまで実行するには、最初から)。(例えば:などのWindowsやLinux、Mac OS Xの、)現代のオペレーティングシステムで使用すると、同時に複数のプロセスを実行することができます - たとえば、あなたは音楽を聴きながら音楽プレーヤーを開き、ファイルをダウンロードするには、ブラウザでウェブを閲覧することができます。実際には、通常、コンピュータは、より多くのCPUを持っていますが、決して実際に複数のタスクを同時に実行するために、同じCPUもあります。タイムスライスは(Linuxは5msの-800msであるに)非常に短い通常であるため、1つのCPUのみを考慮して、これらのプロセスを同時に実行している「ように見える」が、実際には、実行するようにターンを散在され、ユーザーはそれを感じることはありません。
  • 各プロセスに、オペレーティングシステムのカーネルスケジューラによって割り当てられたタイムスロット。タイムスライス内のすべてのプロセスの状態が枯渇したとき、まず、カーネルは各タイムスライスの初期処理の割り当てを等しくなり、その後、時間に対応する各処理を実行するためにオン、カーネルを再計算し、各プロセスのための時間の配分されます等々シート、および。

実際には、最終的な分析、タイムスライスは、各プロセス部門にCPUのオペレーティングシステムに最小の処理のための最小時間です。ねえ、プロセス、およびそのプロセスはシェーンのですか?                                                                                
   II。プロセスは何ですか

それでもBaiduの百科事典のエントリを見てよ!

  • プロセス(プロセス)は、システムの活動に関するデータの集合で実行するコンピュータプログラムは、リソース割り当ておよびスケジューリングの基本単位である基礎となるオペレーティング・システム・アーキテクチャです。設計プロセスの初期段階のためのコンピュータ・アーキテクチャでは、基本的なプロセスは、プログラムの実体の実行で、スレッドのための現代のコンピュータアーキテクチャの設計では、スレッドが処理容器です。プログラム命令、データの編成であり、プロセスのその説明は固体プログラムです。
  • 狭い定義:プロセスが実行中のプログラム(実行されているコンピュータプログラムのインスタンス)のインスタンスです。

    大まかに定義された:プロセスは、活動がデータ収集プログラムに別々の機能を持っている必要があります実行されます。それはオペレーティングシステムの動的実行基本単位伝統的に、オペレーティング・システム、プロセスは、両方の基本であるアロケーションユニット、実行の基本単位です。

    プロセスの2つの主要な概念があります:最初、プロセスが実体です。各プロセスには、通常の状況下で、それ自体のアドレス空間を持つテキスト領域(文字領域)、データ領域(データ領域)とスタック(スタック領域)。コードは、プロセッサ記憶されたテキスト領域で実行され、実行プロセス変数の間に使用される、動的に割り当てられたメモリ領域のデータを格納する、スタック領域を格納する命令と呼び出し手順活動のローカル変数。第二に、このプロセスは「実行手順」です。プログラムが死んエンティティだけで処理我々は呼んで、生命のプログラムに接続されたデバイスが、それがアクティブなエンティティになることができます(オペレーティングシステムの実行)プロセスを

    オペレーティング・システム・プロセスは、基本的で重要な概念です。システムがマルチチャネル・プログラムされた後、各チャンネルのプログラム導入内概念システム活動パターンを記述し、現れた内部システムのダイナミクスを特徴付けるために表示され、すべてのマルチプログラミングオペレーティングシステムは、プロセスに基づいています。

疑いのトレースは、まだ見ていませんか?これは、読み取り後にわかりました最初の大きなを何を表しているか、です!

実際には、あなたが例えばリーグ伝説のプレーによると、それを理解することができ、我々は単に説明します。

      Q:プログラムの実行中のインスタンスは、どのようなプロセスですか?

      A:あなたが呼ばれるああを実行しているオープンな提携LOLプロセスではありません!そうでなければ、それだけでアイコンがオーケーあります。

      Q:すべてのプロセスは、独自のアドレス空間を持っているなぜ、プロセスは、「プログラムの実行はありますか?

      :実際には、我々ダウンロード可能なゲームは、我々はそれを実行すると、メモリに書き込まれている重要なデータを読み込むディスク上に存在しているので、そこに主人公の内側その後、独自のメモリアドレス空間と(ありどのような肌)。

アプリケーションに対応するプロセス。それは、プロセスの開始を意味し、開発環境でJVMを起動するJava。同じオペレーティング・システムでは、複数のプロセスを開始することができ、実際には、プロセスは、リソース割り当てのかくして最小単位、個々の機能を有しており、プロセスが再び多くのスレッドで構成されています。各プログラムのコード・セグメント、データ構造セグメント(スタックとデータセグメント)を維持するためにデータテーブルを設定し、システムはそれのためのアドレス空間を割り当てる、プロセスを開始します。

まあ、我々は成功し、再びスレッドが何であるかを、次の質問を導入しています!

第三に、スレッドは何です:

最初のエントリを見てみましょう:

  • スレッド(英語:スレッド)が操作スケジューリングが可能なオペレーティングシステムの最小単位です。これは、プロセスの単位プロセスの実際の動作が含まれます。スレッドが参照するプロセス制御の単一の一連の流れにおいて、プロセスの複数のスレッドが同時に、並行して各スレッドは、異なるタスクを実行します。

    スレッドは、スケジューリングと独立の派遣の基本単位です。カーネルスレッドのようなカーネルスレッド、スケジュールすることができ、オペレーティング・システム用のWin32スレッドを、自発的になどのユーザー・プロセスのスケジューリングユーザスレッドによるのLinuxプラットフォームで、POSIX  スレッド、またはによって、カーネルなど、ユーザーのプロセス、Windows 7の糸、混合スケジューリング。

    同じプロセスの複数のスレッドが、仮想アドレス空間として、プロセスのすべてのシステム・リソースを共有するファイル記述子、及び信号処理ように、そして。しかし、同じプロセスで複数のスレッドが、自身の持っているコールスタック(コールスタック)を、ご使用の環境(レジスタコンテキスト)、自身のスレッドローカルストレージ(スレッドローカルストレージ)を登録。

    このプロセスは、異なるタスクを実行するために並列に各スレッドを、スレッドの多くを持つことができます。

    マルチコア又はマルチにCPUのマルチスレッド上のプログラム、またはハイパースレッディングCPU設計の支援を使用する利点は、プログラムのスループットの実行を強化するために自明です。シングルCPUシングルコア、マルチスレッド技術、プロセスはまた、I / O処理を担当することができ、人間とコンピュータの相互作用としばしば遮断集約主力スレッドの実装のために特別に書かれた別の実施の計算集約的部分の一部、コンピュータ上で計算は、それによってプログラムの実行の効率を高めます。

より多くのスレッドを伴うといえば、マルチスレッド、スレッドスタック、並行性と並列性

個人的な理解:


   スレッド:スタックフレームと呼ばれる各メソッドがコピーされているスレッドのスタック(スレッドと呼ばれるメインメソッド呼び出しメインスタックをポップするために、一連の方法を積層するメインプッシュ)メソッド呼び出しの系列であります。(フレームは、最小単位である)
   スレッド・スタック:単にスタックを制御するために、関数呼び出しのシリーズとして理解することができます。、スタックにメソッド呼び出し制御ミアン方法を通す方法の内側に対応する他のメソッド呼び出しスタックのうち一度直接実行されません場合シーケンシャル方式によってプッシュを方法プッシュ後に呼び出され、続いて、他のメソッドへの呼び出しがある場合の順序であろうと、他のコールを継続します内部メソッドが他のメソッドを呼び出すことはありませんまでの方法では、スタックの実装後、スタックにポップしています。

同時実行:

交互に行わ、同じ時間期間Aにおいて生じる二つ以上のイベントを指します。例えば、好きな音楽を聴くような、しかし、あなただけ交互に持っていた、読書、音楽に耳を傾け、読書の際にいずれかを選択できます。

パラレル:

これは、2つの以上のイベントが同時に、同時に発生を指します。それでも上記の例が、これは読みながら、音楽を聴きながら、同時にすることができ

細部に注意を払う必要があります:

プロセスとプロセス間のメモリが独立している
マルチスレッドとスレッド

スレッドの実行シーンはプロセスです。プロセスは複数のスレッドを開始することができます

役割をマルチスレッド化することは、実行速度を向上させるが、アプリケーションの使用状況を改善することではありません

スレッドとスレッド共有「メモリヒープおよびメソッド領域」スタックメモリは独立して、スレッドのスタック

同時に複数のスレッドの同時実行の気持ち:複数のスレッドがその人の幻想の現実の世界に、前後に切り替えるため。


我々は、データ入力を処理するための主な方法を定義する場合、mainメソッドは、A、B、Cの三つの方法、ここでA + 1回メソッドを含む、方法一度B + 5は、2回呼び出されました方法、Cメソッド呼び出しA、Bの方法で一度。
       そして、私たちのスレッドスタックは、スタックにフローの主な方法でなければなりません呼び出しには他の方法が存在しないため、その後A、方法をプッシュするので、スタックA法、B法スタックにした後、2回オンにする5 Aの呼び出しを行いますスタック、Cプッシュ法、コール法、B法。
       **ためにスタックから外れている:スタックからスタックにメインスタックに供給スタックを--- A --- A --- Bスタックに--- A --- A ---ポップスタックに---ポップポップ--- --- --- B C Aが供給--- A ---スタックにスタックからスタックにA --- A --- B ---スタックにスタックプッシュ---スタックがスタックにポップさ--- C --- B --- **スタックにメインプッシュ

いくつかの個人的な理解
マルチスレッド
mainメソッドを外の世界と呼ばれる
2つのスレッドが、両方のスレッドスタックを生成するために戻ったときに、方法及び方法の中で宣言変数の2つのコピーは、2つの方法がそれぞれ干渉しない
出会い異なるスレッドが主実行、各スレッドの方法のコピーが、可変動作と。
各スレッドは、最初に運営されますコピー方法で、再度、変更データを操作し、スレッドセーフな、共通の変数のダーティデータを持つことになります
主な方法は、メインスレッドに属する   
MAIBメソッドが呼び出された、サブスレッドに属し
のみをコピースタックコピーすることができますレーン、パイルが一般的ではない
コピーポインタの
スタックフレームと順次命令に関連付けられたスタック上に配置され、注文パイルには命令
「スタックフレーム」変数テーブル「」各々におけるヒープアドレス
参照タイプK具体的なスペースないので、同じアドレスを覚えています

 

发布了1 篇原创文章 · 获赞 1 · 访问量 30

おすすめ

転載: blog.csdn.net/nn1656353506/article/details/104078255