国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

linux的虛擬內存機制

瀏覽:99日期:2023-07-13 15:57:31

Linux是一套免費使用和自由傳播的類UNIX操作系統,是款獨立的非常強大的系統,有著很多的愛好者,那么今天我們就一起來了解一下他那獨特的虛擬內存機制吧。

linux的虛擬內存機制

【虛擬內存常見問題】

linux的虛擬內存機制:

1、每個進程都有自己獨立的4G內存空間,各個進程的內存空間具有類似的結構。

Linux內存管理采用的是頁式管理,使用的是多級頁表,動態地址轉換機構與主存、輔存共同實現虛擬內存一個新進程建立的時候,

將會建立起自己的內存空間,此進程的數據,代碼等從磁盤拷貝到自己的進程空間,哪些數據在哪里,

都由進程控制表中的task_struct記錄,task_struct中記錄中一條鏈表,記錄中內存空間的分配情況,

哪些地址有數據,哪些地址無數據,哪些可讀,哪些可寫,都可以通過這個鏈表記錄每個進程已經分配的內存空間,都與對應的磁盤空間映射。

linux的虛擬內存機制

2、每個程序都能看到一片完整連續的地址空間,這些空間并沒有直接關聯到物理內存,而是操作系統提供了內存的一種抽象概念,

使得每個進程都有一個連續完整的地址空間,在程序的運行過程,再完成虛擬地址到物理地址的轉換。

我們同樣知道,進程的地址空間是分段的,存在所謂的數據段,代碼段,bbs段,堆,棧等等。每個段都有特定的作用。

同時計算機沒有那么多的內存(n個進程就需要對應n*4G內存),建立一個進程,就要把磁盤上的程序文件拷貝到進程對應的內存中去,

對于有一個程序對應多個進程這種情況,浪費內存。

linux的虛擬內存機制

3、每個進程的4G內存空間只是虛擬內存空間,每次訪問內存空間的某個地址,都需要把地址翻譯為實際物理地址所有進程共享同一物理內存,

每個進程只把自己目前需要的虛擬內存空間映射并存儲到物理內存上進程要知道哪些內存地址上的數據在物理內存上,哪些不在,還有在物理內存上的哪里,

需要頁表記錄頁表的每一個表項分為兩部分,第一部分記錄此頁是否在物理內存上,第二部分記錄物理內存的地址當進程訪問某個虛擬地址,

去查看頁表,如果對應的數據不在物理內存中,,則缺頁異常缺頁異常的處理過程,就是把進程需要的數據從磁盤拷貝到物理內存中,

如果內存已經滿了 ,沒有空地方,那就找一個頁進行覆蓋,當然如果被覆蓋的頁曾經被修改過,需要將此頁寫回磁盤。

linux的虛擬內存機制

4、竟然每個進程的內存空間都是一致而且固定的,所以鏈接器在鏈接執行文件時,可以設定內存地址,而 不用去管這些數據最終實際的內存地址,

這是有獨立內存 空間的好處當不同的進程使用同樣的代碼時,比如庫文件中的代碼,物理內存中可以只存儲一份這樣的代碼,

不同的進程只需要把自己的虛擬內存映射過去就可以了,節省內存在程序需要分配連續的內存空間的時候,

只需要在虛擬內存空間分配連續空間,而不需要實際物理內存的連續空間,可以利用碎片。

linux的虛擬內存機制

以上就是給各位小伙伴帶來的linux虛擬內存機制的所有內容,希望你們會喜歡。更多相關教程請收藏好吧啦網~

以上就是linux的虛擬內存機制的全部內容,望能這篇linux的虛擬內存機制可以幫助您解決問題,能夠解決大家的實際問題是好吧啦網一直努力的方向和目標。

標簽: Linux系統
相關文章:
主站蜘蛛池模板: 阿拉善右旗| 东城区| 灵川县| 渝北区| 眉山市| 四会市| 万全县| 清河县| 云浮市| 老河口市| 阿勒泰市| 蒲城县| 石城县| 韩城市| 南宁市| 安新县| 杭锦后旗| 陕西省| 楚雄市| 惠安县| 荔波县| 朝阳县| 申扎县| 宝鸡市| 和田县| 栾川县| 固始县| 定陶县| 大渡口区| 天峨县| 大关县| 谢通门县| 讷河市| 若羌县| 麟游县| 调兵山市| 南汇区| 灵寿县| 新郑市| 宝鸡市| 建瓯市|