国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> 虛擬內存有什么用 >

虛擬內存有什么用

36氪企服點評小編
2021-12-24 18:15
7583次閱讀

| 企服解答

虛擬內存具體作用包括:1、進程內存管理;2、數據共享;3、SWAP。虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。

虛擬內存有什么用虛擬內存有什么用

1、進程內存管理

它有助于進程進行內存管理,內存完整性:由于虛擬內存對進程的”欺騙”,每個進程都認為自己獲取的內存是一塊連續的地址。我們在編寫應用程序時,就不用考慮大塊地址的分配,總是認為系統有足夠的大塊內存即可。安全:由于進程訪問內存時,都要通過頁表來尋址,操作系統在頁表的各個項目上添加各種訪問權限標識位,就可以實現內存的權限控制。

2、數據共享

通過虛擬內存更容易實現內存和數據的共享。

在進程加載系統庫時,總是先分配一塊內存,將磁盤中的庫文件加載到這塊內存中,在直接使用物理內存時,由于物理內存地址唯一,即使系統發現同一個庫在系統內加載了兩次,但每個進程指定的加載內存不一樣,系統也無能為力。

而在使用虛擬內存時,系統只需要將進程的虛擬內存地址指向庫文件所在的物理內存地址即可。如上文圖中所示,進程 P1 和 P2 的 B 地址都指向了物理地址 C。

而通過使用虛擬內存使用共享內存也很簡單,系統只需要將各個進程的虛擬內存地址指向系統分配的共享內存地址即可。

3、SWAP

虛擬內存可以讓幫進程”擴充”內存。

Linux 提出 SWAP 的概念,Linux 中可以使用 SWAP 分區,在分配物理內存,但可用內存不足時,將暫時不用的內存數據先放到磁盤上,讓有需要的進程先使用,等進程再需要使用這些數據時,再將這些數據加載到內存中,通過這種”交換”技術,Linux 可以讓進程使用更多的內存。

| 拓展閱讀

內存存在的問題。

1、內存不足

如果是邏輯內存直接映射到物理內存,當邏輯內存超過物理內存的時候,計算機就會出現內存不足的情況,導致程序崩潰。

2、內存碎片化

如果程序頻率啟動或退出,會產生內存碎片,對于連續分配內存時,即使碎片內存數量比申請的內存大,但可能導致申請失敗,因為沒有足夠的連續內存。

3、程序間互相修改內存

如果程序切換時,不同的程序指向相同的內存時,會導致修改數據錯亂。

[免責聲明]

文章標題: 虛擬內存有什么用

文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。

消息通知
咨詢入駐
商務合作