- 締切済み
マルチタスクの動作の違い
よく、「Windows9xのマルチタスクはWindowsNTに比べてよろしくない」ということを聞きますが、具体的にどのように違いがあるのでしょう。どちらもOSがプロセスの実行権を強制的に取り上げられるプリエンプティブなマルチタスクであると聞いているのですが、細かな違いがあるのでしょうか。 また、LinuxやUNIXシリーズ、WindowsCEや3.x、PC-DOSやMS-DOS(は論外か)、MacOSについても、ご存知の方いらっしゃいましたら、ぜひともお教えください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ARC
- ベストアンサー率46% (643/1383)
Win9Xは32bit部と16bit部が混在しているOSで、32Bit部に関してはわりかしマトモに、マルチタスク動作できるのですが、16bit部はCPUの仕様などから、プリエンプティブなマルチタスクができないようになっています。 またOSの仕様で、16bit部はすべてのプログラムで共通のメモリ領域を使用するようになっていて、例えば、16BitプログラムAがクラッシュすると、他の16BitプログラムBやCにも悪影響を与えます。 あと、DLLの扱いについてもWin9XはNTやLinuxと異なります。 Win9XのDLLは、単一のメモリ領域に配置され、それを複数のアプリケーションから使うようになっています。 この方式は、メモリやCPUキャッシュの使用効率がいいのが特徴ですが、一つのDLLがクラッシュすると、それを使用している複数のアプリが影響を受けます。 それに対し、NTやLinuxなどは、DLLの使用領域をアプリケーションごとに用意しますので、あるDLLがクラッシュしても、影響を受けるアプリは一つにとどまります。 MacOSですが、現段階では、メモリ保護やプリエンプティブなマルチタスクは実装されていないようです。 MS-DOSには、OSレベルではマルチタスク機能は装備されていません。 アプリケーションレベルで、個別に装備することは可能です。 Win3X,2X,1Xのマルチタスクは、インプリエンプティブ(協調型)で、アプリケーションが決めた位置でしかタスクの切り替えができません。
- shigatsu
- ベストアンサー率26% (511/1924)
95,98ではプログラムでいくらでもCPUを占領できます。 OSに制御を戻さないような無作法な作りにするのは結構 簡単です。 NTでも・・・NetscapeNavigatorとかが良くやってくれ ますね。 #NTなのにリセットボタンよく押す(T_T) まぁ比べればNTのほうが強いってことになりますが、所 詮は数十MBのパッチあてが必要なOSですし。 MacOSは MacOS X(テン)という新しいやつで、かなり強力 になるようですね。今は過渡期という感じみたいです。
えとですね。 聞きかじりで申し訳ないのですが、95/98系のWinには、TSSの処理に手抜きがあるのだそうです。 TSSというのは、Time Sharing Systemつまり、時分割で「アプリA、B、Cそれぞれに0.1秒ずるの時間を配布し、時間が来たら実行権強制的に取り上げる。そうすることで均等に処理を実行する」という処理のことですが、NTの場合完全なTSSになっていますから、アプリがハングアップしてもOS自体が影響をうけることはないわけですが(理論上はね(^_^;)、95/98の場合、その、時間になったら処理を取り上げる、という処理が何か簡易的になっている、という話を聞きました。98になってだいぶマシにはなったらしいですがね。 ちなみに、MacOSはよくわかりませんが、LinuxとUNIXはどちらも完全TSSです。これらはどちらも、もともとCUIのOSですから、割と徹底的に作られているようです。 WindowsCE、3.1、PC-DOS、MS-DOS、これらはすべてシングルタスクですから、常駐などの処理をアプリ側が行わない限り、フォーカスの当たっていないアプリは完全に停止していることになるわけです。
補足
2000/07/27 01:11JST なるほど、確かにNTと9xではレスポンスに大した違いがありますね。先日店頭にあったノートパソコンをいじってみたら、自分のデスクトップPC(Windows2000)と同程度のCPUであるのに少し処理をさせるとフォアグラウンドのアプリケーションの処理が、再描画の段階で結構厳しくなっていたのには驚きました。NTでは少しくらいの処理ではフォアグラウンド処理が滞ることなどありませんからね。それとも気のせいでしょうか。 LinuxとUNIXはWindowsでいえばNTのような厳密なTSSを実装しているのですね。どうもDOSになれてしまった自分としては、バックグラウンドで誰かが処理を行っているというのがイメージが湧きにくいところではありますが。 しかし、WindowsCEがWin3.1などと同じとは驚きました。見た目からWin9xに近いものだとばかり思っていましたので、大変勉強になりました。本当にありがとうございました。
補足
2000/07/27 01:55JST なんと、Win9xではそのようなことができるのですか。自分はプログラミングのほうは興味はあるのですが、まだJAVAでテキストを表示させるコンソールアプリ程度しか作れない状態です。さて、OSに制御を戻さないようなつくりというのは、もとよりその機能がOSに組み込まれているのか、それとも予期せずそのような機能がついてしまったのか、気になりますね。どちらでも、とにかくあるんだからいいじゃないかと言われるとそれはそれで納得ですが。 NTではCPU占有は許さないということでしょうか。まあ確かにnetscape.exeはたまにCPUリソースを占有したりしていますが。webブラウジングしつつCD-Rを焼いているときはヒヤヒヤします。 閑話休題、やはりwindows使うならNT系のほうがよりよいということですね。サービスパックは一応無条件に突っ込んでいました。大概新機能が増えていてよいことが多いので。SP4はDLLの不正な再配置で起動できなくなってあせりましたが。 MacOSも今は完全なマルチタスクではないのですね。自分はさわり程度にしか使ったことがないのですが、ユーザの方には「Windowsなど使いたくもない」といわせるほどのもののようで、興味深く思います。しかしMAC界では仮想メモリ機能を使わないのが常識のようですが、なぜメモリが不足したらわざわざ実メモリを買ってくるのでしょう。お医者さんや売れてる漫画家さんだからお金はあるし、レポートや絵をかくには遅いからでしょうか?そんなわけないでしょうな(~~;。