2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结
2017-2018-1 20155330 《信息安全系統(tǒng)設(shè)計基礎(chǔ)》第11周學(xué)習(xí)總結(jié)
教材學(xué)習(xí)內(nèi)容總結(jié)
物理和虛擬尋址
- 計算機系統(tǒng)的主存被組織成一個由M個連續(xù)的字節(jié)大小的單元組成的數(shù)組。每字節(jié)都有一個唯一的物理地址。
- CPU訪問內(nèi)存的最自然的方式就是使用物理地址,稱為物理尋址。
現(xiàn)代處理器使用虛擬尋址的尋址形式。CPU通過生成一個虛擬地址 來訪問主存,這個虛擬地址在被送到內(nèi)存之前先轉(zhuǎn)換成適當(dāng)?shù)奈锢淼刂贰⒁粋€虛擬地址轉(zhuǎn)換為物理地址的任務(wù)叫做地址翻譯。
地址空間
- 地址空間是一個非負(fù)整數(shù)地址的有序集合:
- 線性地址空間:地址空間中的整數(shù)是連續(xù)的。
- 線性地址空間:在一個帶虛擬內(nèi)存的系統(tǒng)中,CPU從一個有N=2^(n)個地址的地址空間中生成虛擬地址。
一個地址空間的大小是由表示最大地址所需要的位數(shù)來描述。一個包含N=2^(n)個地址的虛擬地址空間就叫做一個n位地址空間。現(xiàn)代系統(tǒng)通常支持32位或64位虛擬地址空間。
虛擬內(nèi)存作為緩存的工具
- 在任意時刻,虛擬頁面的集合都分為三個不相交的子集:
- 未分配的:VM系統(tǒng)還未分配(或創(chuàng)建)的頁。未分配的塊沒有任何數(shù)據(jù)和它們相關(guān)聯(lián),因此也就不占用任何磁盤空間。
- 緩存的:當(dāng)前已緩存在物理內(nèi)存中的已分配頁。
- 未緩存的:未緩存在物理內(nèi)存中的已分配頁。
- 頁表就是一個頁表條目(PTE)的數(shù)組。虛擬地址空間中的每個頁在頁表中一個固定偏移量處都有一個PTE。
- 有效位表明該虛擬頁當(dāng)前是否被緩存在DRAM中。如果設(shè)置了有效位,那么地址字段就表示DRAM中相應(yīng)的物理頁的起始位置,這個物理頁中緩存了該虛擬頁。
DRAM緩存不命中成為缺頁。
地址翻譯
地址翻譯是一個N元素的虛擬地址空間(VAS)中的元素和一個M元素的物理地址空間(PAS)中元素之間的映射
- 利用TLB加速地址翻譯:所有的地址翻譯步驟都是在芯片上的MMU中執(zhí)行的。
- 用來壓縮頁表的常用方法是使用層次結(jié)構(gòu)的頁表。
- 訪問設(shè)備時引薦如何劃分虛擬地址和物理地址的位:
- TLB:利用VPN的位進行虛擬尋址。
- 頁表:用索引它的VPN來標(biāo)識每個PTE。但這些VPN并不是頁表的一部分,也不儲存在內(nèi)存中。
高速緩存:直接映射的緩存是通過物理地址中的字段尋址。
案例研究:Intel Core i7/Linux 內(nèi)存系統(tǒng)
- Core i7地址翻譯過程
Linux缺頁處理
內(nèi)存映射
- 虛擬內(nèi)存區(qū)域可以映射到兩種類型的對象中的一種:
- Linux文件系統(tǒng)中的普通文件:一個區(qū)域可以映射到一個普通磁盤文件的連續(xù)部分。
匿名文件。
動態(tài)內(nèi)存分配
- 動態(tài)內(nèi)存分配器維護著一個進程的虛擬內(nèi)存區(qū)域,稱為堆。
- 分配器將堆視為一組不同大小的塊的集合進行維護。
- 分配器有兩種基本風(fēng)格,都要求應(yīng)用顯式地分配塊,不同之處在于由哪個實體來負(fù)責(zé)釋放已分配的塊:
- 顯式分配器:顯式地釋放任何已分配的塊。
- 隱式分配器:要求分配器檢測一個已分配塊何時不再被程序所使用,那么就釋放這個塊。也叫做垃圾收集器。
- 顯式分配器的要求和目標(biāo):
- 處理任意請求序列。
- 立即響應(yīng)請求。
- 只使用堆。
- 對齊塊(對齊要求)。
- 不修改已分配的塊。
- 分配器的目標(biāo)就是在整個序列中使峰值利用率U^(n-1)最大化。
- 造成堆利用率很低的主要原因是一種稱為碎片的現(xiàn)象。有兩種形式:內(nèi)部碎片和外部碎片。
- 內(nèi)部碎片:在一個已分配塊比有效載荷大時發(fā)生。
外部碎片:當(dāng)空閑內(nèi)存合計起來足夠滿足一個分配請求,但是沒有一個單獨的空閑塊足夠大可以來處理這個請求時發(fā)生。
教材學(xué)習(xí)中的問題和解決過程
- 問題1:
問題1解決方案:
| 8 | 2^(8)=256 | 2^(8)-1=255 |
| 16 | 2^(16)=64K | 2^(16)-1=64K-1 |
| 32 | 2^(32)=4G | 2^(32)-1=4G-1 |
| 48 | 2^(48)=256T | 2^(48)-1=256T-1 |
| 64 | 2^(64)=16384P | 2^(64)-1=16384P-1 |
代碼托管
結(jié)對及互評
本周結(jié)對學(xué)習(xí)情況
- 20155321
- 結(jié)對學(xué)習(xí)內(nèi)容
- 第9章 虛擬內(nèi)存
- 實驗四 外設(shè)驅(qū)動程序
學(xué)習(xí)進度條
| 目標(biāo) | 5000行 | 30篇 | 400小時 | |
| 第一周 | 0/0 | 1/1 | 10/10 | |
| 第二周 | 63/63 | 1/2 | 8/18 | |
| 第三周 | 31/94 | 1/3 | 18/36 | |
| 第四周 | 265/329 | 1/4 | 17/53 | |
| 第五周 | 106/435 | 2/6 | 18/71 | |
| 第六周 | 211/646 | 2/8 | 21/92 | |
| 第七周 | 1420/2066 | 2/10 | 17/109 | |
| 第八周 | 1061/3127 | 1/11 | 17/126 | |
| 第九周 | 1458/4585 | 3/14 | 20/146 | |
| 第十周 | 1410/5995 | 1/15 | 20/166 | |
| 第十一周 | 779/6774 | 2/17 | 18/184 |
嘗試一下記錄「計劃學(xué)習(xí)時間」和「實際學(xué)習(xí)時間」,到期末看看能不能改進自己的計劃能力。這個工作學(xué)習(xí)中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓(xùn)練次數(shù)多了,X、Y就接近了。
參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法
計劃學(xué)習(xí)時間:15小時
實際學(xué)習(xí)時間:18小時
參考資料
- 《深入理解計算機系統(tǒng)V3》學(xué)習(xí)指導(dǎo)
轉(zhuǎn)載于:https://www.cnblogs.com/ashin-kl/p/7921463.html
總結(jié)
以上是生活随笔為你收集整理的2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习之动态代理
- 下一篇: 从零开始搭建系统1.1——CentOs安