11

この質問が主観的すぎないことを願っていますが、なぜ Windows はリアルタイム システムや高性能サーバーには不適切なオペレーティング システムと見なされるのでしょうか。*nixの代替品と比較してパフォーマンスを測定する技術論文や研究はありますか?

開発者がなぜこれらのタイプのシステムに Windows を使用することに反対しているのかについての説明を実際に聞いたことはありません。正当化する必要はありません。

オペレーティング システムのデスクトップ バージョンではなく、Windows CE/Windows Server について質問していることに注意してください。

4

5 に答える 5

10

リアルタイム OS には、ある程度の決定論的動作が必要です。常に尊重され、特定の優先度を持つ割り込みを持つ特定のタスク優先度を設定できるようにしたいと考えています。アプリケーションの外部にあるデーモンまたはタスクに優先順位を与えることを決定する可能性のある OS を持つことはできません。システムによってはマイクロ秒が問題になる場合がありますが、アプリケーションの外部でデーモンを処理するために 50 マイクロ秒オフになる OS は致命的である可能性があります。

とはいえ、Windows をリアルタイム アプリケーションに使用できないという意味ではありません。実際、私はそれを何度か行ったことがありますが、システムに組み込まれたハードウェア カードとバッファリングによってリアルタイムの側面が処理されただけです。OS が数百ミリ秒遅れていた場合は、ディスプレイのデータに目に見える問題がある可能性があることを意味していました。データが失われたり、収集されなかったりしたことはありません。また、実行中の他のタスクをカスタマイズすることで問題を回避することもできました (ハードコア ゲーマーとほぼ同じことです)。

別の方法として、リアルタイム ハードウェアがコールバックを発行し、それを Windows コードが確認してから USB メッセージを送信するリアルタイム システムを実行するという最近の要求がありました。メッセージはマイクロ秒以内に送信する必要があり、遅延が何であれ、USB メッセージを受信するシステムが遅延を補償できるようにする必要がありました。これは、Windows が適していないものであることに気付き、設計が作り直されました。

この質問は現在クローズされていますが、このトピックについて書いたより長いブログ投稿へのリンクを使用して、この応答を更新すると思いました。

于 2011-06-01T19:19:32.577 に答える
6

Windows は、主に孤立した悪い経験 (誰もがいくつか経験していますよね?) に基づいて、それについて長年の評判を持っています。残念ながら、大多数のシステム管理者は、Microsoft から無料で入手できるパフォーマンス チューニングに関するドキュメントを見たことがなく、システムを適切にチューニングすることに苦労した人はさらに少数です。

リアルタイムで重要なシステムは Windows で動作します。たとえば、コール センター ソリューションを見てください。これは私の専門分野の 1 つであり、まさにこれを行っている数十台のサーバーを監督しています。これらのマシンは、音声認識と音声合成を同時に処理し、データベースとプログラム可能なコール ルーティング システムと通信する何百もの回線を持つことができます。電話会社の機器への応答が遅れると、これらの通話の一部またはすべてが切断されたり、通話品質が大幅に低下したりする可能性があります。ウイルス対策やその他のセキュリティ対策を実装する必要がありますが、これらのシステムは稼働しています。

実行する必要がある最も重要なことは次のとおりです。 * 更新のチェックと適用、ディスクのメンテナンス (デフラグ操作やクリーンアップなど)、フル スキャンなどの定期的な自動化されたジョブとプロセスを排除し、メンテナンスのために定期的にスケジュールされたダウンタイムに移行します。* システムがスワッピングで行き詰まらないように十分なメモリを確保する * 断片化がスワップファイルに干渉しないように、スワップを独自のパーティションに配置する (私のシステムのいくつかにはこれがなくても動作する)ウイルス対策ベンダーは、適切な保護を提供しながらサーバーへの干渉を最小限に抑えるように製品を微調整します - ほとんどのウイルス対策ソフトウェアは、サーバーではなくデスクトップでの使用を意図しており、調整が必要です * グループを調整する /ローカル セキュリティ ポリシー

最終的に、UN*X システムは、適切に管理しないと、同じ問題を抱えている可能性があります。スケジュールされたジョブ、不適切なスワップ構成、侵入型のサード パーティ製セキュリティ ソフトウェアなどです。また、セキュリティに関しても見落とされることが多いため、Windows サーバーが侵害された場合と同じように、セキュリティが侵害されても驚くことはありません。

バランスを取らなければなりません。どちらのプラットフォームも同じように管理を誤る可能性があり、両方のプラットフォームが適切に調整されている可能性があります。主に UN*X プラットフォームのユーザーと話している場合、彼らにはプラットフォームが好きな理由があり、Windows に対して多くの偏見を持っているため、それを反映した回答が得られます。Microsoft の担当者と話している場合、彼らの視点からも同じことがわかります。

プラットフォームを選択する際に最も重要なことは、実行しているアプリケーションのベンダー サポートであるべきです。彼らはどちらに多くの投資を行っており、開発においてどちらを支持してきたでしょうか? 最も効果的であることが証明されているものは何ですか? また、今後も引き続き利用できるものは何ですか?

于 2011-06-01T19:40:59.957 に答える
2

答えが必要な場合は、いくつかの事実を教えてください。Windowsは高性能サーバーには適していないというのは誰ですか?手がかりはありませんが、あなたは明らかにそうしています。ですから、あなたは私たちよりもそれに答える資格がありますね。

リアルタイムシステムについては?それは本当です。WindowsはリアルタイムOSではないため、適していません。LinuxとOSXについても同じことが言えます。リアルタイムシステムには、かなり特殊なOSが必要です。そして、パフォーマンス、スループット、応答性を目的とした主流のOSは、Microsoftによって作成されたものであろうと、他の誰かによって作成されたものであろうと、うまくいきません。

于 2011-06-01T19:05:27.513 に答える
2

通常、リアルタイム システムには最大応答時間の要件があります。Windows はそのような保証を提供できません。

高パフォーマンスの Windows サーバーに関しては、StackOverflow を実行しているのは何だと思いますか?

于 2011-06-01T19:07:44.840 に答える
1

あなたが受け取った答えは正しかった:Windowsは単にRTOSではない。1つになるには、スケジューリングに関して特定の保証を行うことができなければなりません。そのために必要な動作は、通常のサーバーまたはワークステーションに適した動作とは特に互換性がありません。

「高性能」に関しては、それは漠然としています。Windowsのサーバーエディションは、高性能システムを実行できます。

于 2011-06-01T19:07:30.537 に答える