
こんにちわ。
Windowsにあるスレッドとプロセスという機能についてお聞きしたいと思います。
いろいろ調べてはみたんですが、いまいち具体性がなくてわからないのです。
両方とも抽象的な概念なのでしょうか?専門的かつわかりやすく教えていただけないでしょうか。
それと、調べていて疑問に思ったことがあります。
例えばWebサーバなどで、外部からの攻撃で落とすことができるようなセキュリティホールがあった場合、落ちる単位がプロセスなら、負荷攻撃で済み、スレッド化しているとサーバ自体がダウンしてしまうことになる。
というふうに書いてありました。なぜでしょうか。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>例えばWebサーバなどで、外部からの攻撃で落とすことができるような
>セキュリティホールがあった場合、落ちる単位がプロセスなら、負荷
>攻撃で済み、スレッド化しているとサーバ自体がダウンしてしまうことになる。
>というふうに書いてありました。なぜでしょうか。
たとえばWebサーバならApacheが定番ですが、Apache2.0からマルチプロセスに
加えて、マルチスレッドでも動作する様になりました。
詳しく説明しだすと大変なので簡単ですが、
取り敢えず、プロセスは一つのプログラムと思ってもらってよいです。
Apacheを起動すると、複数のApacheが独立したプロセスとして動きます。
たくさんのパソコンからWebサーバにアクセスがあっても、複数の
Apache(プロセス)が分担して受け付けて処理してくれる訳です。
各プロセスは独立していますから、そのうち一つがこけてしまっても
Webサーバは問題なく動き続けてくれる訳です。
但し、各プロセスはそれぞれ自分だけのメモリ(アドレス空間)が必要
なので、たくさんプロセスを動かす時はそれだけメモリ等のリソース
が必要になります。
また、複数のプロセスが同時に動くと言っても、実は瞬間的にプロセス
が切り替わっている訳で、パソコンにとって処理は重たいです。
一方、スレッドとは1プロセス内に生成される処理の単位です。
マルチスレッドとは一つのプロセス内に複数のスレッドが同時に
動作する事です。
分かりやすく言うと一つのプログラム(プロセス)の中で、
あるサブルーチンが複数同時に動く様なイメージです。
マルチプロセスの様にプロセスを切り換える必要がないので、処理
も高速です。
また、1プロセスが確保したメモリを、各スレッドが共有して動作
する(共有メモリ)為、マルチプロセスよりも少ないメモリで動かす
事が可能です。
但し、各スレッド間でメモリを共有するので、一つのスレッドの動作
がおかしくなって、メモリのデータを破壊すると、他のスレッドが
道連れになってプロセス全体がクラッシュする可能性があります。
その為、マルチプロセスに比べて、マルチスレッドは安定製の面で
不利です。
ついでですが、Apache2.0からは前述のマルチプロセスモデル、
マルチスレッドモデルに加えて、ハイブリッドモデルというモード
もあります。
マルチプロセスの各プロセス毎に複数のスレッドを動かせるモードです。
この回答への補足
とても詳しく教えていただきありがとうございます。
プロセスはなんとか理解したんですが、
スレッドの方がまだよくわかっていないです。
Webサーバに多くのパソコンからアクセスがあった場合、
マルチスレッドだとどういうことになるんでしょうか。
そのあたりをもう少し詳しくお願いできますでしょうか。
よろしくお願い致します。
No.4
- 回答日時:
>Webサーバに多くのパソコンからアクセスがあった場合、
>マルチスレッドだとどういうことになるんでしょうか。
>そのあたりをもう少し詳しくお願いできますでしょうか。
Webサーバにとっては、やる事は一緒です。(クライアントからのアクセスを処理する)
#1でも説明しましたが、ようするにWebサーバにおける、マルチスレッドモデルの一番の利点は、
マルチプロセスモデルと比較して、少ないメモリでたくさんのアクセスを処理できるという事ですね。(プロセスは一個だから。)
だけど、こける時は全体が道連れになる可能性が高いという事です。
Apacheをマルチプロセスモデルで運用している場合、クライアントからのアクセス数に応じて、プロセスがどんどん増えていくので、サーバの負荷も増えていきます。(プロセス数の上限はありますが。)
あとは、#2さんや、#3さんの楽しいたとえ話を期待してください。^^
No.3
- 回答日時:
No.1の回答が素晴らしいので、別の観点から。
プロセスを貸しゴーカートとしましょう。係員はOSです。
ゴーカートは、3人乗りとしましょう。1人で乗る人も、2人で乗る人もいます。
運転手は1人ですが交代しても構いません。
ここでゴーカートがプロセス、お客さん1人1人がスレッドです。
(1人で乗っているときはスレッドとは言いませんが)
1プロセス2スレッドの場合、運転手が交代する事でアクティブなスレッドが切り替わります。
No.2
- 回答日時:
プロセスに関しては、xjdさんの回答が、大変わかりやすく、文句の付け所のないものなので、スレッドについてもう少し簡単に補足します。
> 分かりやすく言うと一つのプログラム(プロセス)の中で、
> あるサブルーチンが複数同時に動く様なイメージです。
例えばプロセスを人としましょう。
とすればスレッドは一つ一つの仕事(動作)です。
Aさんは、シングルスレッドな人間だとします(笑)
すると、Aさんは、ご飯を食べ出すと他には何も出来ません。
話をすることも出来なければ、テレビを見ることも出来ません。
今度は、Bさん。Bさんは超マルチスレッドな人間です。
ご飯食べながら人と話をすることも出来ますし、更にご飯を食べながら、人と話をしながら、テレビを見ながら、新聞を読める!と言う事が出来ます(笑)
# 呼吸は?などの突っ込みはお断りします(笑)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- グループウェア slackについて取り急ぎ教えて頂きたいことがあります 2 2022/04/08 09:05
- その他(悩み相談・人生相談) 自分の行動を変えるための具体策が思いつきません。 自分は「自分本位であること」「物事のやり忘れがおお 3 2023/07/06 08:57
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- ノートパソコン Windows11搭載パソコン 新規購入にあたって 4 2022/11/09 18:11
- 野球 野球のXについて 2 2022/11/20 19:16
- 政治 私は文部科学省ヘ入り込んで投稿した私の建議文を彼らが私の依頼まましましょうか。? 2 2023/08/22 07:08
- HTML・CSS 別サイトのHTML内にある情報を自動取得して、自分のサイトに組込む方法を教えてください。 例えば、Y 1 2023/06/15 08:09
- 大学受験 現代文について教えください。 問題 傍線部1「科学的方法」とあるが、それは具体的にいうとどのような方 3 2022/10/16 20:31
- その他(教育・科学・学問) 論文の査読 2 2022/12/09 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
プロセスのアタッチ・デタッチ...
-
c言語でプロセスIDを調べたい
-
起動中の他のプログラム(orプ...
-
VB6.0 SHELLで起動...
-
C++のプログラムをバックグラウ...
-
GetModuleFileNameでエラーが出...
-
AppActivate関数について
-
第三者に画面を同期するソフト...
-
Process.Startの戻り値を後で取得
-
スレッドとプロセスについて
-
popen について
-
VBS(WSH)で開いたIEのウィンド...
-
ウィンドウのタイトルからプロ...
-
警告『 別のプロセスで使用され...
-
ソニーやキオクシア、マイクロ...
-
UNIX関数?(popen)...
-
exeファイルを終了させない。
-
プロセス監視の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
C#でのbatファイル実行結果取得
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
怪しいプロセス教えてください。
-
sleep関数の精度について
-
【C#】別プロセスがロックか...
-
Process.Startの戻り値を後で取得
-
IISがフリーズ
-
プロセスIDからウィンドウハ...
-
Linuxでのスレッド間メッセージ...
-
Windowsでのfork方法
-
SendMessageが失敗するときがある
-
警告『 別のプロセスで使用され...
-
WSH.Runで待機できません
-
VB.NETで起動したExcelの閉じ方...
おすすめ情報