通常、静的変数と大域変数は、初期化条件に従って.dataセクションまたは.bssセクションに格納されます。彼らの生涯はプログラムの始めから終わりまでであると言われており、プログラムはページング管理で要求されたときにページとしてメモリにロードされることも知られている。これは、.dataセクションと.bssセクションの両方が、アクセス前に、または最初の命令が実行される前に、メモリにロードされている必要がありますか?.dataまたは.bssセクションに格納されている静的または大域データを、プログラムの実行前にロードする必要がありますか?
1
A
答えて
2
ここでは、2つのレベルの抽象化を扱っています。プログラム内でアクセスされるものはすべて仮想アドレス空間にあり、.data/.bssセクションはプログラムの実行開始時に利用できます。より深い抽象化は、仮想アドレス空間がメモリマネージャによって管理されるページングを使用して物理メモリによってバックアップされることである。これは、プロセスをロードする実行コードとコードには完全には分かりません。このレベルでは、物理ページがロードされていないために.data/.bss(またはあなたのコードさえ)の部分がメインメモリに存在しない可能性があります。一般に、これらは対応する仮想アドレスが参照されるとオンデマンドでロードされます。
詳細については、「メモリ管理」、「仮想メモリ」、「ページング」などのGoogleのものがあります。
関連する問題
- 1. カスタムオブジェクトの格納に静的フィールドまたはSharedPreferencesを使用する必要がありますか?
- 2. プロジェクトドキュメントは、典型的なMavenプロジェクトに格納する必要があります
- 3. java.utilのデータ型に16バイトを格納する必要があります。
- 4. nibファイルからビューをロードする前に実行されるメソッドまたはコマンドはありますか?
- 5. すべての要素がロードされる前にRequireJSモジュールを実行する方法はありますか?
- 6. ベストプラクティス:静的データにARモデルまたはグローバルハッシュを使用する必要がありますか?
- 7. 要求の期間中静的な値を格納する必要があります。どうやって?
- 8. 大きな値のデータ型を別のテーブルに格納する必要がありますか?
- 9. IEブラウザヘルパーオブジェクトはどこにデータファイルを格納する必要がありますか?
- 10. Androidのアダプターは、静的内部クラスまたは非静的内部クラスである必要があります
- 11. ラムダを静的にする必要がありますか?
- 12. jQueryの.data()に格納された「複雑な」データを更新するには?
- 13. 依存関係がロード/解決される前にファイルコードを実行する必要があります
- 14. 静的ベクトルは削除する必要がありますか?
- 15. メモリの静的変数はどこに格納されていますか?
- 16. mysqlデータベースに倍精度または小数点以下を格納する必要がありますか?
- 17. テストのために静的メソッドを避ける必要がありますか?
- 18. Visual Studio Cランタイムに静的または動的にリンクする必要がありますか?
- 19. 再利用された静的文字列定数はどこでFlexアプリケーションに格納する必要がありますか?
- 20. セッションに格納された値をループする方法はありますか?
- 21. デフォルトのイメージをコードまたはdbに格納する必要があります
- 22. C#LINQターゲットは静的である必要があります
- 23. GCCマクロはどのヘッダに格納されていますか?これらのファイルからタグを作成する必要がありました
- 24. ポーリングクラスを静的にする必要があります
- 25. "http://"にURLのデータベースレコードを格納する必要がありますか?
- 26. プログラムは静的にライブラリにリンクされていますが、実行するにはまだDLLが必要です
- 27. ポストまたはURLに_method = PUT/DELETEを格納する必要があります
- 28. アプリケーションログファイルとユーザー生成データファイルをAPPDATAまたはPROGRAMDATAに格納する必要があります
- 29. リアクションネイティブ領域に[String]または[Int]を格納する方法
- 30. 変更されたGPLプログラムを配布するためには、何をする必要がありますか?