期中總結

課本總結

 

第1章 計算機系統漫遊

 

信息

 

  • 位+上下文

 

系統中全部信息都是由一串位表示的,區分不一樣數據對象惟一方法是讀到這些數據對象時的上下文。緩存

 

程序被翻譯成不一樣格式

 

  • 編譯系統

 

預處理器、編譯器、彙編器、連接器ruby

 

存儲設備層次結構

 

  • 核心思想:緩存
  • 操做系統核心抽象:文件、虛存、進程、虛擬機

(二)第二章 信息的表示和處理

1. 字長:指明整數和指針數據的標稱大小。一個字長爲w的機器的虛擬地址範圍爲0~2^(w-1),程序最多訪問2^w個字節。學習

2. int 、char 4字節,單精度float 字節,雙精度double 8字節。spa

3.三種最重要的數字表示:無符號、補碼、浮點數。操作系統

4. 運算:整數運算、浮點運算。翻譯

5. 小端法和大端法指針

  • 小端法:最低有效字節在前面——「高對高,低對低」code

  • 大端法:最高有效字節在前面對象

6.布爾代數:進程

  • 與: &
  • 或: |
  • 非: ~
  • 異或:^

7. 邏輯運算符

  • 與:&&
  • 或:||
  • 非:!

8. 邏輯運算和位運算的區別

  • 只有當參數被限制爲0或1時,邏輯運算才與按位運算有相同的行爲。
  • 若是對第一個參數求值就能肯定表達式的結果,邏輯運算符就不會對後面的參數求值。

9. 移位運算

  • 邏輯右移:在左端補k個0,多用於無符號數移位運算
  • 算術右移:在左端補k個最高有效位的值,多用於有符號數移位運算。

10. 有符號數和無符號數的轉換

(1)有符號數→無符號數:

  • 非負數——保持不變
  • 負數——轉換成大正數

(2)無符號數→有符號數:

  • 小於2的w-1次方——保持不變
  • 大於2的w-1次方——轉換爲負數值

11.擴展

  • 零擴展:多用於無符號數轉換爲一個更大的數據類型,只需在開頭加上0便可。
  • 符號擴展:多用於補碼數字轉換,最高有效位是什麼,就添加什麼。

12.截斷數字

將一個w位的數截斷爲k位數字時,就會丟棄高w-k位。

  • 對於無符號數來講,就至關於 mod 2的k次冪
  • 對於有符號數來講,先按照無符號數截斷,而後再轉化爲有符號數

13.舍入

  • 向偶舍入:將數字向上或向下舍入,是的結果的最低有效數字爲偶數。能用於二進制小數。
  • 向零舍入:把整數向下舍入,負數向上舍入。
  • 向下舍入:正數和負數都向下舍入。
  • 正數和負數都向上舍入。

第三章 程序的機器級表示

1.操做數的三種類型

  • 當即數
  • 寄存器
  • 存儲器

2.尋址方式:

1.當即數尋址方式
2.寄存器尋址方式
3.存儲器尋址方式
  • 直接尋址方式
  • 寄存器間接尋址方式
  • 寄存器相對尋址方式
  • 基址變址尋址方式
  • 相對基址變址尋址方式

4.mov類指令:將源操做數的值複製到目的操做數中。源操做數指定的值是一個當即數,存儲在寄存器中或存儲器中。目的操做數制指定一個位置,要麼是一個寄存器,要麼是一個存儲器。

  • movb 傳送字節
  • movw 傳送字
  • movl 傳送雙字
  • movs 符號位擴展
  • movz 零擴展

push:把數據壓入棧中

pop:刪除數據

  • 後進先出
  • 棧指針指向棧頂元素
  • 棧朝低地址方向增加

5.棧幀:

爲單個過程分配的那部分棧稱爲棧幀。

最頂端的棧幀以兩個指針界定:

  • 寄存器%ebp-幀指針
  • 寄存器%esp-棧指針

1.call

CALL指令的效果是將返回地址入棧,並跳轉到被調用過程的起始處。

返回地址是還在程序中緊跟在call後面的那條指令的地址。

2.ret

ret指從棧中彈出地址,並跳轉到這個位置。

3.leave

這個指令使棧作好返回的準備

 

第4章 處理器體系結構

1.Y86指令集體系結構

