
Windows XP 32bit版の最大メモリに関する質問に対する、この回答は合っているのでしょうか?
間違ってたり曖昧な点があれば教えて下さい。
特に
『OSが起動する以前のPCのシステムが、約700MB程使用します』
『OSが起動しようとする時は、既にシステムが700MB程使用しています』
ここで言及している『システム』とは何のことなのかが曖昧で説明が危うく感じます。
---
●質問
Windows XP 32bit版のメインメモリの上限の理由は?
メモリ空間が2^32で4,294,967,296
なので4,294,967,296バイトのメインメモリを管理できそうです。
しかし実際には3GB位の制限があるそうですが、理由は何ですか?
●回答
32bitのWindowsが起動した直後では、3.2GB程のメモリー量となりますが、OSが起動する以前のPCのシステムが、約700MB程使用しますので、OSが起動した直後では、約700MBを差し引いた値の3.2GB程になるのです。
だから実際には、トータルで4GB認識できているのです。
これは、32bitのメモリー空間が、4GBしか扱えない為・・32Bitで扱える上限が4GBなのです。
●補足質問
『OSが起動する以前のPCのシステム』
ということはOSの管理外のメモリーということになりますよね。
なら、OSが起動した時点で、残りの物理メモリが4GB以上あれば4GBまでは認識しても良さそうですけど、その辺はどうでしょうか?
●補足回答
いいえ、4GBの管理下のメモリーから使用されます。
だから、OSが起動しようとする時は、既にシステムが700MB程使用していますから、OS上では、3.2GB程なのです。
ついでに、このシステムが使用するメモリー量は、オンボードデバイスの量で若干変動します。
つまり、オンボードデバイスが多ければ多いだけ、使用するメモリー量も増えるのです。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
No.1ベストアンサー
- 回答日時:
やや正しく書くと
OSの管理できるアドレスが4GBまでです。
で、アドレスの一部がデバイス用に予約されます。
なのでwinXP32bitでは4GB以上のメモリを載せても、割り当てるアドレスがないので使用できないのです。
ちなみに、WindowsServerのenterpriseなどは32bitであっても4GB以上のメモリを使用できます。
大変分かりやすい説明で助かります。
これは補足質問ですが、
『アドレスの一部がデバイス用に予約される』とは、もう少し具体的にはどういうことでしょうか?
たとえば物理メインメモリ約3GB以下のマシンでは、OSは物理メモリをまるごとメインメモリとして使えます。
ということは『アドレスの一部がデバイス用に予約』されても、物理メモリは消費しないということですよね?
実際のメモリは使用せずに『アドレスだけが予約されている状態』というのは具体的にどういう状態なのでしょうか?
あと、
>なのでwinXP32bitでは4GB以上のメモリを載せても、割り当てるアドレスがないので使用できないのです。
・・・の部分は
『4GB-デバイス予約領域』以上のメモリを載せても、
ということですよね?
ぜひよろしくお願いします!
No.5
- 回答日時:
ANo1~3の方は、みんな同じことを説明していて、
「物理アドレス空間の一部をデバイス制御のために使用する」
と言っています。
この仕組みのことをMMIO(メモリマップドI/O)と言うので、
詳細が知りたいならMMIOで検索すると良いでしょう。
ANo4の方の説明は物理アドレス空間ではなく
論理アドレス空間の話なのでMMIOとは全く別の話となります。
論理アドレス空間が、ユーザー2GB/カーネル2GBとなっているのはその通りですが、
このことは物理メモリの認識量上限とは無関係です。
(余談ですが、設定で論理アドレス空間をユーザー3GBにすることもでき、この設定のことを3GBスイッチといいます。)
No.4
- 回答日時:
ご質問にある回答を書いた回答者の方が
筋道だった説明の仕方をされていないので、
理解しがたい回答になってしまっているように思います。
「Windows OS」と「システム」という言葉を区別しているかのような
使い方をされていることも混乱を招く一因といえるでしょう。
『Windowsシステムが起動時に700MB使用するので、システム起動
完了直後は〔4GB-700MB=3.2GB〕程度になります。』
おそらく回答者産はこう言いたかったのでしょうね。
それはさておき、
32bit版Windows XP が管理できるメインメモリの上限は4GBで、
この容量までは実装しても大丈夫という意味です。
それでは3GBの壁というのはどこから出てきたのでしょうか。
最大4GBの中身をもう少し詳しく見ていきましょう。
32bit版Windows XPの管理できるメモリ4GBのうち、
ユーザーメモリには2GBが割り当てられており、
残りの2GBはカーネルメモリに割り当てられています。
カーネルメモリとはWindows OSが常駐するメモリ領域のことです。
けれど、カーネルメモリは512MB~768MBもあれば十分で、
多めに見たところで1GBでしょう。
従って、ユーザーメモリ2GB+カーネルメモリ512MB~768MBで
2.5GB~約3GBという数字が出てくるのです。
4GBのメモリを実装しても3GBしか使われないので、
このあたりのことを知っているユーザーは、
この余った領域をRAMディスクに割り当てて使うことが多いようです。
因みに、私がWindows XPを搭載して使っているPCは最大3GBまでしか
実装できないので、RAMディスクの用途の経験はありません。
また、Windows7を購入してからは
そのような知識も過去のものとなってしまいました。
以上、ご参考になれば幸いです。
メインメモリ以外にアドレス空間が消費されているので、メインメモリ用のアドレス空間がその分小さくなる。
という形で理解しました。
ありがとうございます。
No.3
- 回答日時:
デバイス用に予約されることを、ちょっと詳しく説明すると…
CPUが利用できるメモリーアドレスが4GBしか無いのであれば
つまり、メモリーアクセスを要するデバイスなどについては
それ専用に物理的なメモリーアドレスを与えざるを得ないというわけです。
なお、現代OSではページング技術が使われていて
物理的なメモリーアドレスはBIOS,UEFI,OSなどが使い
アプリケーションは、OS上の論理的なメモリーアドレスを使います。
デバイスドライバーはOS側に含まれ…
つまりデバイスドライバーは物理的アドレスを用いてデバイスを動かします。
予約番号という言葉は、いろんなところで使われると思います。
数学的には、これだけある数字が、一部は使えませんよというのが
メモリー搭載量が肥大化してきたこの数年に露見しただけで…
問題は、OSが使うメモリー量とはなんら関係ありません。
そういう意味では、リンク先URLの回答者は、そこを勘違いしています。
ただ、そういった誤った回答だけで閉じられた質疑は
どこのQ&Aサイトにもあります。めずらしいものでは無いでしょう。
もっと古い時代だと、MS-DOSでは1MBのメモリーしか認識できないのに
予約されているために使えない部分があって、実質640KBでやりくりしていました。
特に、日本語環境では日本語変換プログラムに割くメモリー量が大きな問題で
ゲーム用に、日本語変換ができない設定でのMS-DOS起動とかが行われていました。
(当時は、HSBという環境を切り替えた再起動のための専用ツールが重宝されていました)
そこから、進化したのが32bitCPU専用設計で生まれたFM-TOWNSで
4GBのメモリー空間のうち、1GB目をソフトウェア動作のために
2GB目や3GB目や4GB目を、そういった予約されるアドレスのために振り分けたという
先進のハードウェア設計が行われていました。
まぁ、結果的にはTOWNSは廃れ、物理メモリーが4GBの時代には
TOWNSの設計思想は破綻したはずだったということになってしまいます。
でも、TOWNSでは、MS-DOSで700KBくらい使えるようになっていたように記憶しています。
(この段落、一切調べず、記憶まかせ、うろ覚え)
TOWNSよりも古いPC-9801やPC/ATの設計は、結果的にはTOWNSより長く続き
現在のWindows PCの基本設計は、PC/ATの仕様を土台としています。
拡張カードもそれにあわせて設計されてきましたし
デバイスドライバーもそれにあわせて書かれてきました。
ですから、BIOSが廃され、UEFIの時代になったとしても
たとえIntelMacであっても、32bit版OSでは、4GB全部は使えないのです。
厳密にはPAEはPentium3の時代からあるからPAE対応OSならその限りでもないんですけど…
WindowsではPAE対応のコンシューマー向けOSが無かったと思います。
64bitOSでは、現代OSの基本的処理の一つである、ページング技術によって
4GB搭載でも、予約部分とぶつからないように…4GBよりちょっとだけ飛び出した物理アドレスを使うことによって
論理的に、4GB分のメモリーを提供できるようになっているのです。
12人用ロッカーの一つが壊れいて使えないから
12人目のために、別のロッカーを一つを使っているような感じ。
64bitOSでも、予約されたアドレスは予約されたままで、つまり
64bitで表せるメモリーをすべて使えるわけではなく
実際は上限の-500MBくらいしか使えないのです。
もっとも、64bitの上限よりもかなり小さいところで、OSの仕様としての制限がありますし
実際にM/Bに装着可能なメモリー量は、OSの仕様よりもさらに小さいのが現状です。
おそらく、-500MBが問題視される日は来ないでしょう。割合として小さすぎますから。
それは、100億人分のロッカーの一つが壊れていて
もっとロッカーが必要だと言い出す人はいないでしょ?
それが問題になる前に、状況の変化が繰り返されるはずです。
No.2
- 回答日時:
4Gバイトまでしかメモリを管理できないのは理解できていますね。
デバイスを扱うにはメモリにアクセスをする必要があります。
例えばUSB接続のマウスとか。
そのメモリ空間は扱うことのできる4Gバイトの中に含まれるんですよ。
イメージ的には4Gバイトの上の方のアドレスはデバイスによって使われる空間と考えてください。
そうすれば納得できると思います。
┌──┐4G
├──┤CD/DVDドライブで予約
├──┤USBキーボードで予約
├──┤USBマウスで予約
├──┤
├──┤
├──┤
├──┤
├──┤
└──┘0G
こんな感じ。
デバイスが多いと自由に使用できるメモリ空間が少なくなるイメージが掴めると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- CPU・メモリ・マザーボード hp dc5700SFFについて 2 2022/06/03 10:50
- ノートパソコン ホグワーツレガシー PC版必要スペックについて ホグワーツレガシーをPCでプレイしたいのですが、PC 3 2023/02/09 21:11
- Windows Vista・XP windows xp proが起動しなくなりました 10 2022/05/20 00:49
- その他(ゲーム) Windowsアスカ見参プレイするのに下の通りのが必要みたいですがメモリー、ビデオメモリーHDD別々 3 2022/09/19 23:24
- その他(OS) OSとCPUの関係について 2 2023/05/04 23:33
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- オンラインゲーム Valorantの最低・推奨スペックについて質問させてください。 2 2022/09/07 17:48
- デスクトップパソコン NVIDIA Quadro K2000とNVIDIA Quadro K420どちらが優れていますか? 6 2023/02/28 18:16
このQ&Aを見た人はこんなQ&Aも見ています
-
Win XPが認識できる最大メモリは2GB?
デスクトップパソコン
-
XPのメモリの推奨搭載量
Windows Vista・XP
-
WinXPで8GBのメモリをフルに使いたい。
デスクトップパソコン
-
-
4
WindowsXPを最近のパソコンにインストール出来ますか? 今使用している10で動いているパソコン
Windows Vista・XP
-
5
WindowsXP(32bit) OSにメモリ4GBを増設しても効果は薄いの?
デスクトップパソコン
-
6
WindowsXP32bit版が認識できるHDDの容量の限界は?
Windows Vista・XP
-
7
XPの認識可能なメモリー容量
Windows Vista・XP
-
8
VirtualBox でWindows XP インストール時の認証スキップについて教えてください
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモリなしでPCは起動する?
-
メモリー増設したのに・・・。
-
1996年製のPCなのですが・・・
-
PC起動時タスクバーの出そろい...
-
使用開始30分ぐらいでネットで...
-
ポインタの「バックグラウンド...
-
Windows XPの起動が異常に遅い...
-
スキャンディスクができない。
-
ウイルスバスター2008について
-
DynabookのAX/740LSでメモリ増...
-
Windows10でネットやソフトが重...
-
vista起動時にメモリ診断ツール...
-
Windows XP 32bit版の最大メモリ
-
メモリの最大搭載容量
-
ディスククリーンアップの項目...
-
SSD増設後、いきなりブルースク...
-
バッテリー残量表示補正ユーテ...
-
Apple キーボード 修理と買い...
-
pc2100&pc2700を・・・
-
プリントスクリーンをボタン一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモリなしでPCは起動する?
-
PC起動時タスクバーの出そろい...
-
Windows10でネットやソフトが重...
-
CPU使用率とメモリーは関係あり...
-
Windows XP 32bit版の最大メモリ
-
inetinfo.exe って何ですか?
-
ポインタの「バックグラウンド...
-
メモリの最大搭載容量
-
PC98のメモリー不足について
-
Windows10で全てのアプリ閉じた...
-
ディスククリーンアップの項目...
-
アプリケーションエラー?(メ...
-
特定のゲームを起動後、しばら...
-
起動時に"overclocking failed"...
-
Windows98を再インストールせず...
-
Database Configuration Assist...
-
初期化しようと思っています。
-
ノートPC購入について
-
outlook expressの動きが遅い
-
AMD-K6-2+プロセッサ475MHz・メ...
おすすめ情報