• 締切済み
  • 暇なときにでも

マルチタスクの動作の違い

 よく、「Windows9xのマルチタスクはWindowsNTに比べてよろしくない」ということを聞きますが、具体的にどのように違いがあるのでしょう。どちらもOSがプロセスの実行権を強制的に取り上げられるプリエンプティブなマルチタスクであると聞いているのですが、細かな違いがあるのでしょうか。  また、LinuxやUNIXシリーズ、WindowsCEや3.x、PC-DOSやMS-DOS(は論外か)、MacOSについても、ご存知の方いらっしゃいましたら、ぜひともお教えください。よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数179
  • ありがとう数6

みんなの回答

  • 回答No.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のマルチタスクは、インプリエンプティブ(協調型)で、アプリケーションが決めた位置でしかタスクの切り替えができません。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ウィルス対策ソフトの動作について

    ウィルス対策ソフトが他のプロセスの実行を強制的に停止させることが良くありますけど、どのような仕組みでやってるんですか?  OSの元で動く応用ソフトからは他のプロセスの実行状況やメモリの内容は見えないはずなのにどうやって監視しているのですか?

  • プロセスを起動順に並び換える方法

    OSはUNIXです。 psコマンドで実行中のプロセスを 表示したんですが。 そのプロセスを実行順に並び換えるコマンドがわかりません。 何かおかしな事書いてあるようでしたら、 ご指摘ください。

  • OSの特徴についておしえてください

    MS-DOS Windows 95.98.Me.NT.2000.XP MAC OS UNIX LINUX TRON Windows CE の各OSの特徴を教えてください。お願いします。

  • 回答No.2

95,98ではプログラムでいくらでもCPUを占領できます。 OSに制御を戻さないような無作法な作りにするのは結構 簡単です。 NTでも・・・NetscapeNavigatorとかが良くやってくれ ますね。 #NTなのにリセットボタンよく押す(T_T) まぁ比べればNTのほうが強いってことになりますが、所 詮は数十MBのパッチあてが必要なOSですし。 MacOSは MacOS X(テン)という新しいやつで、かなり強力 になるようですね。今は過渡期という感じみたいです。

共感・感謝の気持ちを伝えよう!

質問者からの補足

