初識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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java創建mysql驅動,JDBC之Java連接mysql實現增刪改查

使用軟件&#xff1a;mysql、eclipse鏈接步驟&#xff1a;1.注冊驅動2.創建一個連接對象3.寫sql語句4.執行sql語句并返回一個結果或者結果集5.關閉鏈接(一般就是connection、statement、setresult)這三個連接對象&#xff0c;關閉順序一般是(setresult ---> statement …

算法第五章作業

1.你對回溯算法的理解&#xff08;2分&#xff09; 回溯法&#xff08;探索與回溯法&#xff09;是一種選優搜索法&#xff0c;又稱為試探法&#xff0c;按選優條件向前搜索&#xff0c;以達到目標。但當探索到某一步時&#xff0c;發現原先選擇并不優或達不到目標&#xff0c;…

c++編碼風格指南_100%正確的編碼樣式指南

c編碼風格指南Here are three links worth your time:這是三個值得您花費時間的鏈接&#xff1a; The 100% correct coding style guide (4 minute read) 100&#xff05;正確的編碼樣式指南( 閱讀4分鐘 ) I wrote a programming language. Here’s how you can, too (10 minu…

xp開機黑屏故障分析

今天裝完xp系統之后&#xff0c;重啟開機發現竟然黑屏了&#xff0c;查資料發現有很多用戶在修改分辨率后&#xff0c;因顯示器不支持修改后的分辨率&#xff0c;會出現電腦黑屏的情況。分辨率調高了&#xff0c;超出了屏幕的范圍&#xff0c;肯定會黑屏&#xff0c;而且這個問…

應用程序圖標_如何制作完美的應用程序圖標

應用程序圖標by Nabeena Mali通過Nabeena Mali 如何制作完美的應用程序圖標 (How to Make the Perfect App Icon) With just 24 app icon slots on the first page of an iPhone home screen, or 28 if you have a fancy iPhone 7, creating the perfect app icon is a vital …

Luogu3702 SDOI2017 序列計數 矩陣DP

傳送門 不考慮質數的條件&#xff0c;可以考慮到一個很明顯的$DP:$設$f_{i,j}$表示選$i$個數&#xff0c;和$mod\ pj$的方案數&#xff0c;顯然是可以矩陣優化$DP$的。 而且轉移矩陣是循環矩陣&#xff0c;所以可以只用第一行的數字代替整個矩陣。當然了這道題$p \leq 100$矩陣…

java閏年的年份,Java案例-判斷給定年份是閏年

專注學子高考志愿填報&#xff0c;分享你所不知道信息。Java案例-判斷給定年份是閏年案例描述編寫程序&#xff0c;判斷給定的某個年份是否是閏年。閏年的判斷規則如下&#xff1a;(1)若某個年份能被4整除但不能被100整除&#xff0c;則是閏年。(2)若某個年份能被400整除&#…

通過path繪制點擊區域

通過path繪制點擊區域 效果 源碼 https://github.com/YouXianMing/Animations // // TapDrawImageView.h // TapDrawImageView // // Created by YouXianMing on 16/5/9. // Copyright © 2016年 YouXianMing. All rights reserved. //#import <UIKit/UIKit.h> #…

Raft與MongoDB復制集協議比較

在一文搞懂raft算法一文中&#xff0c;從raft論文出發&#xff0c;詳細介紹了raft的工作流程以及對特殊情況的處理。但算法、協議這種偏抽象的東西&#xff0c;僅僅看論文還是比較難以掌握的&#xff0c;需要看看在工業界的具體實現。本文關注MongoDB是如何在復制集中使用raft協…

db2 前滾會話

前滾會話 - CLP 示例ROLLFORWARD DATABASE 命令允許每次指定多個操作&#xff0c;各個操作由關鍵字 AND 隔開。例如&#xff0c;要前滾至日志末尾&#xff0c;然后完成&#xff0c;可將下列獨立的命令&#xff1a;db2 rollforward db sample to end of logsdb2 rollforward db …

史上最爛代碼_歷史上最大的代碼庫

史上最爛代碼Here’s a diagram of the biggest codebases in history, as measured by lines of code:這是歷史上最大的代碼庫的圖表&#xff0c;以代碼行來衡量&#xff1a; As you can see, Google has by far the largest codebase of all. And all 2 billion lines of co…

php添加jpeg,PHP-如何將JPEG圖像保存為漸進JPEG?

我具有以下將JPEG保存為漸進JPEG的功能.它已保存,但不是漸進式JPEG.這個對嗎 &#xff1f;function save($filename, $image_type IMAGETYPE_JPEG, $compression 75, $permissions null) {if ($image_type IMAGETYPE_JPEG) {imageinterlace($this->image, true); //conv…

Mysql添加字段.md

alter table td_user add gender bit DEFAULT 0 COMMENT 性別; 轉載于:https://www.cnblogs.com/bihanghang/p/10167446.html

推薦兩款實用工具——hcache和SQLPad

hcacheLinux用戶可能經常遇到的一個問題是內存大部分都被Buff和Cache占用了&#xff0c;但是有時候我們想知道到底Cache了些什么內容卻沒有一個直觀好用的工具。今天給你介紹一個可以查看Linux當前緩存了哪些文件的小工具hcache。hcache是基于pcstat的&#xff0c;pcstat可以查…

如何構建設計系統

by Colm Tuite通過Colm Tuite 如何構建設計系統 (How to construct a design system) 設計和構建一致的設計系統的技巧。 (Tips for designing and building a consistent design system.) Without doubt, I get asked about design systems more than anything else. So, hav…

matlab中get和set命令,關于matlab中get和set的用法

求極值點我現在知道有兩種方法&#xff1a;建立一個fun.m文件&#xff1a;function fxfun(x)fxsin(x)然后在命令窗口中調用&#xff1a;zfmax(fun,[0,pi/2])%同樣的函數還有zfmin(fun,...[0,pi/2]),zfzero(fun,0.5).zfsolve(fun,x0,option)...方程組求解&#xff0c;x0是求根過…

jmeter學習筆記(一)

1.添加JSON Path Extractor >>下載地址&#xff1a;http://jmeter-plugins.org/downloads/all/&#xff0c;下載 JMeterPlugins-ExtrasLibs-X.X.X.zip下載 >>解壓&#xff0c;將lib和lib/ext中的jar包放到安裝目錄對應位置&#xff0c;重啟。 2.參數不能輸入中文&…

docker mysql.sock,Docker mysql主從配置

Docker mysql主從配置一&#xff1a;Mysql基于Docker的主從復制搭建1&#xff1a;安裝docker&#xff0c;安裝步驟可見我之前的文章&#xff1a;Docker-常用基建的安裝與部署docker ps 命令查詢當前的容器狀態&#xff0c;這就是我們最后要達到的效果。2&#xff1a;首先拉取my…

神秘的數組初始化_圖像識別神秘化

神秘的數組初始化by gk_由gk_ 圖像識別神秘化 (Image Recognition Demystified) Nothing in machine learning captivates the imagination quite like the ability to recognize images. Identifying imagery must connote “intelligence,” right? Let’s demystify.機器學…

css中的定位問題

1、position的四種常見屬性值 static&#xff1a;元素框正常生成&#xff0c;塊元素生成一個正常矩形塊&#xff0c;行內元素則會創建一個或多個行框&#xff0c;置于父元素內。 relative&#xff1a;相對定位&#xff0c;是相對于自己本來應該在的位置&#xff08;static 定位…