- ベストアンサー
メインメモリについての酷く拙い愚問です。
メインメモリから各アプリケーションへ割り当てられ得るアドレス空間の場所は、何らかの基準で先に予約されているのでしょうか? 私は入門者に留まっていますから、質問の内容に誤りが含まれているのかも知れませんが、諒察を宜しく御願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
んーと、どの観点から話をしているのかとか、前提としているハードやOSは何か、とかいう点によっても答えが変わってくる質問に思えます。 No.1氏への補足に「「システム構成とかレジストリとかの設定によって」とありますので、Windows XP以上のOSで、i386以上のCPUをもつPC-AT互換機、という前提で、アプリケーションから見た話、という前提で答えますと、アプリケーションの使用するアドレス空間は、アプリケーションが起動する毎にOSが独立したアドレス空間を割り当てます。なので、予約も何も関係ないです。 実際の物理メモリ上にどのように割り当てるか、というのはOSが制御する話になりますが、そのあたりの詳しいところは私も把握していないので詳しい方に譲ります。
その他の回答 (2)
ソフトは無数と言えるほど多種多様に存在するため、あらかじめ場所を特定することなど不可能です。なのでメモリ確保が必要な場合は、OSに対して「10MB欲しいんですが…」みたいに量で依頼します。その結果としてメモリ割り当てが受けられますが、どの場所が割り当てられるかはOS様の御采配次第であり、私は角地がいいとか、あのお宅の隣はいやだ等のわがままは認められません。 もっと言うと、それがメインメモリ上にある領域かどうかさえ保証の限りではなく、仮想メモリ上だったというオチも十分あり得ます。と言うことで、OSはメインメモリ上の特定領域を「全てのソフト共用の領域として」確保してはいますが、このソフトはここねみたいな固定での管理はしていないと考えてください。 ただし、応答性を極度に重視しているリアルタイムOSのような特殊なものだと、固定あるいはそれに準ずる管理機構を使う可能性はあり得ると思います。
補足
有り難う御座います。 分かりやすくて助かりました。
- Tacosan
- ベストアンサー率23% (3656/15482)
予約されているかもしれないし予約されていないかもしれない.
補足
有り難う御座います。 具体的に分かりませんから、畏れ入りますが、 追加で伺わせて下さい。 「システム構成とかレジストリとかの設定によってメインメモリ内での予約の可否が制御されているのでしょうか?」 レジストリの事には殆ど理解が及んでいませんので、 的から大きく外れているのかも知れませんが、 御教授を賜れますと、助かります。
補足
有り難う御座います。 追加を踏まえて頂いて助かりました。