• 締切済み

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

noname#25358の回答

noname#25358
noname#25358
回答No.1

 えとですね。  聞きかじりで申し訳ないのですが、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、これらはすべてシングルタスクですから、常駐などの処理をアプリ側が行わない限り、フォーカスの当たっていないアプリは完全に停止していることになるわけです。

sophia
質問者

補足

2000/07/27 01:11JST  なるほど、確かにNTと9xではレスポンスに大した違いがありますね。先日店頭にあったノートパソコンをいじってみたら、自分のデスクトップPC(Windows2000)と同程度のCPUであるのに少し処理をさせるとフォアグラウンドのアプリケーションの処理が、再描画の段階で結構厳しくなっていたのには驚きました。NTでは少しくらいの処理ではフォアグラウンド処理が滞ることなどありませんからね。それとも気のせいでしょうか。  LinuxとUNIXはWindowsでいえばNTのような厳密なTSSを実装しているのですね。どうもDOSになれてしまった自分としては、バックグラウンドで誰かが処理を行っているというのがイメージが湧きにくいところではありますが。  しかし、WindowsCEがWin3.1などと同じとは驚きました。見た目からWin9xに近いものだとばかり思っていましたので、大変勉強になりました。本当にありがとうございました。

関連するQ&A

  • dos2unix(コード変換)をしなくてもも済むLinuxの設定

    RedHat Linux9でWebサーバーをつくり、Perlを使ったCGIプログラムもアップしています。しかし、CGIプログラムはWindowsで作成し、Linuxにアップしているので、そのままだとコードが違い表示されないので、 dos2unix < DOS_FILE >UNIX_FILE とLinux側でやってコードを変換しています。 これをいちいちやらないようにするためにはどうすれば良いのでしょうか。 何かをLinuxにインストールするなどしたら大丈夫になりますか?

  • プロセスとスレッドの違いについて(Cプログラミングの観点から)

    プロセスとスレッドの違いがしっくりきません。 <プロセス> (1)プログラムの実行単位。Windows や Linux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される (2)起動や切り替えのオーバーヘッドが大きい <スレッド> (1)同一プロセス内の複数スレッドを同一メモリ空間上で実行でき、メモリ消費量などが軽減できる。 (2)マルチスレッド処理のプログラミングにおいては、同じデータを複数のスレッドが同時に書き換えることによる不整合に注意し、排他制御を行う必要がある。 等はwiki等調べて理解しています。 何が疑問なのかと申し上げますと、具体的にプログラミングする際に (1)マルチプロセスとマルチスレッド方式では、ソースにどのような違いが出てくるか (2)マルチプロセスとマルチスレッド方式では実行時間がどれだけ変化するか がわからないのです。お仕事で並列処理等について担当されている方などおられましたら、お手数ですがご教授ください。 なお、わかりやすい書籍、webサイト等ありましたらそれも併せて教えていただけると助かります。よろしくお願いします。ちなみに、環境はWindowsXP,VisualC++ExpressEdition2005を使っていますので、UNIXよりはWindowsかつCで動くプログラム例で教えていただけると大変助かります。しかし、当方Javaも多少であれば組めますのでJavaでも構いません。 何卒、よろしくお願い致します。

  • Windowsの後継は

    【Winedows9x(SE)系】 MS-DOS(ベースとなる)→Windows95→Windows98→WindowsME 【WindowsNT系】(クライアント向け) MS-DOS(ベースとなる)→Windows NT3.1→Windows NT4.0→Windows 2000(NT5.0)→Windows XP(NT5.1)→Windows Vista(「NT5.2」?or「NT6.0」?) 【WindowsNT系】(サーバー向け) NT Server → 2000 Server → Server2003 こういう風に思っているのですが合っていますか?間違っていたら訂正や付け加えをお願いします。

  • サーバーのwindows とLinuxの違い

    海外でレンタルサーバーを借りようといろいろ調べたのですが、 サーバーのOSをwindowsにするかlinuxにするかというオプションがあり、どちらのほうがいいのか悩んでいます。 違いはあまりないと聞いたのですが、ホームページ利用の目的が映像(flashやvideo)、画像などを紹介する目的なので、WindowsもしくはLinuxどちらのほうが私の用途に向いているか教えてもらえればうれしいです。一応、自分の使っているOSはWindowsです。 いろいろ調べては見たのですが、細かい違いがわからなくって、ここにきてしまいました。 WindowsとLinux(もしくはUnix)とでは、同じサービスでも、月々のプランの値段が、4ドルくらい違うので、特に、Linuxに問題がないのであれば、Linuxのほうにしようと思っています。 回答よろしくお願いします。

  • windows(DOS)領域にインストールできるlinuxって何?

    要するにもうパーティションを切り直したくないんです。windows(DOS)領域にインストールでき、windowsから起動できて、手軽にXまでいけるやつ。あ、linuxにこだわっているわけではないんです。unix系であれば。

  • コマンドプロンプトとDOSプロンプトの違い

    最近のOSにはDOSプロンプトがなくなり、コマンドプロンプトがふぞくしていますが、具体的にはどのような違いがあるのですか? 私はプロンプトにてプログラムのコンパイルから実行をしているだけなので、違いがよくわからないのです。よろしくお願いします。 そもそもDOSプロンプトとはどのような目的で作られたのでしょう?

  • DOSのデュアルブートってどうやるんですか?

    FreeDOS、MS-DOS6.22があるので使ってみたいのですが、DOS専用パソコンを持てるほどではありません(ジャンク品とかで間に合いそうな気もしますが・・・、パソコンの数が増えるので)。だからデュアルブートで使いたいのですが、どうやったらできるのですか? ちなみにWindows2000とLinuxのデュアルブート、Windows98とWindows2000のデュアルブートはOSを入れる順序だけが問題なので簡単にできました。でもDOSはよく分からないので。 例えば、DOSとWindows98のデュアルブートは難しいよ、とか、こうやると簡単にデュアルブートができるよとかDOS初心者向けのアドバイスがありましたら特にうれしいです。

  • LinuxからWindowsサーバへのrsh

    はじめてですが、Unix/LinuxからWindows2000サーバおよび2003サーバへのrshを起動するために必要な環境について質問をさせていただきます。 逆向き(WindowsからUnix)については実績があります。 リモートホストのWindows側のhostsファイルにUnixのアドレスと名前を登録、ローカルホストのUnix側のhostsや.rhostsファイルにWindowsのアドレス、名前、ユーザ情報を登録するとWindows側でUnixコマンドが遠隔起動できます。 今、実現したいのは、Unix/Linuxをリモートホスト、Windows2000サーバおよび2003サーバをローカルホストとしてUnix/Linux側からWindows側の処理を遠隔起動することです。 hostsや.rhostsファイルは、設定する側が逆になるだけで、考え方は同じと思われます。 Windows側でrshのデーモンプロセスが起動している必要があると思われます。 巷では、WindowsにSFUやSUA(Unixエミュレータ)を導入すればできるという情報が多い様です。 SFUやSUAを導入せず、rshのデーモンプロセスを単独でかつフリーで入手することは可能でしょうか? Windowsのバージョンにより、デーモンプロセスが標準で装備されていたり、別途導入する必要があったりするのでしょうか? よろしくお願いいたします。

  • makeってどうすればいいんですか?

    makeするとか言うけれど、makeってどうすれば実行できるのですか? ただ単にmakeってタイプすればいいって書いてあるサイトとかあったけれど、 どこでタイプすればいいのでしょうか... MS-DOSプロントみたいのがあるんでしょうか? 上の文章を見て、もうおわかりの人もいるかと思いますが、Linuxを使い始めて約1週間の初心者です。(Unix互換OSを使ったのも、これがはじめてで、Windowsしか使ったことがありません。) もしよろしければ、教えてください。 ~環境~ RedHatLinux 7.2 XFree86

  • ワイルドカードの処理(win/dos)

    perlでワイルドカードの処理をするにはどうしたらよいでしょうか? 具体的には、ワイルドカードに該当したファイル分、 下記の処理をしたいのですが。 OSはWindows(DOSプロンプト)です。 (Windows(MS-DOS)はUNIXと違って、 ワイルドカードの展開をアプリケーション任せにしているようです。) -- while (<>) { if ($. == 2) { print; last; } } --

    • ベストアンサー
    • Perl