2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结
生活随笔
收集整理的這篇文章主要介紹了
2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2017-2018-1 20155330 《信息安全系統設計基礎》第11周學習總結
教材學習內容總結
物理和虛擬尋址
- 計算機系統的主存被組織成一個由M個連續的字節大小的單元組成的數組。每字節都有一個唯一的物理地址。
- CPU訪問內存的最自然的方式就是使用物理地址,稱為物理尋址。
現代處理器使用虛擬尋址的尋址形式。CPU通過生成一個虛擬地址 來訪問主存,這個虛擬地址在被送到內存之前先轉換成適當的物理地址。將一個虛擬地址轉換為物理地址的任務叫做地址翻譯。
地址空間
- 地址空間是一個非負整數地址的有序集合:
- 線性地址空間:地址空間中的整數是連續的。
- 線性地址空間:在一個帶虛擬內存的系統中,CPU從一個有N=2^(n)個地址的地址空間中生成虛擬地址。
一個地址空間的大小是由表示最大地址所需要的位數來描述。一個包含N=2^(n)個地址的虛擬地址空間就叫做一個n位地址空間。現代系統通常支持32位或64位虛擬地址空間。
虛擬內存作為緩存的工具
- 在任意時刻,虛擬頁面的集合都分為三個不相交的子集:
- 未分配的:VM系統還未分配(或創建)的頁。未分配的塊沒有任何數據和它們相關聯,因此也就不占用任何磁盤空間。
- 緩存的:當前已緩存在物理內存中的已分配頁。
- 未緩存的:未緩存在物理內存中的已分配頁。
- 頁表就是一個頁表條目(PTE)的數組。虛擬地址空間中的每個頁在頁表中一個固定偏移量處都有一個PTE。
- 有效位表明該虛擬頁當前是否被緩存在DRAM中。如果設置了有效位,那么地址字段就表示DRAM中相應的物理頁的起始位置,這個物理頁中緩存了該虛擬頁。
DRAM緩存不命中成為缺頁。
地址翻譯
地址翻譯是一個N元素的虛擬地址空間(VAS)中的元素和一個M元素的物理地址空間(PAS)中元素之間的映射
- 利用TLB加速地址翻譯:所有的地址翻譯步驟都是在芯片上的MMU中執行的。
- 用來壓縮頁表的常用方法是使用層次結構的頁表。
- 訪問設備時引薦如何劃分虛擬地址和物理地址的位:
- TLB:利用VPN的位進行虛擬尋址。
- 頁表:用索引它的VPN來標識每個PTE。但這些VPN并不是頁表的一部分,也不儲存在內存中。
高速緩存:直接映射的緩存是通過物理地址中的字段尋址。
案例研究:Intel Core i7/Linux 內存系統
- Core i7地址翻譯過程
Linux缺頁處理
內存映射
- 虛擬內存區域可以映射到兩種類型的對象中的一種:
- Linux文件系統中的普通文件:一個區域可以映射到一個普通磁盤文件的連續部分。
匿名文件。
動態內存分配
- 動態內存分配器維護著一個進程的虛擬內存區域,稱為堆。
- 分配器將堆視為一組不同大小的塊的集合進行維護。
- 分配器有兩種基本風格,都要求應用顯式地分配塊,不同之處在于由哪個實體來負責釋放已分配的塊:
- 顯式分配器:顯式地釋放任何已分配的塊。
- 隱式分配器:要求分配器檢測一個已分配塊何時不再被程序所使用,那么就釋放這個塊。也叫做垃圾收集器。
- 顯式分配器的要求和目標:
- 處理任意請求序列。
- 立即響應請求。
- 只使用堆。
- 對齊塊(對齊要求)。
- 不修改已分配的塊。
- 分配器的目標就是在整個序列中使峰值利用率U^(n-1)最大化。
- 造成堆利用率很低的主要原因是一種稱為碎片的現象。有兩種形式:內部碎片和外部碎片。
- 內部碎片:在一個已分配塊比有效載荷大時發生。
外部碎片:當空閑內存合計起來足夠滿足一個分配請求,但是沒有一個單獨的空閑塊足夠大可以來處理這個請求時發生。
教材學習中的問題和解決過程
- 問題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 |
代碼托管
結對及互評
本周結對學習情況
- 20155321
- 結對學習內容
- 第9章 虛擬內存
- 實驗四 外設驅動程序
學習進度條
| 目標 | 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 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法
計劃學習時間:15小時
實際學習時間:18小時
參考資料
- 《深入理解計算機系統V3》學習指導
轉載于:https://www.cnblogs.com/ashin-kl/p/7921463.html
總結
以上是生活随笔為你收集整理的2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习之动态代理
- 下一篇: 从零开始搭建系统1.1——CentOs安