什么是內存
我們想準備運行程序進程需要經過那幾個步驟,這里猜測一下。
首先要去申請內存,操作系統根據現在剩余的地毯空間與你地毯的規模劃分一塊相應大小的內存給你,接著你就可以愉快的運行程序進程啦。
簡而言之,電腦上的程序(進程)運行是需要使用到對應大小的物理內存。
虛擬內存
實際上運行的進程并不是直接使用物理內存地址,而是把進程使用的內存地址與實際的物理內存地址做隔離,即操作系統會為每個進程分配獨立的一套「虛擬地址」。
每個進程玩自己的地址,互不干涉,至于虛擬地址怎么映射到物理地址,對進程來說是透明的,操作系統已經把這些安排的明明白白了。
操作系統會提供一種機制,將不同進程的虛擬地址和不同內存的物理地址映射起來,如下圖所示
由此我們引出了兩個概念:
進程中使用的內存地址叫虛擬地址
存在計算硬件里的空間地址叫物理地址
簡單來說操作系統引入虛擬空間,進程持有的虛擬地址會通過 CPU芯片中的內存管理單元(MMU)的映射關系,來轉換成物理地址,再通過物理地址訪問物理內存
操作系統是如何管理虛擬地址與物理內存地址之間關系?
主要有三種方式,分別是分段、分頁、段頁。
-
內存
+關注
關注
8文章
3004瀏覽量
73900 -
操作系統
+關注
關注
37文章
6747瀏覽量
123204 -
地址
+關注
關注
1文章
31瀏覽量
10750
發布評論請先 登錄
相關推薦
評論