特色:
1.講述了作業系統演變的過程
2.沒有空洞講述概念,用圖表和c**講了作業系統的具體實現
什麼是作業系統:
自頂向下看,作業系統是擴充套件機器,向使用者提供抽象。
自底向上看,作業系統是資源管理者,給程序提供資源。
設計思想:
1.利用cpu高速和人類及i/o裝置之間的低速的差距,多個程序共享cpu,虛擬出多個邏輯上的cpu
為了充分利用cpu資源,提出了程序,使得當程序因為i/o裝置阻塞時,其他程序能夠繼續利用cpu。
人類操作計算機的速度遠遠慢於cpu計算的速度,所以利用分時執行程序,可以虛擬出多個程序併發的效果。
2.程式的空間區域性性
(1)有少部分**,經常被使用,抽象成庫,在執行時動態鏈結,以此來共享記憶體,節省空間
(2)快取記憶體,已經被訪問的**,其附近**接下來繼續被訪問的概率高,所以把他們調入記憶體,減少因為頁面排程浪費的時間。
(3)檔案存入磁碟上,優先存在相鄰位置,節省磁碟定址的時間
3.系統呼叫與中斷
產生系統呼叫和中斷都需要儲存使用者態堆疊(儲存重要的暫存器),然後新建核心態堆疊,執行相應的子程式後,再返回,這個過程將浪費很多時間。
所以為了減少系統呼叫和中斷的次數,有以下幾種機制:
(1)i/o緩衝區,緩衝區滿在進行讀寫操作,減少系統呼叫次數
(2)dma機制,先儲存io內容到記憶體,再通知cpu處理
4.對儲存介質劃分粒度,使得可以非連續管理
記憶體被劃分為頁,磁碟以扇區為基本單位,讀寫時以塊為基本單位
主要是虛擬記憶體技術:
(1)乙個物理頁可以對映到不同程序中,以此實現共享
(2)乙個檔案也可以對映到不同程序中,並且通過鏈結,同一檔案可以有不同檔名,以此共享
(3)非連續管理,可以增加靈活性,減少碎片
(4)基礎是頁表和inode節點,所以管理時候基礎是查詢演算法和排序演算法,演算法的選擇影響效率。
學習重點還是放在程序,檔案,位址空間三個抽象以及他們的實現上,和第一章中系統呼叫的實現。
《現代作業系統》筆記 1
作業系統兩種觀點 資源管理 硬體擴充套件 作業系統的核心 可處理的系統呼叫集 程序 執行程式的抽象,程序表用以儲存程序資訊 程序系統呼叫 程序建立 程序終止 每個程序 供使用者啟動的uid 程序建立場合 系統初始化 執行了正在執行程序所呼叫的程序建立系統呼叫 使用者請求建立乙個新程序 乙個批處理作業...
現代作業系統
只有認為等待時間非常短的情形下,才使用忙等待。用於忙等待的鎖,稱為自旋鎖 spin lock 在互斥時間很短而掛起等待的時間開銷很大時,可以採用活鎖 livelock,沒有出現死鎖,但現象上看好像死鎖發生了 輪詢 忙等待 可用於進入臨界區或訪問資源。接收者發起的分布式啟發演算法。分布式系統新增在其底...
讀書筆記 現代作業系統
ch1.1.作業系統中,抽象非常重要,乙個複雜的任務可以抽象成多個簡單的子任務,將複雜的硬體抽象成簡單的介面,書中針對向上層應用提供的介面做詳細的講解,但是對於使用者 終端使用者 介面不會做研究.2.作業系統中的資源有時間資源和空間資源,以及硬碟的空間資源,時間資源是時間復用的 如cpu的輪轉 空間...