操作系統原理與實踐

姚軍財 等

  • 出版商: 電子工業
  • 出版日期: 2026-01-01
  • 售價: $299
  • 語言: 簡體中文
  • 頁數: 232
  • ISBN: 7121521504
  • ISBN-13: 9787121521508
  • 相關分類: Operating-system
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

操作系統是管理和控制計算機硬件與軟件資源的計算機程序,是計算機系統的核心系統軟件。操作系統課程是計算機類專業的核心課程和必修課程,操作系統的原理、管理技術和調度策略是計算機應用系統開發人員必須掌握的專業知識。本書共分 6 章,系統地闡述了操作系統的基本概念、原理、技術、方法及功能,盡可能全面地展示操作系統的精髓和特性,力求做到概念清晰、結構合理、取舍得當、由淺入深、通俗易懂。第 1 章為操作系統概論,第 2~5 章分別介紹操作系統中處理器管理及並發進程、存儲管理、設備管理和文件管理等內容,第 6 章介紹 Windows 和 Linux 操作系統。為方便讀者學習,每章末尾均附有小結和習題。附錄部分是驗證和重現操作系統基本理論的實驗和課程設計項目,供讀者選用。本書面向應用型本科、職業本科學生,原理和理論敘述簡單明了,案例分析聯系實際,全書內容易於理解和掌握。本書可作為計算機類本科專業操作系統相關課程的教材或參考書,也可作為從事操作系統原理研究與系統開發的工程技術人員的參考書。

目錄大綱

