20145302張薇 《資訊保安系統設計基礎》課程總結
每週學習內容總結
第0周學習內容:預習課本以及安裝linux虛擬機器學習環境
第1周學習內容:學習一些核心的Linux命令,瞭解Linux作業系統
第2周學習內容:熟悉gcc以及gdb的使用,學習庫與連結的概念
第3周學習內容:學習資訊的表示和處理,有符號數、無符號數、浮點數等
第5周學習內容:學習Linux中彙編的一些基礎知識
第6周學習內容:安裝Y86處理器,瞭解ISA抽象
第7周學習內容:理解區域性性原理和快取思想在儲存層次結構中的應用
第8周學習內容:期中總結,查漏補缺
第9周學習內容:學習Unix I/O並且瞭解Unix I/O的使用情況
第10周學習內容:實踐常用指令的程式碼,加深對指令的理解
第11周學習內容:理解程式和併發,瞭解異常及其種類
第12周學習內容:複習理解前三週的程式碼
第13周學習內容:掌握併發的方式,執行緒控制及相關係統呼叫
第14周學習內容:學習虛擬儲存器
實驗報告連結彙總
程式碼託管連結
- 程式碼託管連結
注:我有兩個Linux專案
程式碼git log結果:
- 程式碼量統計:
- 程式碼驅動的學習做到沒有?
答:做到了。在進行程式碼學習時,先要有一個良好的框架,理好思緒,先看程式碼自行理解一波含義,預測一下程式碼的結果,隨後再執行查驗,這樣才能發現處理問題。 - 我們在進行程式碼學習時,執行完程式碼後可以刪改一些程式碼的內容來檢視程式碼的執行結果有何改變,這樣可以更好的理解程式碼的含義。
- 我們在進行程式碼實踐時,一定要先了解程式碼再執行,因為比如執行緒程式碼運用到了庫的知識,我們不能用簡單的gcc格式直接編譯,否則是不能成功的。
第0周問題回答
- 第一章
作業系統的核心抽象有哪些?
答:作業系統提供三個基本的抽象:1)檔案是對I/O裝置的抽象;2)虛擬儲存器是對主存和磁碟的抽象;3)程式是對處理器、主存和I/O裝置的抽象。 - 第二章
無符號數的編碼是什麼?
答:無符號數編碼是基於傳統的二進位制表示法,表示大於或者等於零的數字。 - 第三章
棧幀結構是什麼?
答:IA32程式用程式棧來支援過程呼叫。為單個程式分配的那部分稱為棧幀,棧用來傳遞引數、儲存返回資訊、儲存暫存器以及本地儲存。 - 第四章
如何比較IA32和Y86的指令編碼?
答:與IA32相比,Y86指令集的資料型別、指令和定址方式都要少一些,Y86的位元組級編碼也比較簡單。 - 第五章
優化程式效能的技巧有哪些?
答:1)優化編譯器的能力和侷限性;2)程式設計時消除迴圈的低效率;3)消除不必要的儲存器引用;4)進行程式變換:迴圈展開,即通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數;5)提高程式並行性。 第六章
儲存器的層次結構是什麼樣的?
答:- 第七章
為了構造可執行檔案,連結器需要完成什麼任務?
答:有兩個主要任務:1)符號解析;2)重定位。 - 第八章
異常控制流是什麼?
答:異常控制流是作業系統用來實現I/O、程式和虛擬儲存器的基本機制。 - 第九章
如何理解端對端這個概念?
答:端對端是針對網路中傳輸的兩端裝置間的關係而言的。端對端傳輸指的是在資料傳輸前,經過各種各樣的交換裝置,在兩端裝置間建立一條鏈路,就象它們是直接相連的一樣,鏈路建立後,傳送端就可以傳送資料,直至資料傳送完畢,接收端確認接收成功。 - 第十章
如何進行檔案的輸入與輸出?
答:應用程式通過分別呼叫read和write函式來執行輸入和輸出。 - 第十一章
如何將系統應用到網路?
答:每個網路應用都是基於客戶端-伺服器模型的,通過網路程式設計來實現。 - 第十二章
併發程式設計是什麼?
答:可以使用程式或I/O多路複用或執行緒來實現應用級程式併發的程式設計。
關於回答自己的預習提問的感想
- 我發現第0周提出的問題大都不是該章學習的重點內容,只是一些基礎和概念的理解。
- 在通過這15周的學習後我發現認真讀書和粗略看書真的是兩種不同的體驗,書要細讀才能學到知識。
專案加分
優秀作業
第2周學習內容:http://www.cnblogs.com/5302v/p/5907521.html:熟悉gcc以及gdb的使用,學習庫與連結的概念
第6周學習內容:http://www.cnblogs.com/5302v/p/5991302.html:安裝Y86處理器,瞭解ISA抽象
第8周學習內容:http://www.cnblogs.com/5302v/p/6036373.html:期中總結,查漏補缺
第10周學習內容:http://www.cnblogs.com/5302v/p/6083688.html:實踐常用指令的程式碼,加深對指令的理解
第11周學習內容:http://www.cnblogs.com/5302v/p/6105536.html:理解程式和併發,瞭解異常及其種類
扇貝單詞
- 通過扇貝背單詞拼寫記憶的方式,一學期下來讓我增加了一些詞彙量,而且小組制度能夠提醒自己堅持下來,有用。
專案
課程收穫與不足
收穫
- 學習了新的知識,熟悉了Linux系統的一些基本命令的使用,發現其實命令列挺好用的,有時候比圖形介面好用的多。
- 對於markdown的編輯格式可以更熟練的運用了,尤其是在進行gdb的除錯後給出堆疊的表格變化後,發現表格的編輯也不是特別的繁瑣。
- 學習方法,我們學習新的知識,有四點很重要,第一,學習基礎知識;第二,一定動手實踐;第三,遇到問題積極解決不閒置;第四,重要知識勤記錄。好的學習方法使我們一生受益。
不足
- 一學期下來,不是所有的程式碼都能理解通。
- 每週有錯題,對答案後知道對的答案有時候不能理解,會死記硬背。
- 學習進度條沒有弄,書上的基礎知識看了過後過幾天就記不清了,需要反覆看。
給學弟學妹們的學習建議
- 不要拖,每天學習一點比堆積到最後的效果要好,而且有利於自己安排時間。
- 部落格主要記錄自己認為重要的知識,和遇到的問題、解決方式,自己在學習時的分析。
- 學習程式碼時要先理解程式碼再執行測驗能幫助我們深入理解程式碼是如何執行的。
- 學習課本知識最重要的是理解,因為每週的測試題有些並不是書上原文就能找到的,光會做算術題可不夠。
- 基礎知識要打牢,不要有牴觸情緒,知識都是自己的,而且學習方法是很好的,要克服自己的懶惰,心態擺正,為自己學。
問卷調查
- 你平均每週投入到本課程多長時間?
答:平均每週10個小時。 - 每週的學習效率有提高嗎?
答:學習效率有提高,因為有老師的重點內容導讀,知道側重點。 - 學習效果自己滿意嗎?
答:有時候還挺滿意的,感覺學習了不少;有時候就不滿意,怪自己懶惰的囫圇吞棗。 - 課程結束後會繼續一週至少一篇部落格嗎?
答:我深知自己一週至少發一篇部落格做不到,但是如果有重要的學習教程我會總結一篇部落格,萬一日後自己忘了還可以用到,挺不錯的。 - 你覺得這門課老師應該繼續做哪一件事情?
答:老師繼續每週進行答案的講解我感覺挺有用的! - 你覺得這門課老師應該停止做哪一件事情?
答:想了半天,突然發現,真不知道該停止哪個,都有用。 - 你覺得這門課老師應該開始做什麼新的事情?
答:實驗的程式碼不容易理解,老師您可以上課順帶點撥一番。