日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初识virtual memory

發布時間:2023/11/30 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初识virtual memory 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、先談幾個重要的東西

virtual memory是一個抽象概念,書上的原文是"an abstraction of main memory known as virtual memory"(參考資料p776)。那么什么是抽象概念。下面說說我個人對這個東西的理解。

所謂抽象概念是指抽象出來的概念,通過抽象這個動作得到的結果。那么抽象這個動作又是什么,即是怎么一個動作,思維做了什么動作或者做了一系列什么動作。舉個生活中的例子,現在有排球、足球、籃球、乒乓球,我們按照某個方向(共性)對排球進行抽象,客體是排球,動作是抽象,那么抽象出來的結果是球,這里球就是一個抽象概念,球只存在于我們的概念中,一個圓圓的,可以滾動的東西。在大腦中,它就是這樣,抽象是一個認識事物的方法,對這個事物進行抽象,抽象出那些相關的屬性,去除不相關的屬性。

?

?

我們將這些知識應用到virtual memory。解剖"an abstraction of main memory",客體是main memory,動作是abstract,那么main memory經過某一方向的抽象后就成了virtual memory,一個抽象概念,一個可以連續的存放信息的地方,每個地方都有一個地址屬性,而舍棄了它是由什么材料組成等不相關信息(抽象方向決定了哪些屬性相關,哪些屬性不相關),在大腦中,它就是這樣。(這里很難理解,包括我自己都不是很肯定,注意利用上段舉出的關于球的例子)

?

談了這么多我想大家,包括我,都有點暈了,哈哈,這家伙到底在說什么,說人話。

總結一下:抽象是我們認識事物的一種方法,對硬體按某一方向進行抽象得到抽象概念,抽象概念只存在于大腦中。經過對事物進行抽象,我們得到抽象的事物。

回歸本節主題,virtual memory。在寫這篇博文的過程中,我感覺到如果根據我前面的認知,作者的表述似乎不夠準確,應該是這樣"virtual memory" is "an abstraction of main memory and MMU",MMU負責虛擬地址和物理地址的轉換。因為僅僅對memory進行抽象根本得不到virtual memory。(這里如果讀不懂,先硬著頭皮往下灌,將quetions存在心中看下面的內容)

二、virtual memory

前面已經講到virtual memory是一個抽象概念,是大腦中對main memory + MMU 抽象的產物。那么main memory 是如何與MMU相加的,即main memory與MMU如何合作的。

合作的過程如下:

    1、processor首先發送virtual address給MMU;

    2、MMU從virtual address中提取某些連續欄位并將其發送到存儲在main memory中的page table

    3、main memory返回physical address的部分連續欄位給MMU

    4、MMU根據virtual address和physical address的部分連續欄位計算出physical address,并發送給main memory

    5、main memory返回所需的data給processor。

在整個過程中MMU負責將虛擬地址翻譯成物理地址。這里我只是做一個overview,詳細的細節可以參考我給出資料。

三、TLB是什么

不了解cache的同仁,可以先我之前寫的初識cache(http://www.cnblogs.com/midhillzhou/p/5608533.html),不然理解會很吃力。TLB從本質上說是一個cache,它存在于MMU的內部,用于加速地址轉換。仔細思考上圖,在MMU with TLB中, 在第1步MMU收到virtual address后,它首先先查看TLB中有沒有對應的physical address:如果有,直接將地址取出來,發給main memory,然后main memory將所需data發給processor;如果沒有,再進行上面步驟中的第2步第3步,然后將這一映射關系保存到TLB中,最后進行第4步第5步。

四、參考資料

<<computer systems a programmer's perspective>> second edition p775-p792

?

轉載于:https://www.cnblogs.com/midhillzhou/p/5615320.html

總結

以上是生活随笔為你收集整理的初识virtual memory的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。