LoginSignup
11
9

More than 5 years have passed since last update.

プロセスとスレッドについて

Posted at

プロセスとは何か
➡ 「インスタンス」として理解するのがいい
プログラムを実行するうえで、必要な情報とは何か。 
・どこまで処理が進んだのか、
・メモリのアドレス
・どんなファイルを開いているのか
…etc
これらを各プログラムごとにまとめたものがプロセス

一つのプログラムを実行すると、一つのプロセスが走る
psコマンドで確認できる

○大原則 1プロセッサには、同時に1プロセスしか走らない
but psコマンドの結果は複数プロセスが同時に走っているように見える
理由
 あるプロセスがcpuにある程度実行した後、ほかのプロセスにcpuを譲っている
➡これが非常に短いクロック間隔で行われているので、あたかも複数プログラムが同時に走っているように見える

この、プロセスごとの優先度や、プロセス毎に時間を割り当てるのがスケジューラと呼ばれるもの

プロセスには、状態がある 
 実行可能状態など

スレッドとは何か
➡ プロセスを細かくした実行単位といえる

1プログラムの中で、1プロセスの中で並行処理を行いたい場合 スレッドを利用する
しかし、マルチスレッドで実行したとしても、結局1プロセスであるので、マルチコアであっても、1つのコアでしか実行されない?

マルチコアに対応するために
linux kernel ➡ 「スレッド」を「ライトウェイト プロセス」にして、隠すレッドをプロセスにしてしまう。
このライトウェイトプロセスを複数のコアで扱うことができ、並列処理ができる。

参考: http://d.hatena.ne.jp/m-bird/20090604/1244165412

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9