2012/03/25

プロセスとスレッドの違い

実行しているアプリケーションはLinuxカーネルの中では「プロセス」または「スレッド」という単位で管理されます。

アプリケーションを起動すると、カーネルはプロセスを生成します。

プロセスには、番号が振られ、同じアプリケーションの処理でも起動するたびに別の番号になります(プロセスID)

 

カーネルはプロセスごとに、必要なメモリーを割り当てます

そこにアプリケーションの実態であるプログラムを読み込みます

そのメモリー上のプログラムをCPUで実行し、アプリケーションが動作しています

 

Linuxでは、プロセスとスレッドの違いはメモリーを共有しているかどうかだけです。

プロセスは一つのメモリー空間を使用し、スレッドは複数のスレッドで一つのメモリー空間を使用しています

基本的には同じように扱われます

 

プロセス

IMG_3493

プログラムをメモリーに読み込み、CPUが実行してプログラムが動作します

スレッド

IMG_3494

プロセスではなく、スレッドとして実行されるプログラムもある。

スレッドはメモリーを共有しているので、起動が早く、動作が軽い

0 件のコメント:

コメントを投稿