內容簡介
《全國計算機等級考試四級教程:操作係統原理(2018年版)》根據教育部考試中心新頒布的《全國計算機等級考試四級操作係統原理考試大綱(2018年版)》的要求編寫而成。主要內容包括:操作係統的基本概念、基本結構及運行機製,進程綫程模型,進程綫程同步機製,內存管理方案,文件係統的設計、實現及性能提升,I/O設備管理,死鎖的概念及解決方案。在
《全國計算機等級考試四級教程:操作係統原理(2018年版)》的最後附有新版的考試大綱、樣題及參考答案。
《全國計算機等級考試四級教程:操作係統原理(2018年版)》的編寫目標是使考生具備操作係統基礎知識,掌握操作係統中各部分功能的工作原理及關聯性,熟悉各種典型實現技術,從而能夠在應用開發中運用所掌握的知識。
《全國計算機等級考試四級教程:操作係統原理(2018年版)》可供報考四級操作係統原理的全國計算機等級考試考生使用,也可作為普通高等學校計算機操作係統課程的參考書。
內頁插圖
目錄
第1章 操作係統概論
1.1 操作係統的概念
1.1.1 計算機係統
1.1.2 操作係統的定義
1.1.3 操作係統的特徵
1.1.4 研究操作係統的觀點
1.1.5 操作係統的功能
1.2 操作係統的發展
1.2.1 手工操作
1.2.2 監控程序(早期批處理)
1.2.3 多道批處理
1.2.4 分時係統
1.2.5 UMIX通用操作係統
1.2.6 個人計算機操作係統
1.2.7 Android操作係統
1.3 操作係統分類
1.3.1 批處理操作係統
1.3.2 分時係統
1.3.3 實時操作係統
1.3.4 嵌入式操作係統
1.3.5 個人計算機操作係統
1.3.6 網絡操作係統
1.3.7 分布式操作係統
1.3.8 智能卡操作係統
1.4 操作係統結構
1.4.1 整體式結構
1.4.2 層次結構
1.4.3 微內核(客戶機/服務器)結構
第2章 操作係統運行機製
2.1 中央處理器(CPU)
2.1.1 CPU的均成與基本工作方式
2.1.2 特權指令和非特權指令
2.1.3 處理器的狀態
2.1.4 程序狀態字PSW
2.2 存儲體係
2.2.1 存儲器的層次結構
2.2.2 存儲保護
2.3 中斷與異常機製
2.3.1 中斷與異常的概念
2.3.2 中斷係統
2.3.3 中斷優先級與中斷屏蔽
2.4 係統調用
2.4.1 係統調用簡介
2.4.2 係統調用的處理過程
2.5 I/0技術
2.6 時鍾
第3章 進程綫程模型
3.1 多道程序設計模型
3.1.1 程序的順序執行
3.1.2 多道程序係統中程序執行環境的變化
3.1.3 程序的並發執行
3.2 進程模型
3.2.1 進程的概念
3.2.2 進程的狀態及其狀態轉換
3.2.3 進程控製塊
3.2.4 進程控製
3.3 綫程模型
3.3.1 綫程的引入
3.3.2 綫程的基本概念
3.3.3 綫程實現機製
3.3.4 Pthread綫程包
3.4 進程(綫程)調度
3.4.1 概述
3.4.2 調度算法設計原則
3.4.3 進程(綫程)調度算法
第4章 並發與同步
4.1 進程(綫程)間相互作用
4.2 進程互斥
4.3 信號量(Semap}lore)
4.4 經典的進程同步問題
4.5 管程
4.6 進程通信
4.6.1 共享內存
4.6.2 消息機製
第5章 內存管理
5.1 基本概念
5.1.1 存儲體係
5.1.2 存儲管理的任務
5.1.3 地址轉換
5.2 分區存儲管理方案
5.2.1 固定分區
5.2.2 T變分區
5.2.3 分區管理方案的優缺點
5.3 覆蓋技術與交換技術
5.3.1 覆蓋技術
5.3.2 交換技術
5.4 頁式存儲管理方案
5.4.1 基本思想
5.4.2 存儲空間的分配與迴收
5.4.3 地址轉換與快錶
5.5 虛擬存儲技術與虛擬頁式存儲管理方案的實現
5.5.1 虛擬存儲技術
5.5.2 虛擬頁式存儲管理
5.5.3 段式與段頁式存儲管理方案
第6章 文件管理
6.1 概述
6.1.1 文件和文件係統
6.1.2 文件分類
6.1.3 文件係統的功能
6.2 文件的結構
6.2.1 文件的邏輯結構
6.2.2 文件的物理結構
6.2.3 文件的存儲介質
6.2.4 文件的存取方式
6.3 文件目錄
6.3.1 文件目錄的組成
6.3.2 文件目錄結構
6.3.3 樹形目錄
6.3.4 路徑名
6.3.5 目錄操作
6.4 文件係統的實現
6.4.1 存儲空間的分配與迴收
6.4.2 實現文件係統的錶目
6.4.3 記錄的成組與分解
6.4.4 文件的操作
6.5 文件的保護和安全
6.5.1 文件的共享
6.5.2 文件的保護
6.5.3 文件的存取權限
6.5.4 文件的保密
6.6 文件係統的性能
6.7 WindOWS的FAT文件係統和UNIX文件係統
6.7.1 windows的FAT文件係統
6.7.2 UNIX文件係統
第7章 I/O設備管理
7.1 設備與設備分類
7.1.1 設備管理的重要性
7.1.2 設備管理的任務
7.1.3 設備的分類
7.2 I/O硬件組成
7.2.1 計算機I/0係統的結構
7.2.2 I/O設備數據傳送控製方式
7.3 I/0軟件的特點及結構
7.3.1 設備驅動程序
7.3.2 與設備無關的係統軟件
7.3.3 用戶空間的I/0軟件
7.4 典型的I/O技術
7.4.1 緩衝技術
7.4.2 設備分配技術
7.5 I/O性能問題及解決方案
小結
第8章 死鎖
8.1 死鎖基本概念
8.1.1 死鎖的概念
8.1.2 死鎖産生的原因
8.1.3 産生死鎖的必要條件
8.1.4 解決死鎖的方法
8.2 死鎖預防
8.2.1 破壞“互斥條件”
8.2.2 破壞“不可剝奪”條件
8.2.3 破壞“請求和保持”條件
8.2.4 破壞“循環等待”條件
8.3 死鎖避免
8.3.1 安全與不安全狀態
8.3.2 銀行傢算法
8.4 死鎖檢測與解除
8.4.1 死鎖檢測
8.4.2 死鎖解除
8.5 資源分配圖
8.5.1 死鎖的錶示——資源分配圖
8.5.2 死鎖判定法則
8.5.3 資源分配圖化簡法
附錄1 全國計算機等級考試四級操作係統原理考試大綱(2018年版)
附錄2 全國計算機等級考試四級操作係統原理樣捲及參考答案
參考文獻
前言/序言
本書是根據教育部考試中心最新製訂的《全國計算機等級考試四級操作係統原理考試大綱(2018年版)》和計算機專業基礎課程“操作係統原理”的教學要求進行編寫的。
本書主要內容包括:操作係統的基本概念、基本結構,操作係統運行機製,進程綫程模型,進程綫程同步機製,內存管理方案,文件係統的設計、實現及性能提升,I/O設備管理,死鎖的概念及解決方案。
操作係統課程是計算機科學與技術專業的專業基礎課,該課程不僅理論體係經典嚴謹,與實踐結閤緊密,同時又具有相關設計原理與技術發展迅速、課程知識深度和廣度強的特點。通過學習,要求考生能掌握操作係統的基本概念和主要特徵,深入理解操作係統運行機理,掌握並應用進程綫程模型、進程綫程調度算法,掌握並應用進程綫程同步機製,掌握虛擬存儲技術及虛擬頁式存儲管理方案的設計與實現,掌握並應用文件係統設計與實現,理解I/O設備管理及典型實現技術,理解死鎖的概念及解決方法,瞭解操作係統技術的發展演化。
本書由北京大學陳嚮群主編,參加編寫的人員包括陳嚮群(第1、2、6、8章)、嚮勇(第3、4章)、王雷(第5章)、馬洪兵(第7章)。清華大學史美林教授對書稿進行瞭審閱。
由於編寫時間倉促,編者水平有限,疏漏之處在所難免,望讀者提齣寶貴意見,以便修訂時改正。
一本關於計算機係統運作核心的深度探索 本書將帶領讀者深入理解計算機係統最基礎、最核心的組成部分——操作係統。它並非一本技術手冊,更不是針對某項特定考試的備考指南。相反,它旨在構建一個關於操作係統為何存在、如何工作、以及其在現代計算中所扮演關鍵角色的完整知識體係。通過對操作係統原理的細緻剖析,讀者將能跳齣“會用”的層麵,達到“理解”的高度,從而更深刻地認識計算機的本質,並為未來更高級的技術學習打下堅實基礎。 從何而來,為何重要:操作係統誕生的必然 在深入具體概念之前,我們首先要探討操作係統的起源和其存在的根本原因。計算機硬件本身是一堆冰冷的電子元件,它們無法直接理解人類的語言或執行復雜的任務。要讓這些硬件發揮作用,需要一個中間層,一個能夠協調硬件資源、管理軟件進程、並為用戶提供交互界麵的“總管”。這個總管,就是操作係統。 本書將追溯操作係統的曆史演進,從早期批處理係統到分時係統,再到現代多任務、多用戶、分布式操作係統。理解這個發展過程,有助於我們認識到操作係統設計中不斷湧現的挑戰和相應的解決方案。我們將探討,為什麼需要中斷?為什麼需要進程?為什麼需要內存管理?這些看似基礎的問題,背後都蘊含著操作係統設計者們智慧的結晶。 操作係統的大腦與神經:核心組件的運作機製 本書的核心內容將圍繞操作係統的幾個關鍵組成部分展開,並對其內部運作機製進行深入講解。 進程管理: 進程是程序在執行過程中的一個動態實體。操作係統如何創建、調度、終止進程?進程之間如何通信和同步?如何避免死鎖?這些是進程管理的關鍵問題。我們將詳細介紹進程的狀態(就緒、運行、阻塞等),進程控製塊(PCB)的作用,以及各種調度算法(先來先服務、短作業優先、時間片輪轉、優先級調度等)的原理和優缺點。同步機製,如信號量、互斥鎖、條件變量,也將被一一剖析,幫助讀者理解如何在並發環境下保證數據的一緻性和程序的正確性。死鎖的産生條件、檢測、預防和解除方法也將是重點討論的內容。 內存管理: 內存是程序運行的戰場,如何高效、安全地利用有限的內存資源是操作係統麵臨的另一大挑戰。本書將探討內存分配的基本原理,包括連續分配(固定分區、可變分區)和非連續分配(分頁、分段)。我們將詳細講解分頁係統如何將邏輯地址映射到物理地址,頁錶的作用,以及TLB(Translation Lookaside Buffer)如何加速地址轉換。分段係統如何根據程序的邏輯結構劃分段,以及段錶的作用。更重要的是,我們將深入探討虛擬內存技術,包括請求分頁、頁麵置換算法(FIFO、LRU、OPT等)的原理和實現,以及它們如何有效地擴展瞭程序的可用內存空間,使得程序的大小不再受限於物理內存的大小。內存保護機製,防止一個進程非法訪問另一個進程的內存空間,也將被充分討論。 文件係統: 文件是數據持久化的載體,文件係統則是操作係統管理這些數據的重要組成部分。本書將講解文件係統的基本概念,包括文件、目錄、文件結構、文件訪問方式等。我們將深入探討文件係統的實現,包括目錄結構的組織(單級、二級、樹形)、文件存儲空間管理(位圖、空閑鏈錶)、文件分配方法(連續分配、鏈式分配、索引分配)以及文件訪問控製權限。文件係統的一緻性、可靠性和性能優化也將是討論的重點。 設備管理: 計算機的輸入輸齣設備是用戶與計算機交互的橋梁,設備管理是操作係統保障硬件高效利用的關鍵。本書將講解I/O硬件的組成、I/O控製方式(程序控製I/O、中斷控製I/O、DMA)以及I/O軟件的層次結構。我們將深入探討設備驅動程序的作用,緩衝技術如何提高I/O效率,以及磁盤調度算法(FCFS、SSTF、SCAN、C-SCAN)如何優化磁盤訪問性能。 用戶接口與係統調用: 操作係統如何與用戶進行交互?用戶如何嚮操作係統發齣指令?本書將介紹用戶接口(命令行界麵、圖形用戶界麵)的基本原理,以及係統調用作為應用程序與操作係統內核進行通信的橋梁。我們將列舉一些常見的係統調用,並解釋它們在操作係統中的作用。 理論與實踐的融閤:理解操作係統的設計哲學 本書不僅會介紹各個組件的原理,更會探討它們之間的相互關係和整體設計思想。我們將討論: 並發與並行: 在多核CPU時代,理解並發(多個任務在同一時間段內交替執行)與並行(多個任務在同一時刻同時執行)的區彆至關重要。我們將探討操作係統如何通過進程和綫程實現並發,以及如何利用多核處理器實現並行。 資源管理策略: 操作係統本質上是一個資源管理器,它需要對CPU、內存、磁盤、I/O設備等進行有效的分配和調度。本書將深入分析不同的資源管理策略,以及它們如何影響係統的性能、吞吐量和響應時間。 安全性與可靠性: 保護係統免受惡意攻擊和意外故障是操作係統的重要職責。我們將探討操作係統的安全機製,如用戶認證、訪問控製、權限管理,以及提高係統可靠性的技術,如錯誤檢測與恢復、日誌記錄等。 現代操作係統的新趨勢: 隨著技術的不斷發展,操作係統也在不斷演進。我們將簡要探討一些現代操作係統的新特性和發展趨勢,如微內核、巨型內核、實時操作係統、分布式操作係統、嵌入式操作係統以及雲計算環境下的操作係統挑戰。 知識體係的構建:從宏觀到微觀的深入理解 本書的結構設計旨在幫助讀者建立一個清晰、完整的操作係統知識體係。我們不會拘泥於零散的技術點,而是力求從宏觀的角度齣發,引導讀者理解操作係統設計的整體邏輯和權衡。每個章節都將從基本概念入手,逐步深入到具體的實現細節和算法原理。通過大量的概念解釋、邏輯推導和案例分析,幫助讀者在理解知識點的同時,培養獨立分析和解決問題的能力。 本書的價值在於,它能夠讓讀者理解“為什麼”這些技術和機製需要被設計齣來,它們解決瞭什麼樣的問題,以及在不同的場景下,哪些設計是更優的選擇。這種深度的理解,遠比死記硬背某個考試要求的知識點更為寶貴,它將為讀者在未來麵對更復雜的計算問題時,提供堅實的理論基礎和清晰的思路。 超越考試,邁嚮精通:麵嚮未來的技術視野 本書的內容設計,不以任何特定的考試大綱為限,而是以操作係統原理的普適性和深度為目標。通過對本書的學習,讀者將能夠: 透徹理解計算機係統的工作原理: 能夠從根本上理解應用程序是如何在計算機上運行的,以及操作係統在其中扮演的關鍵角色。 為學習更高級技術打下堅實基礎: 無論是分布式係統、雲計算、嵌入式開發還是網絡安全,都離不開對操作係統的深刻理解。 提升解決復雜問題的能力: 能夠從更深層次分析係統性能瓶頸,定位故障原因,並提齣有效的解決方案。 培養獨立思考和學習的能力: 掌握瞭操作係統設計背後的原理,讀者將能觸類旁通,快速掌握新的技術和概念。 本書的目標是幫助每一位對計算機係統運作充滿好奇的讀者,揭開操作係統的神秘麵紗,領略其設計的精妙之處,並最終成為一名真正理解計算機本質的開發者或技術愛好者。它是一次關於計算機靈魂的探索之旅,一次對“計算”本質的深度思考。