Notes on CSAPP, 20180218

上一篇:

PyW:doge年第一更!CSAPP讀書筆記20180216zhuanlan.zhihu.com圖標

本次繼續第一章~

1.7 操作系統管理硬體

操作系統的兩個基本功能:

  1. 防止硬體被失控的應用程序濫用;
  2. 嚮應用程序提供簡單一致的機制來控制複雜而又通常大不相同的低級硬體設備。

操作系統通過進程、虛擬內存和文件這幾個基本的抽象概念來實現這幾個功能。

文件是對I/O設備的抽象表示,虛擬內存是對主存和和磁碟I/O設備的抽象表示,進程則是對處理器、主存和I/O設備的抽象表示。

進程是操作系統對一個正在運行的一個程序的一種抽象。內核不是一個獨立的進程。相反,它是處理全部進程所用代碼和數據結構的集合。上下文是操作系統保持跟蹤進程運行所需的所有狀態信息。

(我又來盜圖了~)

圖 1-12

一個進程實際可以由多個線程組成,每個線程都運行在進程的上下文中,並共享同樣的代碼和全局數據。多線程之間比多進程之間更容易共享數據。

虛擬內存為每個進程提供了一個獨佔使用主存的假象,每個進程看到的內存都是一致的,稱為虛擬地址空間。

CSAPP 中文版 P13

虛擬內存的基本思想是把一個進程的虛擬內存的內容存儲在磁碟上,然後用主存作為磁碟的高速緩存。

文件就是位元組序列。

1.8 系統之間利用網路通信

數據流可以經過網路到達另一台機器。

在一個遠程主機上運行hello程序:

  1. 用戶在鍵盤上輸入「hello」
  2. 客戶端向telnet伺服器發送字元串「hello」
  3. 伺服器向shell發送字元串「hello」,shell運行hello程序並將輸出發送給telnet伺服器
  4. telnet伺服器向客戶端發送字元串「hello world
  5. 客戶端在顯示器上列印「hello world
    」字元串

1.9 重要主題

Amdahl定律:當我們對系統的某個部分加速時,其對系統整體性能的影響取決於該部分的重要性和加速程度。

若系統執行某應用的需要的時間為 T_{old} 。假設系統某部分所需執行時間與該時間的比例為 alpha ,而該部分性能提升比例為 k 。即該部分初始所需時間為 alpha T_{old} ,現在所需時間為 (alpha T_{old})/k 。因此總的執行時間為:

T_{new} = (1-alpha)T_{old}+(alpha T_{old})/k=T_{old}[(1-alpha)+alpha/k]

由此,可以計算加速比 S=T_{old}/T_{new}S = frac{1}{(1-alpha)+alpha/k}

k
ightarrow infty ,即取系統的某一部分加速到一個點,在這個點上,這部分花費的時間可以忽略不計,故有: S = frac{1}{(1-alpha)}

該定律描述了改善任何過程的一般原則。

並發和並行:

  1. 線程級並發
  2. 指令級並行
  3. 單指令、多數據並行

抽象

  • 文件是對I/O設備的抽象
  • 虛擬內存是對程序存儲器的抽象
  • 進程是對一個正在運行的程序的抽象

~~第一章完結撒花*,°*:.☆( ̄▽ ̄)/$:*.°* 。~~

下一篇:

PyW:CSAPP 抄書筆記 20180223zhuanlan.zhihu.com圖標
推薦閱讀:

TAG:計算機科學 | 深入理解計算機系統書籍 | 讀書筆記 |