20145315 《信息安全系统设计基础》第14周学习总结
20145315 《信息安全系統設計基礎》第14周學習總結
課程內容總結
物理地址和虛擬地址
- 物理地址:計算機系統的主存被組織成一個由M個連續的字節大小的單元組成的數組。每個字節都有唯一的物理地址。
- 虛擬尋址:使用虛擬尋址時,CPU通過生成一個虛擬地址來訪問主存,這個虛擬地址在被送到存儲器前被轉換為適當的物理地址。
地址空間
- 一個地址空間的大小是由表示最大地址所需要的位數來描述的。
- 虛擬存儲器的基本思想:允許每個數據對象有多個獨立的地址,其中每個地址都選自一個不同的地址空間。
虛擬存儲器作為緩存的工具
- VM系統將虛擬存儲器分割為稱為虛擬頁的大小固定的塊。
- 物理存儲器被分割為物理頁(頁幀),大小也為P。
在任意時刻,虛擬頁面的集合都被分為三個不相交的子集:
- 未分配的:沒有任何數據與它們相聯,不占任何磁盤空間。
- 緩存的:當前緩存的物理存儲器中的已分配頁。
- 未緩存的:沒有緩存在物理存儲器中的已分配頁。
DRAM緩存的組織結構:
- 由于大的不命中處罰,DRAM緩存是全聯的。
- 與硬件SRAM相比,操作系統對DRAM緩存使用了更加復雜精密的替換算法。
對磁盤的訪問時間很長,DRAM緩存總是使用寫回,而不是直寫。
頁表
頁表:將虛擬頁映射到物理頁。
每次地址翻譯 硬件將虛擬地址轉換為物理地址時都會讀取頁表。
頁表就是一個頁表條目(PTE)的數組。
虛擬地址空間中每個頁中一個固定偏移量處都有一個PTE。
DRAM緩存不命中稱為缺頁。
虛擬存儲器作為存儲管理工具
VM簡化了鏈接和加載,代碼和數據共享,以及應用程序的存儲器分配。
虛擬存儲器作為存儲器保護的工具
SUP位表示進程是否必須運行在內核模式下才能訪問該頁。READ和WRITE位控制對頁面的讀和寫訪問。
如果一條指令違反了這些許可條件,那么CPU就觸發一個一般保護故障,將控制傳遞給一個內核中的異常處理程序。
地址翻譯
將一個N元素的虛擬地址空間(VAS)中的元素和一個M元素的物理地址空間(PAS)中元素之間的映射。
當前頁命中的執行步驟(完全由硬件處理):
- 處理器生成虛擬地址,傳給MMU
- MMU生成PTE地址,并從高速緩存/主存請求得到他
- 高速緩存/主存向MMU返回PTE
- MMU構造物理地址,并把它傳給高速緩存/主存
- 高速緩存/主存返回所請求的數據給處理器。
處理缺頁(要求硬件和操作系統內核協作完成):
- 處理器生成虛擬地址,傳給MMU
- MMU生成PTE地址,并從高速緩存/主存請求得到他
- 高速緩存/主存向MMU返回PTE
- PTE中有效位是零,MMU觸發異常,傳輸CPU中的控制到操作系統內核中的缺頁異常處理程序。
- 缺頁異常處理程序確定犧牲頁,如果這個頁面已經被修改了,則把它換出磁盤。
- 缺頁異常處理程序調入新的頁面,更新存儲器中的PTE
缺頁異常處理程序返回原來的進程,再次執行導致缺頁的指令。CPU將引起缺頁異常虛擬地址重新發送給MMU。因為虛擬頁面現在緩存在物理存儲器中,所以就會命中。
TLB加速地址翻譯
翻譯后備緩沖器(TLB):是一個小的、虛擬存儲的緩存,其中每一行都保存著一個由單個PTE組成的塊,TLB通常具有高度的相關性。
存儲器映射
- 存儲器映射:Linux通過將一個虛擬存儲器區域與一個磁盤上的對象關聯起來,以初始化這個虛擬存儲器區域的內容的過程。
一個對象可以被映射到虛擬存儲器的一個區域,要么作為共享對象,要么作為私有對象。
存儲器動態分配
分配器的兩種基本風格:
- 顯示分配器-malloc和free
- 隱式分配器/垃圾收集器
碎片
雖然有未使用的存儲器,但是不能用來滿足分配請求時,發生這種現象。
內部碎片:發生在一個已分配塊比有效載荷大的時候
外部碎片:發生在當空閑存儲器合計起來足夠滿足一個分配請求,但是沒有一個單獨的空間塊足以處理這個請求時發生。
垃圾收集
垃圾收集器是一種動態存儲分配器,它自動釋放程序不再需要的已分配塊,這些塊被稱為垃圾。
自動回收堆存儲的過程叫做垃圾收集。
當存在一條從任意根節點出發并到達p的有向路徑時,說節點p是可達的,不可達點就是垃圾。
存儲器有關錯誤
- 間接引用壞指針
- 讀未初始化的存儲器
- 允許棧緩沖區溢出
- 假設指針和它們指向的對象是相同大小的
- 造成錯位錯誤
- 引用指針,而不是它所指向的對象
- 誤解指針運算
- 引用不存在的變量
- 引用空堆塊中的數據
- 引起存儲器泄露
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 20/200 | 1/2 | 20/20 | |
| 第二周 | 30/200 | 2/4 | 18/38 | |
| 第三周 | 50/200 | 1/4 | 22/30 | |
| 第四周 | 0/200 | 0/0 | 0/30 | |
| 第五周 | 100/200 | 2/2 | 25/30 | |
| 第六周 | 100/200 | 2/2 | 25/30 | |
| 第七周 | 100/200 | 1/2 | 25/30 | |
| 第九周 | 100/200 | 1/2 | 25/30 | |
| 第十周 | 100/200 | 1/2 | 25/30 | |
| 第十一周 | 100/200 | 1/2 | 25/30 | |
| 第十二周 | 100/200 | 1/2 | 25/30 | |
| 第十三周 | 943/200 | 1/2 | 25/30 | |
| 第十四周 | 0/200 | 1/2 | 25/30 |
參考資料
- 《信息安全系統設計基礎》教學進程
- ...
轉載于:https://www.cnblogs.com/5315hejialei/p/6195618.html
總結
以上是生活随笔為你收集整理的20145315 《信息安全系统设计基础》第14周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做值钱的事比赚钱更有意义
- 下一篇: java信息管理系统总结_java实现科