具體使用結合練習

  • 異常
    halt指令、非法指令、訪問非法地址

    2.HCL硬件控制語言

  • 數字系統

    組合邏輯、存儲器元素、時針信號
  • 表達式

    AND:&& OR:|| NOT:!

    3.Y86的順序實現

    取指、譯碼、執行、訪存、寫回、更新PC

第六章 存儲器層次結構

1. 存儲器系統是一個具備不一樣容量、成本和訪問時間的存儲設備的層次結構。CPU寄存器保存着最經常使用的數據。小而快的高速緩存寄存器靠近CPU,下層存儲設備慢而大、便宜。

2. 基本存儲技術

  • SRAM存儲器
  • DRAM存儲器
  • ROM存儲器
  • 旋轉和固態的硬盤

3. 隨機訪問存貯器:分爲靜態(SRAM)和動態(DRAM)兩類,SRAM更快更貴,用來做爲高速緩存存儲器。DRAM用來做爲主存以及圖形系統的幀緩衝區。

  • 靜態RAM:將每一個位存儲在一個雙穩態的存儲器單元裏,只要有電就會永遠保持它的值。
  • 動態RAM:將每一個位存儲爲對一個電容的充電,當電容的電壓被幹擾後就存儲器單元就永遠不會恢復了。存儲器系統必須週期性地經過讀出,而後重寫來刷新存儲器的每一位。

4. 訪問主存:數據流經過稱爲總線的共享電子電路在處理器和DRAM主存之間來回。讀事物 從主存傳送數據到CPU,寫事物從CPU傳送數據到主存。

  • 總線是一組並行的導線,能攜帶地址、數據和控制信號。
  • 計算機系統配置:CPU芯片、I/O橋、組成主存的DRAM存儲器模塊
  • 系統總線鏈接CPU和I/O橋,存儲器總線鏈接I/O橋和主存

5. 磁盤構造:磁盤由盤片構成,每一個盤片有兩面或稱爲表面,盤片中央有一個可旋轉的主軸,它使盤片以固定的旋轉速率旋轉。

6. 磁盤容量=字節數/扇區 * 平均扇區數/磁道 * 磁道數/表面 * 表面數/盤片 * 盤片數/磁盤

7. 對扇區的訪問時間有三個主要部分:尋道時間、旋轉時間、傳送時間

  • 尋道時間:爲了讀取某個目標扇區的內容,傳動臂首先將讀寫頭定位到包含目標扇區的磁道上。移動傳動臂所需的時間稱爲尋道時間。
  • 旋轉時間:最大旋轉延遲Tmax rotation=1/RPM * 60secs/1min。平均旋轉時間Tavg rotation的一半。
  • 傳送時間:Tavg transfer=1/RPM * 1/(平均扇區數/磁道) * 60secs/1min
  • 估計總訪問時間=Tavg seek+Tavg rotation+Tavg transfer。由於尋道時間和旋轉延遲大體相等,因此將尋道時間乘以2可簡單估計磁盤訪問時間。

8. 局部性:時間局部性、空間局部性

  • 重複引用同一個變量的程序有良好的時間局部性。
  • 對於具備步長爲k的引用模式的程序,步長越小空間局部性越好。具備步長爲1的引用模式的程序有很好的空間局部性。在存儲器中以大步長跳來跳去的程序空間局部性不好。
  • 對於取指令而言,循環有好的時間和空間局部性。循環體越小,循環迭代次數越多,局部性越好。

本身的收穫

說實話這種學習模式仍是真的挺累的,若是每一科的老師都用婁老師這樣的學習模式,那咱們基本大三能夠不過了~!~不過好在就這一門課,雖然挺累可是也還在接受範圍以內,只是讓大三變得沒有想象中那麼輕鬆,還要感謝上學期JAVA那門課,讓這學期再次接觸到婁老師的這種風格教學不會特別難適應。轉眼學期了過半了,咱們也學習了第1、2、3、4、六章了。通過這幾章的學習也到達了課本名字的效果,深刻理解計算機系統、對計算機系統的結構層次也更加清楚明瞭。經過同窗和本身查閱書本上不少深奧,難懂的抽象的東西也能慢慢的消化掉

本身的不足

這種學習模式存在一種弊端,就是記得不牢固,常常出現學哪一章的時候,那一週對這一章知識有印象,能掌握一些,可是一旦學習下一章再也不回憶以前的東西時,過那麼幾周,以前的知識感受消失殆盡。我以爲本身還須要對以前的知識多一點鞏固和溫習。讓知識在腦海裏更加牢固一點。

相關文章
相關標籤/搜索