2017-2018-1 20179226 《深刻理解計算機系統》第1周學習總結

教材學習知識點總結

1.1 信息就是位+上下文

1.源程序實際上就是一個由值0和1組成的位序列,8個位爲1字節
2.程序是以字節序列的方式儲存在文件中。
3.只由ASCII字符構成的文件稱爲文本文件,其餘文件都稱爲二進制文件。數組

1.2 程序被其餘程序翻譯成不一樣的格式

1.編譯系統四個階段:預處理器、編譯器、彙編器、鏈接器。緩存

1.3 瞭解編譯系統如何工做是大有益處的

1.好處:優化程序性能,理解連接時出現的錯誤,避免安全漏洞。安全

1.4 處理器讀並解釋儲存在內存中的指令

1.系統的硬件:
1)總線:貫穿整個系統的一組電子管道,被設計成傳送定長的字節塊。
2)I/O設備:系統與外部世界的聯繫通道,如:鍵盤、鼠標、顯示器、磁盤等。每一個I/O設備都經過一個控制器適配器與I/O總線相連。
3)主存:是一個儲存設備,用來存放程序和程序處理的數據。從邏輯上來講,存儲器是一個線性的字節數組。
4)處理器(CPU):核心是一個大小爲一個的存儲設備,稱爲程序計數器(PC)。處理器不斷執行程序計數器指向的指令,再更新程序計數器,使其指向下一條指令。
2.CPU在指令的要求下可能會執行這些操做:加載、存儲、操做、跳轉。
3.利用直接存儲器存儲(DMA)技術,數據直接從磁盤到達主存。網絡

1.5 高速緩存相當重要

1.較大的存儲設備要比較小的運行的慢。
2.高速緩存存儲器(cache):做爲暫時的集結區域,存放處理器近期可能會須要的信息。多線程

1.6存儲設備造成層次

1.存儲器層次結構的主要思想是上一層的存儲器做爲低一層存儲器的高速緩存。併發

1.7 操做系統管理硬件

1.操做系統是應用程序和硬件之間插入的一層軟件。
2.操做系統有兩個基本功能:防止硬件被失控的應用程序濫用和提供簡單一致的機制控制複雜的低級硬件設備。
3.在一個系統上能夠同時運行多個進程,且是併發運行的。
4.經過處理器在進程間切換來實現多個進程切換,操做系統實現這種交錯執行的機制稱爲上下文切換
5.一個進程能夠由多個稱爲線程的執行單元組成。多線程比多進程更容易共享數據。
6.虛擬內存運做主要思想:把一個進程虛擬內存的內容存儲在磁盤上,而後用主存做爲磁盤的高速緩存。性能

1.8系統之間利用網絡通訊

1.9重要主題

1.系統是硬件和系統軟件相互交織的集合體。
2.Amdahl定律:要想顯著加速整個系統,必須提高全系統中至關大的部分的速度。
3.同時有多個程序執行的系統,致使了併發。
4.超線程:同時多線程,容許一個CPU執行多個控制流的技術。
5.多處理器從兩方面提升系統性能:首先減小了在執行多個任務時模擬併發的須要。其次使應用程序運行的更快。
6.處理器能夠同時執行多條指令的屬性稱爲指令級並行
7.一條指令產生多個能夠併發執行的操做,這種方式稱爲單指令、多數據,即SIMD並行。
8.文件是對I/O設備的抽象,虛擬內存是對程序存儲器的抽象,進程是對一個正在運行的程序的抽象。虛擬機是對整個計算機的抽象。學習

教材學習中的問題和解決過程

  • 問題1:ASCII碼中每一個文本行都是以一個看不見的換行符‘\n’來結束,其對應的整數值爲何是10而不是92和110?
  • 問題1解決方案:若是是'\n'字符單獨使用,能夠替換。 好比: myString[5]='\n'或者printf("%c", '\n')能夠替換爲myString[5]=10或者printf("%c", 10); 可是若是'\n'是一個字符串中的一部分,則不能替換。 例如:printf("hello\n")不能替換成printf("hello10");
相關文章
相關標籤/搜索