每週做業連接彙總
第0周做業
簡要內容:
二維碼
第1周做業
簡要內容:
- Linux操做系統概述
- 核心的Linux命令:find/locate/cheat/grep/which/whereis
- 使用Linux中用戶管理命令/系統相關命令/文件目錄相關命令/打包壓縮相關命令/比較合併相關命令/網絡相關命令等
二維碼
第2周做業
簡要內容:
- Linux系統下的開發環境
- vi的基本操做
- gcc編譯器的基本原理
- 使用gcc編譯器的經常使用選項
- 使用gdb調試技術
- makefile基本原理及語法規範
- 靜態庫和動態庫的生成與調用方法
- C程序中模塊的概仿,模塊分解的「高內聚,低耦合」的原則
- 連接的概念
二維碼
第3周做業
簡要內容:
- 二進制在計算機中的重要地位
- 布爾運算在C語言中的應用
- 有符號整數、無符號整數、浮點數的表示
- 補碼
- 如何C避免語言中溢出,數據類型轉換中的陷阱和可能會致使的漏洞
- 理解「信息=位+上下文」
二維碼
第5周做業
簡要內容:
- 程序的機器級表示
- 算術和邏輯操做
- 彙編語言中的控制指令
- GDB調試器
二維碼:
第6周做業
簡要內容:
- ISA抽象的做用
- ISA,並能觸類旁通學習其餘體系結構
- 流水線和實現方式
二維碼
第7周做業
簡要內容:
- 常見的存儲技術(RAM、ROM、磁盤、固態硬盤等)
- 局部性原理
- 緩存思想
- 局部性原理和緩存思想在存儲層次結構中的應用
- 高速緩存的原理和應用
二維碼
第8周做業
簡要內容:
二維碼
第9周做業
簡要內容:
- 系統編程和系統調用的概念
- 系統編程錯誤處理的方式
- Unix/Linux系統級I/O:open close read write seek stat
- RIO
- I/O重定向的方法
二維碼
第10周做業
簡要內容:
- 掌握系統編程和系統調用的概念
- 掌握系統編程錯誤處理的方式
- 掌握Unix/Linux系統級I/O:open close read write seek stat
- 掌握RIO
- 掌握I/O重定向的方法
二維碼
第11周做業
簡要內容:
- 瞭解異常及其種類
- 理解進程和併發的概念
- 掌握進程建立和控制的系統調用及函數使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
- 理解數組指針、指針數組、函數指針、指針函數的區別
- 理解信號機制:kill,alarm,signal,sigaction
- 掌握管道和I/O重定向:pipe, dup, dup2
二維碼
第12周做業
簡要內容:
二維碼
第13周做業
簡要內容:
- 掌握三種併發的方式:進程、線程、I/O多路複用
- 掌握線程控制及相關係統調用
- 掌握線程同步互斥及相關係統調用
二維碼
第14周做業
簡要內容:
- 理解虛擬存儲器的概念和做用
- 理解地址翻譯的概念
- 理解存儲器映射
- 掌握動態存儲器分配的方法
- 理解垃圾收集的概念
- 瞭解C語言中與存儲器有關的錯誤
二維碼
實驗報告彙總連接
代碼託管
- 提交歷史:虛擬機進不去了。。。。。爆炸,修好以後補上。
-
-
- 代碼總量:
勉強作到了,前幾周的的學習,代碼不多,因此對代碼驅動的學習體會不多。到後面幾周的學習,代碼量忽然增長,感受有點措手不及,但結合書上的知識去分析代碼,收穫是巨大的。html
對於老師所給的代碼,若是停留只是去運行一下的層面的話,收穫就很淺,就算懂代碼,只能說理解皮毛。只有經過本身加點代碼,改點代碼去理解書上的知識,這樣的話纔會作到所謂的「玩轉代碼」,我想老師想讓咱們作到即是將代碼玩得轉,精通代碼,活學活用吧。linux
實踐這學期作了兩個,一個是經過gdb瞭解調用函數過程棧的變化,另外一個是緩衝區溢出實踐。我以爲最大的教訓是:必需要手動畫一下棧,本身分析分析一下過程。我以爲這一點很重要,由於經過gdb,你獲得的是寄存器和存儲的值,惟有本身動手畫一下棧,並分析,纔會將抽象的東西展示在你面前,這樣就會很好理解。git
總體評價一下第0周做業中本身提出的問題是否是抓住了學習重點
抓住了大部的分析重點。web
回答一下第0周做業中本身提出的問題
- 什麼是計算機系統漫遊?
- 這個問題當時問的太沒水平了,所謂計算機系統漫遊,即是讓初學者對計算機系統有個初步的瞭解。
- 信息如何表示如何處理?
- 什麼是程序的機器級表示?
-
計算機系統使用了多種不一樣形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。編程
對於機器級編程來講,其中兩種抽象尤其重要:數組
一、指令集體系結構(Instruction set architecture ISA)緩存
二、機器級程序使用的存儲器地址是虛擬地址安全
提供的存儲器模型看上去是一個很是大的字節數組。存儲器系統的實際實現是將多個硬件存儲器和操做系統軟件組合起來。服務器
- 處理器體系結構包含哪些?
- Y86指令集體系結構
- 邏輯設計和硬件控制語言HCL
- 流水線
- 如何優化程序性能?
- 第五章的內容,本學習沒有學習,也不懂這個問題如何回答。
- 存儲器結構層次有哪些?
- 如何在系統上運行程序?
- 就拿一個.c文件來收,要讓它運行,首先要進行預處理,而後編譯,接着彙編,最後連接成可執行完文件,才能在系統上運行。
- 異常控制流是什麼?
- 異常控制流:現代操做系統經過使控制流發生突變來對系統狀態作出反應,這些突變稱爲異常控制流。
- 虛擬存儲器是什麼?
- 虛擬內存是計算機系統內存管理的一種技術。它使應用程序認爲它擁有連續的可用的內存(一個連續完整的地址空間),而實際上,它一般是被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在須要時進行數據交換。目前,大多數操做系統都使用了虛擬內存,如Windows家族的「虛擬內存」;Linux的「交換空間」等。
- 系統級I/O是什麼?
- I/O (input/output) 實際上就是主存與外圍設備的之間的數據拷貝。input就是將某個外圍設備上的數據拷貝到主存,而output則是將主存上的數據拷貝到外圍設備。 全部全部語言的運行時系統都提供了一個I/O處理工具。
- 網絡編程要注意哪些?
-
- 我以爲要注意套接字的建立以及一些函數的調用,還要明白web服務器是怎麼一回事。
- 什麼事併發編程?
- 所謂併發編程是指在一臺處理器上「同時」處理多個任務。併發是在同一實體上的多個事件。多個事件在同一時刻發生。有基於進程的併發編程、基於I/O多路複用的併發編程、基於線程的併發編程。
- 你有什麼項目被加分,談談你的經驗
-
- 你有什麼項目被扣分,談談你的教訓
- 沒有檢查代碼
- 教訓:代碼必定要及時去驗收,越拖越糟糕,平時必定要積極主動去敲代碼,認真進行代碼驅動學習。
- 待及格管理制度的優缺點(進入過的同窗必寫)
- 待及格期間多發的博客列表:在待及格區的時候,是我學習效率最好的時候,每週兩篇博客,書上的知識消化的很好,我以爲這個應該繼續下去。
- 優缺點:優勢:對於想擺脫及格區的同窗至關有用,有必定的強制力。缺點:對於待及格區的同窗應當給予一些鼓勵,增長對於學習的興趣。
- 建議:對於待及格區的同窗,若是表現好,應當充分給予一些鼓勵。對從從待及格脫離的的我來講,脫離以後,學習主動性比待及格區的時候明顯有所降低,因此我以爲對於脫離幾個區的同窗,應該繼續執行待及格區的管理辦法,等到與及格區有必定分數差的時候,不在要求一週兩篇博客和每週代碼驗收。也就是說只要進了及格區,要想在脫離出去,必須比及格區高出必定的分數才能脫離。這樣的,不會出現,一出及格區就回到原來的狀態。
- 課程收穫與不足
- 本身的收穫(投入,效率,效果等)
- 首先我以爲最大的收穫,即是對整個計算機系統的結構層次有了一個很是深入的認識。
- 對於計算機底層的東西,從開始略知一二,到如今實現gdb函數調用的棧分析以及緩衝區溢出,收穫很大。
- 對於邊學習,邊寫博客的這種學習方法,有了更生的理解,就像此次的總結做業同樣,可以這種學習方法的好處。記錄了本身的整個學習過程,反映出本身的學習狀況。就像一面鏡子,看到曾經的本身。
- 做爲信息安全的學生來講,對於從此的專業課學習,有了必定的基礎。
- 本身須要改進的地方
- 就拿學習主動性來講,我在這方面作的不夠到位,每週老是在最後幾天開始一週的學習任務,這點應該批評本身,之後的學習中必定要改正。
- 代碼驅動學習作的不夠好,對於有些代碼理解的不是很透徹。
- 若是有結對,寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考建議
- 我以爲每週寫一篇博客會致使一個嚴重的問題,你們都是週日那一天開始每週的學習任務,應該避免這種現象,我以爲每軸博客應該增長。
- 給開學初的你和學弟學妹們的學習建議
- 若是從新學習這門課,怎麼作才能夠學的更好:
- 必定要好好把可能的看完,必定要先把書上的知識消化了,才能去作老師所給的實踐以及代碼。
- 學習應該是個天天積累的過程,不能由於週日是提交作的截止時間就在週日完任務似的把一週的學習任務應付了。我以爲這點很重要。
- 問卷調查
- 你平均每週投入到本課程多長時間?
- 每週的學習效率有提升嗎?
- 學習效果本身滿意嗎?
- 課程結束後會繼續一週至少一篇博客嗎?(若是能作到,畢業時我把你的博客給你集結成一本書送給你做記念)
- 你以爲這門課老師應該繼續作哪一件事情?
- 你以爲這門課老師應該中止作哪一件事情?
- 你以爲這門課老師應該開始作什麼新的事情?
- 其餘任意發揮
- 給出你的總結的連接和二維碼
總結連接網絡
二維碼: