- ベストアンサー
スレッドとプロセスについて
こんにちわ。 Windowsにあるスレッドとプロセスという機能についてお聞きしたいと思います。 いろいろ調べてはみたんですが、いまいち具体性がなくてわからないのです。 両方とも抽象的な概念なのでしょうか?専門的かつわかりやすく教えていただけないでしょうか。 それと、調べていて疑問に思ったことがあります。 例えばWebサーバなどで、外部からの攻撃で落とすことができるようなセキュリティホールがあった場合、落ちる単位がプロセスなら、負荷攻撃で済み、スレッド化しているとサーバ自体がダウンしてしまうことになる。 というふうに書いてありました。なぜでしょうか。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- プロセスとスレッドの違いについて(Cプログラミングの観点から)
プロセスとスレッドの違いがしっくりきません。 <プロセス> (1)プログラムの実行単位。Windows や Linux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される (2)起動や切り替えのオーバーヘッドが大きい <スレッド> (1)同一プロセス内の複数スレッドを同一メモリ空間上で実行でき、メモリ消費量などが軽減できる。 (2)マルチスレッド処理のプログラミングにおいては、同じデータを複数のスレッドが同時に書き換えることによる不整合に注意し、排他制御を行う必要がある。 等はwiki等調べて理解しています。 何が疑問なのかと申し上げますと、具体的にプログラミングする際に (1)マルチプロセスとマルチスレッド方式では、ソースにどのような違いが出てくるか (2)マルチプロセスとマルチスレッド方式では実行時間がどれだけ変化するか がわからないのです。お仕事で並列処理等について担当されている方などおられましたら、お手数ですがご教授ください。 なお、わかりやすい書籍、webサイト等ありましたらそれも併せて教えていただけると助かります。よろしくお願いします。ちなみに、環境はWindowsXP,VisualC++ExpressEdition2005を使っていますので、UNIXよりはWindowsかつCで動くプログラム例で教えていただけると大変助かります。しかし、当方Javaも多少であれば組めますのでJavaでも構いません。 何卒、よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- タスクやプロセス管理について
このカテゴリでよいか迷ったのですが質問させていただきます。 私は今までの仕事で、某セキュリティ会社の防犯監視システム開発、某携帯電話開発(UI)に携わってきました。 そこではリアルタイムOSマルチタスク環境でのプログラム開発だったのですが、マルチタスクといっても当然タスク毎に"実行可能状態"、"待ち状態"、"実行中状態"等(その他いろいろ)、各種状態を持ち、タスクプライオリティに従いOSがタスクのスケジューリングを行い順次タスクが切り替わって制御されているという感じだったのですが(何が言いたいかというと優先順位の違う複数のタスクが並列で動くことはないですよね?と言いたいのですが)、 今回LinuxOS(MontaVista)でのプログラム開発を行ってみて違いに戸惑いを感じました。(マルチ)プロセスとは何ぞや?から始まり、さらにそのプロセス内で作成されるスレッド、そのプロセス・スレッドは他のプロセス・スレッドと並列で動く等等。(正確にはあたかも同時に動作しているかのように見えるってことですよね?) 前半の"タスク"と後半の"プロセス"とはこのように別物なのですよね? 今までの経験では並列動作という概念が無かったもので、どうもしっくりこなく意見をあおぐ為投稿させていただきました。 かなり漠然としたことで恐縮なのですが、今まで述べたことでなにか勘違いしているんじゃないかとか間違えていることとかありますか? 長文となり申し訳ありません。
- ベストアンサー
- C・C++・C#
- 自宅鯖でWebサーバを構築する為のセキュリティ
質問です。 MySQL, PHP, Apacha(webのみ)のサーバ構築を行っているのですが、 外部公開した際の対策をお願いします。 外部攻撃や乗っ取り、DDos攻撃対策やインジェクなんとか攻撃、 処理分散対策など、 あなたがしている根本的セキュリティを教えて下さい。
- 締切済み
- その他(ITシステム運用・管理)
- apacheのプロセスが増え続けます
Apache2.0.53環境でWebサーバを運用しています。 普段は問題なく稼働しているのですが、たまに激しく負荷がかかる時があります。 topで確認するとR状態のhttpdで埋め尽くされており、load averageは上昇するばかり。 放置しているとメモリが食いつぶされ、サーバがダウンしてしまいます。 ログを確認したところ、クローラのアクセスが相次いでいたのでiptablesでアクセスを拒否しましたが状況はさほど変化がありません。 このような状況になった場合、皆様はどのように問題の解決に当たっているのでしょうか? ぜひ先輩方の意見をお聞かせいただきたいです。 よろしくお願いします。
- 締切済み
- Linux系OS
- WEBシステムがダウンする前に前兆を感知する仕組み
お世話になります。 Javaで作られた不特定多数のユーザさんが利用するWEBシステムがあります。 外部プログラムを呼び出した処理で外部プロセスのリターンが滞ったため、 外部プロセスの呼び出しボタンの連打→プロセスが増える→サーバが重くなる→システムにログインできなくなる。のような障害が発生しました。 これから外部プログラムの呼び出し後の待ち時間をタイマーで制限するような処置をとりたいと思いますが ほかにもアプリの方でシステムが重くなってダウンする前に前兆を感知する仕組みに関して、いいアイディアがあったらご教授お願いします。 (あくまでもアプリの方でできることを知りたいです。) ちなみにダウンしてからはダウンした情報を知る仕組みは既にもっています。 皆様の知恵をぜひぜひお借りしたいです。 よろしくお願いいたします。m(_ _)m
- ベストアンサー
- Java
- Javaで実環境でのプロファイリング
Javaでかなり多機能なサーバアプリケーションを作っているのですが、 普段はCPU負荷1%程度なのに特定の条件下で一時的に負荷が100%になってしまいます。 その原因を探るのに開発環境であれこれやってみても再現せず、 実環境(ユーザーに使ってもらっているサーバー)でその問題が発生した時にスレッドダンプや全スレッドのスタックトレースを取りたいと思ったのですが、 私の認識では、スレッドダンプを取るとプロセスが死んでしまい、Javaでは他スレッドのスタックトレースが取れず、プロファイラは実環境で使えるほど高性能ではないと思っています。 プロファイラもCPU負荷が高くなったときだけ働くようにするなどピンポイントに動作させれたらいいのですがそういうものは見つかりませんでした。 なにか良い方法は無いでしょうか?
- ベストアンサー
- Java
- HTTP80ポートって?
ファイアーオールMCAFEEを使用しています。 自サーバーでWindows・Apatchで試験的にHP公開してみたんですが、外部からアクセスすると、ファイアーオールで(例)『IPアドレス210.153.84.237のコンピュータはシステムポート(TCP 80 ポート)の1つにアクセスしようとしました。』 という警告がでてきたんで、ファイアーオールの設定を変更し、Webサーバー(HTTP)ポート80を外部からのアクセスも許可するように変更しました。そうしたらHPを外部のWeb上から見る事ができました。このポートを開きぱなっしにしてると、外部からの攻撃とか受けますか?また受けるとしたらどんな攻撃にあうのか教えてもらえないでしょうか?ネットワーク系セキュリティがあまり詳しくないので宜しくお願いします。
- ベストアンサー
- ネットワーク
- psコマンドの実行結果(crond)
お忙しいところ申し訳ありませんが、 御教示いただければと思います。 ウェブサーバでpsコマンドを定期的に実行をしています。 そのなかでcrondなるデーモンが100個くらいある場合があります。 実際に100個のcronを設定しているわけではないのですが・・・ また、ウェブサーバをリブートすると消えますが、少しすると徐々にcrondが増えてきます。 1分毎に複数のcronが起動します。サーバ側が数が多すぎて プロセスの終了をうまく捕まえられずに残っていることはあるのでしょうか。 当該プロセスの子プロセスはありませんでした。 また、このウェブサーバが頻繁にダウンします。 このプロセス数が膨大になりダウンを招いていたりするものなんでしょうか。 お忙しいところ申し訳ありませんが、 御教示の程お願い致します。
- ベストアンサー
- Linux系OS
- セキュリティポリシーって・・・?
FWをネットワークの実験のために構築しようとしています。 そこで、セキュリティポリシーを考えなさいといわれましたが、 いまいちピンときません。 皆さんは具体的にどのようなセキュリティポリシーをもっているのでしょうか? どういった風にポリシーを考えたらいいのでしょうか。 とりあえず今は、LAN内から外部は自由にアクセス可能にしたいと思っています。 それと外部からLAN内にはWebサーバーやFTPサーバー以外は利用させたくないので そのアクセス以外は基本的に防ぎたいと思っています。 これだけではセキュリティポリシーとはいえないのでしょうか?
- ベストアンサー
- ネットワーク
- IIS ワーカープロセスとメモリの関係
IISのアプリケーションプールにて社内Webサービスを稼働していますが、 特定の時間帯にCPU使用率が100%になってしまいます。 タスクマネージャーで確認すると「w3wp.exe」が高負荷の原因と なっていることは分かりました。 高負荷時はアプリケーションプールにてリサイクルを行っていますが、 速攻性はありません。 何か改善するかと思い、アプリケーションプールの詳細設定にて、 ワーカープロセスを「3」 リサイクル:プライベートメモリ制限「15GB」 に変更するも効果ありませんでした。 (1)チューニングが必要かと思いますが、 アプリケーションプールの最善な詳細設定ありますでしょうか? (2)ワーカープロセス「3」の場合、メモリ制限はいくつが最適でしょうか? Windows Server 2012 R2 CPU:Xeon E5-2603 v3 1.60GHz コア:6 メモリ:56GB 無知で申し訳ありませんが、 アドバイス頂けたら助かります。 宜しくお願い致します。
- 締切済み
- ハードウェア・サーバー
補足
とても詳しく教えていただきありがとうございます。 プロセスはなんとか理解したんですが、 スレッドの方がまだよくわかっていないです。 Webサーバに多くのパソコンからアクセスがあった場合、 マルチスレッドだとどういうことになるんでしょうか。 そのあたりをもう少し詳しくお願いできますでしょうか。 よろしくお願い致します。