第 1 章 操作系統概論 ···················································································.1
1.1 操作系統的概念 ················································································.1
1.1.1 操作系統的定義和目標 ··············································································.1
1.1.2 操作系統的形成和發展 ··············································································.2
1.1.3 操作系統的主要特性 ·················································································.5
1.2 操作系統的功能 ················································································.6
1.2.1 處理器管理 ·····························································································.6
1.2.2 存儲管理 ································································································.6
1.2.3 設備管理 ································································································.7
1.2.4 文件管理 ································································································.7
1.3 操作系統的接口 ················································································.8
1.3.1 操作接口和操作命令 ·················································································.8
1.3.2 程序接口與系統調用 ·················································································.9
1.4 操作系統的結構 ················································································.9
1.4.1 整體式結構 ····························································································.10
1.4.2 層次式結構 ····························································································.10
1.4.3 客戶/服務器結構 ·····················································································.10
1.4.4 虛擬機結構 ····························································································.11
1.5 流行操作系統簡介 ············································································.11
1.5.1 Windows 操作系統 ···················································································.11
1.5.2 UNIX 操作系統 ·······················································································.12
1.5.3 Linux 操作系統 ·······················································································.12
1.5.4 iOS 操作系統 ·························································································.13
1.5.5 Android 操作系統 ····················································································.14
本章小結 ·······························································································.15
習題 1 ··································································································.15
第 2 章 處理器管理及並發進程 ·····································································.16
2.1 多道程序設計 ··················································································.16
2.1.1 程序的順序執行 ······················································································.16
2.1.2 程序的並發執行 ······················································································.16
2.1.3 多道程序設計 ·························································································.17
2.1.4 並發程序執行的條件 ················································································.18
2.2 進程 ······························································································.19
2.2.1 進程的定義及其屬性 ················································································.19
2.2.2 進程的狀態及其轉換 ················································································.20
2.2.3 進程控制塊 ····························································································.21
2.2.4 進程隊列 ·······························································································.22
2.3 進程的控制 ·····················································································.23
2.3.1 操作系統內核 ·························································································.24
2.3.2 原語 ·····································································································.24
2.3.3 進程控制原語 ·························································································.24
2.4 進程調度 ························································································.26
2.4.1 進程調度簡介 ·························································································.26
2.4.2 進程調度的算法 ······················································································.26
2.5 線程及其實現 ··················································································.32
2.5.1 為什麼要引入多線程概念 ··········································································.32
2.5.2 多線程環境下的進程和線程 ·······································································.33
2.5.3 線程的優點及多線程的應用 ·······································································.34
2.5.4 多線程實現的三種方式 ·············································································.35
2.5.5 Java 環境下多線程設計舉例 ·······································································.35
2.6 並發進程的概念 ···············································································.37
2.6.1 相關進程及其關系 ···················································································.37
2.6.2 與時間有關的錯誤 ···················································································.38
2.6.3 臨界區概念及其管理要求 ··········································································.40
2.6.4 臨界區管理的嘗試 ···················································································.41
2.6.5 信號量與 PV 操作 ····················································································.44
2.7 進程的互斥和同步 ············································································.45
2.7.1 進程的互斥 ····························································································.45
2.7.2 進程的同步 ····························································································.48
2.7.3 進程互斥和同步的關系 ·············································································.59
2.8 管程 ······························································································.60
2.8.1 管程的概念 ····························································································.60
2.8.2 管程的特點及其組成 ················································································.60
2.8.3 Hansen 方法實現管程 ···············································································.62
2.8.4 Hansen 方法實現管程的實例 ······································································.62
2.9 進程通信 ························································································.65
2.9.1 消息傳遞概述 ·························································································.66
2.9.2 消息傳遞的兩種方式 ················································································.66
2.9.3 消息傳遞應用舉例 ···················································································.68
2.9.4 信號量與 PV 操作機制、管程和消息傳遞的關系 ·············································.69
2.10 死鎖 ····························································································.69
2.10.1 死鎖的定義與產生的原因·········································································.69
2.10.2 死鎖的防止 ··························································································.70
2.10.3 死鎖的避免與銀行家算法·········································································.72
2.10.4 死鎖的檢測與解除 ·················································································.76
本章小結 ·······························································································.77
習題 2 ··································································································.78
第 3 章 存儲管理 ·······················································································.80
3.1 存儲系統的基本概念 ·········································································.80
3.1.1 存儲器的分類 ·························································································.80
3.1.2 物理地址和邏輯地址 ················································································.80
3.1.3 地址重定位和存儲保護 ·············································································.81
3.2 存儲管理的基本概念 ·········································································.81
3.2.1 存儲管理的功能 ······················································································.81
3.2.2 內存擴充技術 ·························································································.82
3.2.3 存儲管理的分類 ······················································································.83
3.3 分區式存儲管理 ···············································································.84
3.3.1 單一連續區存儲管理 ················································································.84
3.3.2 固定分區存儲管理 ···················································································.85
3.3.3 可變分區存儲管理 ···················································································.87
3.4 簡單分頁式存儲管理 ·········································································.92
3.4.1 基本原理 ·······························································································.92
3.4.2 地址轉換 ·······························································································.93
3.4.3 相聯存儲器和快表 ···················································································.94
3.4.4 頁面的分配與回收 ···················································································.95
3.4.5 頁面的共享和保護 ···················································································.96
3.4.6 兩級和多級頁表 ······················································································.96
3.5 簡單分段式存儲管理 ·········································································.98
3.5.1 基本原理 ·······························································································.98
3.5.2 地址轉換 ·······························································································.99
3.5.3 段的共享和保護 ······················································································.99
3.5.4 優點和缺點 ··························································································.100
3.6 虛擬存儲管理 ················································································.101
3.7 請求分頁虛擬存儲管理 ····································································.102
3.7.1 基本原理 ·····························································································.102
3.7.2 內存頁面分配策略 ·················································································.103
3.7.3 頁面調入策略 ·······················································································.104
3.7.4 頁面置換算法 ·······················································································.104
3.7.5 缺頁中斷率分析 ····················································································.106
3.8 請求分段虛擬存儲管理 ····································································.108
3.8.1 基本原理 ·····························································································.108
3.8.2 地址轉換 ·····························································································.109
3.8.3 段的動態鏈接 ·······················································································.109
3.8.4 段的動態增長 ·······················································································.109
3.9 請求段頁式虛擬存儲管理 ·································································.110
本章小結 ·····························································································.110
習題 3 ································································································.110
第 4 章 設備管理 ······················································································.112
4.1 設備管理概述 ················································································.112
4.1.1 設備管理的任務與目標 ···········································································.112
4.1.2 設備管理的功能 ····················································································.112
4.1.3 外部設備的分類 ····················································································.113
4.2 設備 I/O 控制方式 ···········································································.115
4.2.1 程序查詢方式 ·······················································································.115
4.2.2 中斷方式 ·····························································································.115
4.2.3 DMA(直接內存存取)方式 ····································································.116
4.2.4 通道方式 ·····························································································.117
4.3 設備 I/O 軟件管理 ···········································································.119
4.3.1 I/O 軟件的目標 ·····················································································.119
4.3.2 I/O 中斷處理程序 ··················································································.120
4.3.3 設備驅動程序 ·······················································································.120
4.3.4 與設備無關的 I/O 軟件 ···········································································.121
4.3.5 用戶級的 I/O 軟件 ·················································································.121
4.4 緩沖技術 ······················································································.122
4.4.1 單緩沖技術 ··························································································.122
4.4.2 雙緩沖技術 ··························································································.123
4.4.3 多緩沖技術 ··························································································.123
4.4.4 緩沖池技術 ··························································································.123
4.5 外部設備分配、回收與啟動 ······························································.124
4.5.1 設備相對號和絕對號 ··············································································.124
4.5.2 外部設備的分配和回收 ···········································································.124
4.6 磁盤驅動調度 ················································································.125
4.6.1 磁盤結構 ·····························································································.126
4.6.2 磁盤調度 ·····························································································.127
4.6.3 磁盤移臂調度 ·······················································································.128
4.6.4 磁盤的旋轉調度 ····················································································.129
4.7 虛擬設備 ······················································································.131
4.7.1 脫機工作方式 ·······················································································.131
4.7.2 Spooling 技術 ·······················································································.132
4.7.3 虛擬設備 ·····························································································.133
本章小結 ·····························································································.133
習題 4 ································································································.134
第 5 章 文件管理 ······················································································.136
5.1 文件系統 ······················································································.136
5.1.1 文件和文件系統 ····················································································.136
5.1.2 文件的分類 ··························································································.137
5.1.3 文件系統的功能 ····················································································.138
5.2 文件目錄 ······················································································.138
5.2.1 目錄內容 ·····························································································.138
5.2.2 目錄結構 ·····························································································.139
5.3 文件結構與存取方法 ·······································································.141
5.3.1 文件的邏輯結構及存取方法 ·····································································.141
5.3.2 文件的物理結構及存取方法 ·····································································.142
5.3.3 存儲空間管理 ·······················································································.145
5.4 文件的使用 ···················································································.146
5.4.1 文件訪問 ·····························································································.146
5.4.2 文件控制 ·····························································································.148
5.4.3 目錄管理 ·····························································································.149
5.4.4 文件的共享 ··························································································.149
5.5 安全性和保護 ················································································.150
5.5.1 文件的訪問權限 ····················································································.150
5.5.2 文件的存取控制 ····················································································.150
5.5.3 文件的完整性 ·······················································································.151
本章小結 ·····························································································.152
習題 5 ································································································.152
第 6 章 Windows 和 Linux ··········································································.154
6.1 Windows 操作系統 ··········································································.154
6.1.1 Windows 操作系統的發展歷程和現狀 ·························································.154
6.1.2 Windows 2000/XP 簡介 ···········································································.155
6.1.3 Windows 操作系統總體架構 ·····································································.157
6.1.4 用戶模式和內核模式 ··············································································.160
6.1.5 Windows 操作系統和應用程序 ··································································.162
6.2 Linux 操作系統 ··············································································.166
6.2.1 Linux 簡介 ···························································································.166
6.2.2 Linux Shell ···························································································.166
6.2.3 vi 文本編輯器 ·······················································································.169
6.2.4 gcc 編譯器和 gdb 調試 ············································································.171
本章小結 ·····························································································.176
習題 6 ································································································.176
附錄 A 操作系統參考實驗項目 ····································································.177
第一部分 基本實驗部分 ········································································.177
實驗 1 進程管理 ···························································································.177
實驗 2 進程調度 ···························································································.177
實驗 3 存儲管理 ···························································································.179
實驗 4 獨占設備的靜態分配模擬 ······································································.179
實驗 5 文件管理 ···························································································.180
第二部分 創新實驗部分(Linux) ···························································.181
實驗 6 more 命令實現 ····················································································.181
實驗 7 文件列表命令實現 ···············································································.184
實驗 8 文件系統路徑命令實現 ·········································································.190
附錄 B 操作系統課程設計參考案例 ······························································.196
案例 1 多線程編程解決線程間同步和互斥問題 ···········································.196
案例 2 固定分區/可變分區存儲管理算法的模擬 ··········································.199
案例 3 頁面置換算法的模擬 ···································································.200
案例 4 銀行家算法的模擬 ······································································.206
案例 5 移臂調度算法的模擬 ···································································.210
案例 6 一個簡單文件管理器的實現 ··························································.215