- ベストアンサー
OSが認識できるメモリについて
32bitのOSが認識できるメモリの限界って4Gまでですよね?質問なのですが、仮に1024Mのメモリを4枚積むと4096Mになりますが、端数の96MはOS上では認識されないのでしょうか?また32bitのOSに4096Mのメモリをつんでも大丈夫(メモリが認識されるかどうかではなく、PCが不具合なく動くかどうか)なのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>32bitのOSが認識できるメモリの限界って4Gまでですよね? この「4G」とは「4×1024×1024×1024」です。 >質問なのですが、仮に1024Mのメモリを4枚積むと4096Mになりますが、端数の96MはOS上では認識されないのでしょうか? この場合の「1024M」とは「1024×1024×1024」です。 1024Mのメモリを4枚積むと「4×1024×1024×1024」なので、上記の「4G」と一致します。 つまり端数は出ません。 >また32bitのOSに4096Mのメモリをつんでも大丈夫(メモリが認識されるかどうかではなく、PCが不具合なく動くかどうか)なのでしょうか? 大丈夫ではない場合があります。古いOSや古いソフトウェアが不具合を起こす可能性が非常に高くなります。 例えば、OSやソフトウェアのどこかで 「作業用メモリを確保しようとする処理で、正常にメモリ確保出来た場合は確保したメモリのアドレスを、確保に失敗した場合はエラー番号として負の数を持つ」 と言う処理があったとします。 メモリが「2G」しか積まれてなければ「メモリのアドレス」は0~2147483647の範囲の「32ビットの世界で、正の数に収まる値」になります。 しかし、メモリが「2Gより多く、4Gある」と「メモリのアドレス」は0~4294967295の範囲になり「メモリアドレスが2Gより後ろのアドレスになったら、32ビットの世界で、負の数になってしまう値」になってしまいます。 2Gより後ろのアドレスを確保した場合、OSやソフトウェアは「確保に失敗した場合は負の数」と思ってますから「本当はメモリを確保したのに、エラーだと勘違いする」と言う不具合が起きます。 なので「例えOSがメモリを認識したとしても、メモリは2Gまでにしておいた方が無難」です。 なお、現在、最新版のOSは「2Gより後ろのメモリを確保しても問題が起きないよう、確保に成功したら非ゼロ、失敗したらゼロ」のように「アドレスが負数になっても大丈夫」なように設計されてい(る筈なんだけど、なんか怪しい。ちゃんと動かないんじゃないかと思い)ます。 「メモリを2G以上積む」なんて世の中が来るとは思っていなかった頃に作られた「設計が古いOSやソフトウェアやアプリケーション」は、2G以上のメモリがあるPCで動くかどうか判りません。動かない方が多いでしょう。
その他の回答 (3)
- My_Kitty
- ベストアンサー率38% (20/52)
32bitOSの場合、4G(4096M)のメモリを積んでも、チップセットが対応している限り問題なく動作しますが、 OS上で認識されるのは3Gちょっとです。 4G全てを利用したい場合は64bitOSをつかいましょう。 ※3Gちょっとのちょっとというのは、MBやVGA等の構成によって変わってきます。
これは一般社会の単位とコンピュータで扱われる単位の違いですね。 一般的には1G=1000Mを表しますが・・・ メモリ容量などを示す場合、1GB=1024MBのことを示します。 よって、4096MB=4GBとなるわけです。 これでは紛らわしい!と言うことで、メビ,ギビなどと言うコンピュータ専門の単位も制定されていますが、まだ一般に浸透してないというのが現状です。 詳しくは参考URLをどうぞ。
- yokyun2005
- ベストアンサー率46% (134/291)
OSで問題なく認識されますしPCは不具合なく動きます