ch1.
1. 作業系統中, 抽象非常重要, 乙個複雜的任務可以抽象成多個簡單的子任務, 將複雜的硬體抽象成簡單的介面, 書中針對向上層應用提供的介面做詳細的講解, 但是對於使用者(終端使用者)介面不會做研究.
2. 作業系統中的資源有時間資源和空間資源, 以及硬碟的空間資源, 時間資源是時間復用的(如cpu的輪轉), 空間資源是空間復用的(如記憶體的分配)
3. 處理器的體系結構常見的有兩種: 流水線, 超標量體系結構(superscalar), 流水線不用多說了. 超標量體系機構一般有多個執行單元, cpu同時獲取的多個指令, 並進行解碼之後, 會被放入holding buffer, 當執行單元空閒時, 會檢視holding buffer, 若其中有自己能夠執行的指令, 則將其移出holding buffer並執行. 可以看出, 超標量體系結構執行指令時是亂序的, 必須由硬體保證指令執行後與順序執行的結果是一致的(意即不能因為亂序執行而出現不符合預期的結果).
4. 通過陷阱(trap)可以從user model 切換到kernel model, 除了觸發模式切換(進行系統呼叫)之外, 陷阱大部分時候沒什麼價值.
5. 暫存器由軟體實現控制, 快取由硬體控制. (這一部分是結合網上一些資料)快取和記憶體都會被分塊, 快取被分成固定大小的快取塊(快取線, cache line), 主要是分為標記和資料兩部分, 其中標記部分對映為資料在記憶體中的位址. 當cpu需要某塊記憶體中的資料時, 會先查詢快取, 先查詢快取中的標記, 如果找到, 則稱為命中, 然後使用對應的資料內容, 若未找到, 則會去主存中查詢.(這部分書中講的不細緻, 可能因為是和硬體比較密切)
6. 作業系統提供兩個最主要的功能: 向上層提供抽象的介面, 管理系統資源。
7. 執行於使用者模式(user mode)的程式如果需要進行系統呼叫(system call),則會產生乙個trap從而將控制權交給作業系統,作業系統通過指定的引數進行指定的系統呼叫,之後再將控制權轉交給程式。
《現代作業系統》讀書筆記 執行緒
執行緒是最小的任務排程單位,是依賴於程序而存在的迷你程序。和程序一樣,執行緒也有三種狀態 執行 就緒 阻塞。我認為,執行緒是程序中任務真正的執行者,而程序提供了記憶體空間 cpu 程式計數器以及暫存器讓執行緒使用。對於程序來說,多個程序之間無法分享記憶體空間,對於一些應用而言,共享記憶體空間的能力是...
現代作業系統 什麼是作業系統?(讀書筆記)
1 抽象是管理複雜性的乙個關鍵。好的抽象可以把乙個幾乎不可能管理的任務劃分為兩個可管理的部分。第一部分是有關抽象的定義和實現,第二部分是用這些抽象解決問題。畫外 上家公司的老闆前一段時間還發了一條類似朋友圈。講抽象和解決問題的。2 程式設計師直接和作業系統及其抽象打交道 終端使用者和使用者介面提供的...
《現代作業系統》讀書筆記 死鎖篇
標籤 讀書筆記 校招 作業系統 面試 可剝奪資源 是指雖然資源佔有者程序需要使用該資源,但另乙個程序可以強行把該資源從佔有者程序處剝奪來歸自己使用。不可剝奪資源 是指除佔有者程序不再需要使用該資源而主動釋放資源,其他程序不得在佔有者程序使用資源過程中強行剝奪。如果乙個程序集合中的每個程序都在等待只能...