• ベストアンサー

WIN XP について

WIN XPは、32ビット設計でME,98,95系のOSは16ビット設計と本などで見ますが 32ビットまたは16ビットOSの意味が良くわかりません。この意味の解る方いましたら 是非教えていただきたいです。 色んな本を読んだのですが このことについて明記している本が無いのでよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#5751
noname#5751
回答No.2

レスが遅くなってすみません。 プログラムの設計で「8ビット、16ビット、32ビット」というのは機械語の命令長を指します。 16ビットOSは1クロックで16ビットの処理が可能なので、漢字などの2バイト(16ビット)文字を合理的に処理できます。 また、32ビットOSは画像や音声などの、より複雑なデータを処理可能です。 つまり、命令長は1クロックで処理できる内容の「複雑さ」の指標で、直接安定性には影響しません。 32ビットCPUを使っても16ビットのプログラムを動かしている限り、CPUは16ビットCPUとしてしか機能しません。 プレステ2でプレステ1のソフトを動かしている状態と同様です。 PS2専用ソフトがPS2本来の機能を使えるのと同様に、386専用ソフトは386の機能を活用できます。 #1のメモリ補保護に関して、386ではメモリに書き込まれた情報に「リング0」から「リング4」までの5段階のラベルを付けて、下位のラベルのメモリから上位のメモリにアクセス出来ないように管理する専用のハードウエアを持っています。 NTやXPはその機能を使い、メモリ上のOSに「リング0」、アプリに「リング3」のラベルをつけ、アプリからOSの使っているメモリに書き込みできないようにしています。 そのため、アプリのクラッシュがOSまで巻き込まないような設計になっています。 95やMeでは処理を軽くするため、この機能を使っていません。 そのため、アプリのエラーで青画面になってOS毎落ちることがありました。 安定性に関してXPが優れているといわれるのかこれが理由ですね。

その他の回答 (1)

noname#5751
noname#5751
回答No.1

まず、Windows95、98、Meも32ビットOSですよ。 簡単に言うと、16ビットと32ビットの違いは動作対象としているCPUの違いによる物です。このため、マルチタスクの安定性に差が出ます。 ●16ビットOS intel 8086や80286といった16ビットCPUを動かす為のOSです。 複数のプログラムを動かす場合、プログラムAがプログラムBの使っているメモリに書き込みを行って、メモリ内のプログラムBを破壊することがないよう、保護する必要があります。 8086はそもそも複数のプログラムを動かすことを前提としておらず、80286の保護機能も不完全な物でした。 そのため、16ビットOSでのマルチタスク処理は上のような、メモリへの不正な書き込みが行われやすくなっています。 「保護違反」とか「不正な処理」というものです。 16ビットOSとしては、MS-DOSやWindows3.1があります。 95や98ではこれと互換性を持たせるためにDOSや3.1のモジュールを一部流用しているので安定性の低下原因となっています。 ●32ビットOS 386~Pentium4といった32ビットCPUを動かす為のOSです。 386でCPUの設計が見直され、マルチタスクをより安定して動かせるよう、メモリの管理機能が強化されました。 WindowsNTの流れをくむ2000やXPでは、OSのモジュールを386を前提にすべて再設計しています。 一般にXPが安定性が増していると言われる理由です。 32ビットCPUは安定性以外にも扱えるメモリのサイズが増え、そのた様々な機能強化が行われています。

hirokun-3
質問者

お礼

細かく説明してくださって有難うございます。 私の質問の仕方及び表現の仕方が不十分でした。 私の質問は 16ビット及び32ビットそのものがどの様にシステムの安定につながるのかイメージとして沸かないし また 理論的にも解らないです。 という質問なんですがお答え願います。<m(__)m>

関連するQ&A