記憶體管理,問題由來

2021-06-19 09:14:54 字數 313 閱讀 2492

為什麼需要記憶體管理?

我覺得最根本的問題在於多程序。如果不進行記憶體管理,兩個程式幾乎是沒可能同時在記憶體執行的。

在只有記憶體的物理模型且沒有特殊硬體管理的情況下,乙個程式的內容會被另乙個程式修改,直接崩潰。

如何管理記憶體,才能達到多執行緒?

1 無記憶體抽象:

需要特殊硬體 記憶體鍵  早期ibm,存在psw。

缺點是重定位---》解決方法是靜態重定位

2 有記憶體抽象,位址空間

整個程序所需記憶體全部裝入----- 基址暫存器和界限暫存器(交換技術可以很好利用這兩個暫存器)

虛擬記憶體 pmu

記憶體碎片的由來

經常看別人部落格說到 記憶體碎片 這個概念,而且很多程式設計技巧書也經常提到頻繁地呼叫記憶體分配函式會導致越來越多的記憶體碎片產生,降低記憶體的利用率。那麼這個 記憶體碎片 究竟是怎麼產生的呢?答案可能要從 作業系統 中查詢了。在翻閱了一些 作業系統 的書之後,對於這個概念有了更清晰的理解,下面進行...

Linux高階記憶體的由來

抱著拿來主義,自己挑選了部分,以下內容摘自網路。linux核心位址空間劃分 通常32位linux核心位址空間劃分0 3g為使用者空間,3 4g為核心空間。注意這裡是32位核心位址空間劃分,64位核心位址空間劃分是不同的。linux核心高階記憶體的由來 當核心模組 或執行緒訪問記憶體時,中的記憶體位址...

NSString的記憶體管理問題

nsstring是乙個不可變的字串物件。這不是表示這個物件宣告的變數的值不可變,而是表示它初始化以後,你不能改變該變數所分配的記憶體中的值,但你可以重新分配該變數所處的記憶體空間。生成乙個nsstring型別的字串有三種方法 方法1.直接賦值 nsstring str1 my string 方法2....