2000/07/27 01:55JST  なんと、Win9xではそのようなことができるのですか。自分はプログラミングのほうは興味はあるのですが、まだJAVAでテキストを表示させるコンソールアプリ程度しか作れない状態です。さて、OSに制御を戻さないようなつくりというのは、もとよりその機能がOSに組み込まれているのか、それとも予期せずそのような機能がついてしまったのか、気になりますね。どちらでも、とにかくあるんだからいいじゃないかと言われるとそれはそれで納得ですが。  NTではCPU占有は許さないということでしょうか。まあ確かにnetscape.exeはたまにCPUリソースを占有したりしていますが。webブラウジングしつつCD-Rを焼いているときはヒヤヒヤします。  閑話休題、やはりwindows使うならNT系のほうがよりよいということですね。サービスパックは一応無条件に突っ込んでいました。大概新機能が増えていてよいことが多いので。SP4はDLLの不正な再配置で起動できなくなってあせりましたが。  MacOSも今は完全なマルチタスクではないのですね。自分はさわり程度にしか使ったことがないのですが、ユーザの方には「Windowsなど使いたくもない」といわせるほどのもののようで、興味深く思います。しかしMAC界では仮想メモリ機能を使わないのが常識のようですが、なぜメモリが不足したらわざわざ実メモリを買ってくるのでしょう。お医者さんや売れてる漫画家さんだからお金はあるし、レポートや絵をかくには遅いからでしょうか?そんなわけないでしょうな(~~;。

  • 回答No.1
noname#25358

 えとですね。  聞きかじりで申し訳ないのですが、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に近いものだとばかり思っていましたので、大変勉強になりました。本当にありがとうございました。

関連するQ&A

  • MacOSXになってどの位ソフトの数が増えている?

    MacOSXはUNIXベースなのでUNIXの豊富な資産を容易に移植できるようになったそうですね。 ソフトの数も、そろそろWindowsを追い越すのでしょうか。 MacOSで使えるソフトウエア数の推移や、他のOS(Win, Linux)との比較dataなども教えていただけると幸いです。

    • 締切済み
    • Mac
  • Linux系OSとは?

    UNIX系OSというカテゴリが,いきなり細分化されたようですが,Solaris系とか,Linux系OSっていったいなんでしょう? BSD系はのれん分けが多くあるのでまだわかるのですが,SolarisやLinuxで分派したものって,具体的に何かありますか? また,UNIX系のうち,Soraris,Linux,BSD系だけ残って,HP-UXなどは十把一絡げで,UNIXともWindowsともつかない「その他」になるのでしょうか? Mac-OSはUNIXとHP-UXと同じカテゴリ?? Windows系というのも不思議.Windows以外のWindows系OSがあるのだろうか・・・・ 私が分けるなら, Windows,Mac,Linux,BSD系,その他UNIX系,それ以外(組み込み系など) かな.

  • 堅牢OSがダウンする時って、どういう意味ですか?

    むかしDOS+WINDOWS3.1の時代、しょっちゅうハングしてしまうのでOS/2にのりかえて現在まで使っています。 その後OS/2と同様に「堅牢無比」をうたい文句にしたOSがたくさんあることを知りました。 メモリーを完全に保護されているというOS/2は、そうかと思って盛り沢山にいろいろなことをしようとすると、環境によっては脆くも簡単に落ちてしまいます。 職場で少し使ったことのあるWINDOWSNT(4.0でしたが)も、無茶なカスタマイズを何もしない状態だというのに、よく落ちました。(この例はNECのPC9800シリーズで使用していました) GIMPを使いたいがために、LINUXも少しだけやってみましたが、インストール直後の純正環境+GIMPだけの状態で、ファイルの入出力をしただけで落ちてしまいました。 非常に熱狂的な信奉者の多いMacOSも、信奉者の方の環境では漢字Talk時代から堅牢らしいのですが、一般ユーザーの環境ではすぐ落ちてしまいます。 これらの「堅牢OS」が落ちてしまうのを目の当たりにすると、「ぜい弱OS」で悪評高いWINDOWS9X系と比べて、それほど抜きんでた堅牢性を期待してはいけない、という素直な感想を感じました。 徹底したメモリー保護などそれ相応の堅牢設計になっているはずなのに、どうして「落ちないOS」として謳われているOSが、実際はよく落ちてしまうのでしょうか? ●その他のOSはまったく未経験ですが、ご回答者のみなさまが考える「おすすめ最強堅牢OS」があれば教えて下さい。 (色々異論があって当然と思いますので、多くの観点からさまざまなご意見をうかがえればと思います)

  • 実行プログラム名の取得

    Linux上にてC言語でプログラムを書いています。 実行中のプログラムから、自分が起動された際のLMの名前を得るには 一般的にはどうしたらいいのでしょうか? 色々考えた結果、 getpidにてプロセスIDを取得し、/procより自プロセス情報を参照すること によって実現はできたのですが、もっとスマートな方法はないのでしょうか? また、この方法だと/procをサポートしていない他のUNIX(系)OSの場合では 実現できないことになってしまうので、別な方法はないのでしょうか? ご存知の方いましたら宜しくお願いします。

  • 仮想化PCでMS-Dosを使う

    仕事上MS-Dosを使う必要があります。 現在Windows XP SP.3にVirtual PC2007 SP.1をインスト-ルし, ゲストOSとしてWindows 98SEを入れ,そのMS-Dosプロンプトを使用しています。 問題なく使用できていますが, 98SE本体を使用することがまったくないため, できればMS-Dosを直接インストールしたいのです。 (起動,シャットダウン時間が短縮できるので) しかし,MS-Dos 6.22やPC-Dos 7.0をインストールしたものの, ソフトによっては,動きが非常に遅く,ぎくしゃくして,使用に耐えません。 そこで,お伺いします。 上記の対処法をご存じの方がおられましたら,ぜひご教示お願いいたします。 また,Virtual PC2007以外で,MS-Dosが使用できる仮想化ソフトがありましたら, ご推薦くださいませんか? Linuxも含めてお願いいたします。 条件としては,共有フォルダを使用できることです。 どうかよろしくお願いいたします。

  • CGI経由で起動したプロセスが停止してしまう

    CGIからある処理プロセスを実行させているのですが、このプロセスを長時間実行させたままにしておくと停止してしまいます。 (このプロセスはあるファイルの状態を監視しているので、停止の指示をしない限りずっと動かしっぱなしにしておきたいのですが・・・) このプロセス自体がおかしな動きをしているようには見えないのですが、何が原因で停止してしまうのか、またどうすれば停止しないようになるのか教えていただけないでしょうか? OSはRedHat Linux 5.1です。

    • 締切済み
    • CGI
  • C言語でホスト(Unix)にプログラム/プロセスを送信して実行する方法

    C言語でホスト(Unix)にプログラム/プロセスを送信して実行する方法を探しています。 用途はまだ具体的に決まってませんが 例えば、ある与えられたコマンドを各ホストに一斉送信して その結果をまとめて取得する、ようなことがしたいです。 どんなに難しくなってもいいので、いい方法や関数があったら教えて下さい。

  • 実行中のプロセスのシステムコールフックについて

    表題の通り,実行中のプロセスのシステムコールのフックについて質問があります. 現在,Linux上の全てのプロセスがどんなシステムコールを使って,どんなリソースにアクセスをしているのか調査しているのですが 具体的には以下のURLのソフトと同じものを,Linux上でC言語を用いて作りたいと考えています. [Process Monitor] http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx いろいろ調べていく中で strace http://www.netadmintools.com/html/1strace.man.html を使うと目的としている調査が実装できそうだということでさっそくいじってみたのですが, strace では既に実行されているプロセスのシステムコールの呼び出しをトレースすることはできないようでした. そこで1点質問なのですが,既に実行中のプロセスのシステムコールをフックするにはどのような方法を使えばいいのでしょうか. お分かりになるかたご回答よろしくお願いします. こちらの開発環境は以下です. OS: Debian 4.0 Kernel: 2.6.20-16 gcc: 4.1.2 (3つとも11/9現在の最新版を使用しています)

  • Xeon

    最近のセレロンのパソコン使っているのですが、CDをインポートしようとすると、動きが緩慢になり「シャーシャー」 うるさく、フォトショップ立ち上げれば数秒読み込みかなんかの無駄な時間。アドビアクロバット開くと これも同じく数秒読み込みかなんかの無駄な時間。 これって、ハイエンドとされるメモリー満タンのXeonプロセッサーとかのを使うと全部瞬時に行われたり、 解消される感じでしょうか? それとも根本的なOSの問題かなんかだから、UNIX、LINUXとかじゃないと何でもマルチタスクでサクサク とは行かない感じなんでしょうか?御願いします。

  • ssh接続を強制切断する方法

    OSにlinuxのRedHatを利用しています。 ssh接続しているユーザを強制切断する方法として、 すぐに思い浮かぶのはプロセスIDを調べてKillする方法ですが、 このほかに、例えばlinuxのコマンドを利用して 強制切断する方法はありますでしょうか? また、他に方法ありますでしょうか? よろしくお願いします。