プロセスとスレッドの違いを把握するために3分

序文

プロセス(過程)とスレッド(スレッド)は、オペレーティングシステムの基本的な概念ですが、彼らは把握することは容易ではない、より抽象的です。

V2-b551a60a10a89f8428e5d2ab45c6e353_hd.png


最近、私は良いアナロジーを見つけ、記事の材料を読み、彼らが明確で分かりやすい説明をすることができます。

1。

v2-0e134431a90be4572575c70518fb4bdf_b.jpg

コアコンピュータは、すべてのコンピューティングタスクを想定し、そのCPUです。それは常に動作して、工場のようなものです。


2。

v2-9acb2da5dc4074f2b0f8486182ebfb65_b.jpg

想定発電所限られている、唯一のワークショップを供給することができます。言い換えれば、ワークショップでは、植物は他をシャットダウンしなければならないときに始めました。背後にある意味は、単一のCPUが1つのタスクだけを実行できることです。


3。

v2-3379a56fecc915802aa5b52bfd724d1f_b.jpg

工場の床のようなプロセスは、それが単一のCPUがタスクを処理することができ表します。いずれかの時点で、CPUは常にプロセスを実行し、他のプロセスが実行されていません。


4。

v2-630a30b3393d04a40d51b56b452ab946_b.jpg

ワークショップでは、多くの労働者があります。彼らは、共同作業を完了する。


5。

V2-a8d38e17917093ef790921b14395c3e3_b.jpg

ワークショップでのスレッドのような労働者の比率。プロセスは複数のスレッドを含めることができます。


6。

v2-710acd5c6f459eaa88b228bb9a4616aa_b.jpg

ワークショップスペースは、そのような部屋の多くとしての労働者によって共有され、各労働者がの内外にできることです。これは、各スレッドは、これらの共有メモリを使用することができ、プロセスのメモリ空間を共有している象徴しています。


7。

v2-7cee6d022c5149ca09bf8e6ae4d114c9_b.jpg

ただし、異なる各部屋の大きさ、及び一部の客室にのみ、このようなトイレとして、一人の最大収容することができます。他の人が行くことができないとき内部の誰か。特定の共有メモリを使用する場合は、スレッドを表し、他のスレッドがメモリのこの部分を使用するためには、最後にそれを待たなければなりません。


8。

v2-5c6d99a49a51b7dc7d145eb40ee197c2_b.jpg

侵入から他人を防ぐ簡単な方法に加え、ドアロック。最初の男は、ロックされた人々を見て、その後、ドアをロックし、そして、あなたがドアに並ぶ、というようにして、ロックを開くために行きます。これは、複数のスレッドが同時に読み出され、メモリのブロックを書き込み防止するために、「相互排他ロック」(相互排除、略記ミューテックス)と呼ばれます。


9。

v2-72eb5e6fb24a6112c6b8287b8ee502c3_b.jpg

一部の客室には、キッチンとして、n個の個人を収容することができます。数がnよりも大きい場合には、余分な男は外で待つことです。これは、特定のメモリ領域のようなものです、唯一のスレッドの固定数を提供することができます。


10。

v2-68d5e8fa137ceb949fccd34b852103e1_b.jpg

次いで、溶液は、n個のドアに鍵を置くことです。彼らは元の位置に戻し、キーがたむろするとき、キーを取り、中に移動します。人々は頭上の鍵​​を見つけた後は、ドアに並んで待っていることを知っている必要があります。この方法は、複数のスレッドが互いに競合しないことを確実にするために使用される「セマフォ」(セマフォ)、と呼ばれています。

見やすい、ミューテックスセマフォは(N = 1時間)の特別な場合です。言い換えれば、あなたは、前者と後者を置き換えることができます。ミューテックスは、シンプルかつ効率的であるため、しかし、それは排他的で、リソースの利用可能性、またはこの設計を使用することを保証しなければなりません。
I種類の公共のホ[プログラマ]の懸念へようこそドキュメントが内側になり、記事の冒頭は、内側に更新されますマークします。

11。

v2-2ce18b5e79abe872fefc4711f7d6c306_b.jpg

オペレーティングシステムの設計、およびそのための三点に要約することができます。

(1)マルチプロセスを形成するために、複数のタスクを同時に実行することを可能にします。

(2)マルチスレッドの形で、異なる部分に単一の操作タスクを可能にします。

(3)スレッド間およびプロセス間の資源の共有を可能にする一方で、プロセス間の衝突を防止するために、一方ではスレッド間、調整メカニズムを提供します。


遂に 

サポートのおかげで、ヨーヨーの記事を覚えて賞賛のポイントのように、みんなと共有へようこそ!


おすすめ

転載: blog.51cto.com/14442094/2437414