標籤:影響 img 系統管理 iso 處理 mem com 失控 檔案中
第一章 電腦系統漫遊
主要內容
全面精鍊的概括了本書的內容,也就是“電腦系統概述”,包括:
1.解釋電腦系統中“資訊”的概念:就是二進位位;
2.解釋來源程式(以C來源程式為例)到可執行程式的過程:預先處理 → 編譯 → 彙編 → 連結
3.通過可執行程式被shell載入執行流程,講解了電腦的硬體組成: 匯流排、I/O裝置、主存、處理器。
4.進階緩衝的作用以及電腦存放裝置的體繫結構——金字塔階層。
5.解釋了作業系統、應用進程、電腦硬體三者之間的關係:作業系統管理硬體,為應用程式提供簡單一致的機制來控制複雜而又大相徑庭的硬體。
6.並發與並行、抽象。
1.1 資訊就是位+上下文
系統中所有的資訊——包括磁碟檔案、記憶體中的程式、記憶體中存放的使用者資料以及網路上傳送的資料,都是由一串位元表示的。區分不同資料對象的唯一方法是我們讀到這些資料對象時的上下文。
1.2 程式被其他程式翻譯成不同的格式
Linux中.c檔案編譯過程即是如此,gcc
命令的“ESc”對應組建檔案的“iso”,具體過程如下:
gcc -E main.c -o main.i //先行編譯gcc -S main.c -o main.s //產生彙編代碼gcc -c main.c -o main.o //-c為小寫,產生目標檔案gcc main.o -o main //產生可執行檔
1.3 瞭解編譯系統如何工作是大有益處的
- 最佳化程式效能
- 理解連結時出現的錯誤
- 避免安全性漏洞
1.4 處理器讀並解釋儲存在記憶體中的指令
- 系統的硬體組成
匯流排、I/O裝置、主存、處理器
- hello world
代碼和資料載入到主存後,處理器開始執行hello程式的main函數,將hello world\n
字串中的位元組從主存複製到寄存器檔案,在從寄存器檔案中複製到顯示裝置,最終顯示在螢幕上。
1.5 快取至關重要
cache memory(快取儲存空間)及調頁演算法對程式效能有極大影響。
1.6 存放裝置形成階層
金字塔結構
1.7 作業系統管理硬體
作業系統通過基本的抽象概念實現兩個準系統:
1.防止硬體被失控的硬體濫用
2.嚮應用程式提供簡單一致的機制來控制複雜而又通常大小不相同的低級硬體裝置。
- 檔案是對I/O裝置的抽象表示。
- 虛擬記憶體是對主存和磁碟I/O裝置的抽象表示。
- 進程是對處理器、主存和I/O裝置的抽象表示。
1.8 系統之間利用網路通訊
現代系統經常通過網路和其他系統串連到一起,網路可以視為一個I/O裝置。
- 使用telnet伺服器在遠程主機上運行hello程式
1.使用者在鍵盤上輸入hello
——用戶端向telnet伺服器發送字串“hello”伺服器向shell發送字串“hello”,shell運行hello程式並將輸出發送給telnet伺服器。
2.telnet伺服器向用戶端發送輸出的字串“hello world\n”
3.用戶端在顯示器上列印字串“hello world\n”
1.9 重要主題
- Amdahl定律
加速比S = 1/{1-(α)+α/k}
,α是系統某部分執行所需時間與系統執行某應用程式所需時間的比例,這部分效能提升比例為k。
- 並發和並行
並髮指同時間段:線程級並髮指多處理器或超執行緒(同時多線程)
並行指同一時刻:指令級並行指流水線或超標量處理器
- 電腦系統中抽象的重要性
同1.7。
2018-2019-1 20189215 《深入理解電腦系統》第一章