2018-2019-1 20165209 《資訊安全系統設計基礎》第九周學習總結
2018-2019-1 20165209 《資訊安全系統設計基礎》第九周學習總結
教材學習內容總結
目錄內容:ls
1. 理解虛擬儲存器的概念和作用
概念:虛擬儲存器是硬體異常、硬體地址翻譯、主存、磁碟檔案和核心軟體的完美互動,它為每個程序提供了一個大的、一致的和私有的地址空間。
- 作用:
- 將主存看做是一個儲存在磁碟上的地址空間的快取記憶體,在主存中只保護活動區域。
- 為每個程序提供了一致的地址空間,從而簡化了儲存器管理。
- 保護每個程序的地址空間不被其他程序破壞。
- 將主存看做是一個儲存在磁碟上的地址空間的快取記憶體,在主存中只保護活動區域。
2.理解地址翻譯的概念
- 概念:把一個虛擬地址轉換為實體地址的任務。
3.理解儲存器對映
概念:Linux通過將一個虛擬記憶體區域與一個磁碟上的物件(object)關聯起來,以初始化這個虛擬記憶體區域的內容。
Linux中的普通檔案:一個區域可以對映到一個普通磁碟檔案的連續部分,例如一個可執行目標檔案。
匿名檔案:一個區域也可以對映到一個匿名檔案,匿名檔案是由核心建立的,包含的全是二進位制零。
4.掌握動態儲存器分配的方法
- 概念:當執行時需要額外虛擬儲存器時,使用動態儲存器分配器維護一個程序的虛擬儲存器區域。
- 分配器有兩種:
- 顯示分配器:要求應用顯式地釋放任何已經分配的塊。
- 隱式分配器:要求分配器檢測一個已分配塊何時不再被程式所使用,就釋放這個塊。也叫做垃圾收集器。
- 顯示分配器:要求應用顯式地釋放任何已經分配的塊。
5.理解垃圾收集的概念
垃圾收集器是一種動態儲存分配器。自動釋放程式已經不再需要的已分配塊。
垃圾收集器將儲存器視為一張有向可達圖。
- Mark%Sweep垃圾收集器:由標記(mark)階段和清除(sweep)階段組成。
6.瞭解C語言中與儲存器有關的錯誤
間接引用壞指標
引用指標,而不是所指向的物件
誤解指標運算
引起儲存器洩露
教材學習中的問題和解決過程
問題1:malloc()從哪裡獲得的記憶體空間?
問題1解決方案:從堆裡面獲得空間。當作業系統收到程式的申請時,就會遍歷該連結串列,然後就尋找第一個空間大於所申請空間的堆結點,然後就將該結點從空閒結點連結串列中刪除,並將該結點的空間分配給程式。
程式碼除錯中的問題和解決過程
- 問題1:無法開啟Y86-64模擬器介面
- 問題1解決方案:將兩個GUI路徑分別設定為
TKLIBS=-L/usr/lib -ltk8.5
和-ltcl8.5和TKINC=-I/usr/include/tcl8.5
(原因是Y86-64模擬器的Makefile中配置GUI相關路徑錯誤導致的)
上週考試錯題總結
錯題1:
Unix/Linux中,對於程式碼fd=open("foo",O_WRONLY,0766),umask=022,下面說法正確的是(AC)
A . 程序對foo是隻寫的
B . 同組成員能寫foo
C . 使用者可以執行foo
D . 任何人都可以寫foo解析:因為九個許可權可以用0777表示,07(使用者)7(同組成員)7(其他人)7(111)(讀:寫:執行),檔案實際許可權是mode&~mask。
錯題2:
有關磁碟操作,說法正確的是(ACD)
A . 對磁碟扇區的訪問時間包括三個部分中,傳送時間最小。
B . 磁碟以位元組為單位讀寫資料
C . 磁碟以扇區為單位讀寫資料
D . 讀寫頭總處於同一柱面解析:對磁碟扇區的訪問時間中傳送時間最小;磁碟以扇區為單位讀寫資料;磁碟操作中讀寫頭總處於同一柱面。
其他
這一章的內容有點難,花的時間比預計多了一些,但是書本上的東西認真看還是可以理解的。
計劃學習時間:15小時
實際學習時間:20小時
改進情況:
(有空多看看現代軟體工程 課件
軟體工程師能力自我評價表)