深刻理解計算機系統——計算機系統漫遊

前言程序員

  入坑計算機原理嘛,漫遊慢慢遊shell

 

思惟導圖緩存

 

1.1 信息就是位+上下文安全

  什麼是位? 一個程序的生命週期是從一個源程序開始的,源程序實際上就是一個有值 0 和 1 組成的 位(比特 序列,8個位 爲一組稱爲字節 每一個字節表示程序中的某些文本字符網絡

  位<字節<字符 這樣子的組成關係吧
多線程

  系統中全部的信息——包括磁盤文件、內存中的程序、內存中存放的用戶數據以及網絡上傳的數據,都是由一串比特表示是的併發

  什麼是上下文?在不一樣的上下文中,一個一樣的字節 可能表示一個整數、浮點數、字符串或者是機器指令性能

 

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

  hello程序的生命週期是一個高級c 語言程序開始的,爲了看的懂,每一條C語句須要被其餘程序轉化爲一系列低級機器指令,即爲可執行目標文件操作系統

  

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

  1. 優化程序性能
  2.  理解連接時出現的錯誤 
  3. 避免安全漏洞

老是說要優化,若是瞭解計算機是如何編譯的,是否是可以從底層優化呢?帶着疑問閱讀後面章節

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

  這個是指咱們經常使用的運行命令的shell,hello程序被編譯成可執行目標文件,shell加載並運行 輸出hello程序它的消息 而後等待下一個命令行

1.4.1 系統的硬件組成

  這個我認爲就是 電腦的組成啊(有鼠標鍵盤 顯示器 主板 內存 CPU) 而後後面的章節會講詳細講到他們是怎麼密切配合工做的

  

1.4.3 hello 程序運行

  hello程序放在磁盤上

  程序加載,從磁盤複製到主存

  當處理器運行程序,從主存複製處處理器

  數據串「hello Word」開始時在磁盤上,複製到主存上,而後再從主存複製到顯示設備

哇 複製來複制去的 是否是額外的開銷,是否是能夠提高一下速度呢?(高速緩存)

 

1.5高速緩存相當重要

  

 

 結論:高速緩存存儲器存在的應用程序員可以利用高速緩存將程序的性能提升一個數量級

在處理器和一個較大較慢的設備(主存)之間插入一個更小更快的存儲設備(高速緩存)的想法已經成爲一個廣泛的觀念

 

1.6存儲設備造成層次結構

  這個圖告訴我,高速緩存器能夠加不少個,那就是有好多級啊 而後經過需求來提升哪一級的性能麼?

  

1.7 操做系統管理硬件

  這個是講 I/O 設備

  運行hello程序都沒有直接訪問鍵盤啊 鼠標顯示器這些的 它們依靠着操做系統提供服務

  操做系統有兩個基本功能 一是防止硬件失控的應用程序濫用 二是 嚮應用程序提供簡單一致的機制來控制複雜又一般大不相同的低級硬件設備

  

  

1.7.1 進程

  進程是操做系統對一個正在運行的程序的一種抽象

  

實現進程這個抽象概念須要低級硬件和操做系統軟件之間的緊密的合做

1.7.2 線程

  線程:一個進程能夠由多個稱爲線程的執行單元組成,每一個線程都運行在進程的上下文中,並共享一樣的代碼和全局數據。 多線程之間比多進程之間更容易共享數據,線程通常也比進程更高效。

1.7.3虛擬內存

  虛擬內存:虛擬內存是一個抽象概念,它爲每一個進程提供了一個假象,即每一個進程都在獨佔地使用主存。每一個進程看到的內存都是同樣的,稱爲虛擬地址空間。

  • 文件:文件就是文字序列。每一個I/O設備,均可以當作是文件。

1.8 系統之間利用網絡通訊

  網絡提供了計算機系統之間通訊的手段。從特殊系統的角度來看,網絡就是一種I/O設備。

1.9 重要主題

  • Amdahl定律:主要思想是當咱們對系統的某個部分加速時,其對系統總體性能的影響取決於該部分的重要性和加速程度。
  • 並行和併發:想要計算機作的更多、想要計算機作的更快是計算機整個發展歷史中的兩個持續動力。併發指一個同時具備多個活動的系統;並行指的是用併發來使一個系統運行的更快。
  • 抽象在計算機系統中有很大的重要性。
相關文章
相關標籤/搜索