圖書簡介
作業系統作為核心的系統軟體,負責控制和管理整個系統的資源並組織用戶高效協調地使用這些資源。本書是在《作業系統基礎(第3版)》的基礎上修訂而成的。與第3版相比,第4版在結構、內容上都做了調整、修改和增刪。
本書闡述了作業系統的基本工作原理以及設計方法,力求將現代作業系統的典型特徵,即多執行緒、微核心、分散式系統、客戶/伺服器模型與經典的作業系統原理緊密結合。
全書共13章,主要介紹了作業系統的基本概念和運行環境、進程和執行緒、處理器調度與死鎖、存儲管理、設備管理、檔案管理、分散式系統,最後介紹了Windows和Linux作業系統的結構和實現。每章後面都有本章小結及難度適宜的習題,便於讀者自學或鞏固所學的知識。
本書內容豐富,結構清晰,突出基礎,注重套用,強調理論與實踐的結合,適合作為高等院校計算機專業或相關專業作業系統課程的教材,也可以作為從事作業系統設計與系統核心開發的技術人員的參考書籍。
目錄
第1章引論
1.1計算機系統概述
1.1.1計算機的硬體組織
1.1.2軟體的層次與虛擬機的概念
1.2作業系統的形成和發展
1.2.1什麼是作業系統
1.2.2作業系統的形成和發展
1.3多道程式設計的概念
1.3.1多道程式設計的引入
1.3.2多道程式設計的概念
1.4作業系統的功能和特性
1.4.1作業系統的功能
1.4.2作業系統的特性
1.5作業系統的類型
1.5.1多道批處理作業系統
1.5.2分時作業系統
1.5.3實時系統
1.5.4網路作業系統
1.5.5多處理作業系統
1.5.6分散式作業系統
1.5.7嵌入式作業系統
1.5.8多核系統
1.6作業系統的設計
1.6.1設計的目標和原則
1.6.2作業系統設計
1.7作業系統的結構
1.7.1模組接口法
1.7.2層次結構設計法
1.7.3微核心結構
1.7.4微核心的實現
本章小結
習題
第2章作業系統的運行環境
2.1硬體環境
2.1.1中央處理器
2.1.2主存儲器
2.1.3緩衝技術
2.1.4中斷技術
2.1.5時鐘、時鐘佇列
2.2作業系統與其他系統軟體的關係
2.2.1作業、作業步、進程的關係
2.2.2重定位的概念
2.2.3絕對裝入程式與相對裝入程式
2.3作業系統與用戶的接口
2.3.1作業控制語言
2.3.2在線上作業控制
2.4固件——微程式設計概念*
2.4.1微程式設計的概念
2.4.2微程式設計與作業系統
本章小結
習題
第3章進程管理
3.1進程的概念
3.1.1進程的引入
3.1.2進程的定義
3.2進程的狀態
3.2.1進程的狀態及其變化
3.2.2進程的掛起和解除掛起的狀態
3.3進程的描述和管理
3.3.1進程的描述
3.3.2進程管理
3.4進程控制
3.4.1進程的控制原語
3.4.2作業系統與進程控制的執行
3.5UNIX SVR4的進程管理*
本章小結
習題
第4章多執行緒
4.1執行緒的概念
4.1.1執行緒的引入
4.1.2執行緒的概念
4.2執行緒的狀態和執行緒管理
4.2.1執行緒的狀態
4.2.2執行緒的描述
4.2.3執行緒的管理
4.3多執行緒的實現
4.3.1概述
4.3.2用戶級執行緒
4.3.3核心級執行緒
4.3.4KLT和ULT結合的方法
4.3.5執行緒庫
4.4Solaris作業系統的執行緒機制*
4.4.1Solaris的多執行緒結構
4.4.2輕質進程
4.4.3核心執行緒
4.4.4用戶執行緒
4.4.5執行緒的執行
4.4.6核心中斷執行緒
本章小結
習題
第5章互斥與同步
5.1概述
5.2臨界區
5.2.1臨界區的提出
5.2.2臨界區的互斥要求
5.3互斥
5.3.1互斥的軟體解決方法
5.3.2互斥的硬體解決方法
5.4信號量
5.4.1信號量
5.4.2信號量及同步原語
5.4.3同步原語的不可分割性
5.4.4用信號量實現進程間互斥
5.4.5生產者和消費者問題
5.4.6讀者和寫者問題
5.5管程
5.5.1管程的定義
5.5.2用管程實現同步
5.6進程間的通信
5.6.1訊息通信
5.6.2間接通信模式
5.6.3其他訊息通信模式
5.7UNIX的進程同步和通信
5.7.1管道
5.7.2訊息
5.7.3共享主存
5.7.4信號量
5.7.5信號或軟中斷
本章小結
習題
第6章死鎖
6.1死鎖問題的提出
6.2死鎖的必要條件
6.2.1資源的概念
6.2.2死鎖的必要條件
6.3死鎖的預防
6.3.1預先靜態分配法
6.3.2有序資源使用法
6.4死鎖的避免和銀行家算法
6.4.1單資源的銀行家算法
6.4.2多資源的銀行家算法
6.5死鎖檢測與恢復
6.5.1死鎖的檢測
6.5.2死鎖的恢復
6.6資源分配圖
6.6.1資源分配圖
6.6.2利用資源分配圖進行死鎖分析
6.6.3資源分配圖化簡法
本章小結
習題
第7章實存儲器管理技術
7.1引言
7.1.1主存儲器的物理組織
7.1.2主存儲器的管理功能
7.2固定分區
7.3可變分區多道管理技術
7.3.1可變分區存儲管理的概念
7.3.2存儲分配算法
7.3.3存儲器的壓縮和程式浮動
7.3.4可變分區多道管理的地址變換
7.4簡單分頁
7.5簡單分段
7.6核心主存管理
7.6.1核心主存管理概述
7.6.2二次冪空閒表分配器
7.6.3夥伴系統
本章小結
習題
第8章虛擬存儲管理
8.1虛擬存儲系統的基本概念
8.2請求頁式存儲管理
8.2.1地址轉換
8.2.2硬體支持
8.3請求分段存儲管理
8.3.1請求分段概述
8.3.2分段的實現
8.4段頁式存儲管理
8.4.1請求段頁式存儲管理的基本概念
8.4.2請求段頁式存儲管理的地址轉換
8.4.3段頁式存儲管理算法
8.4.4請求段頁式存儲管理的優缺點
8.5頁面置換算法
8.5.1頁面訪問失效及處理
8.5.2頁面置換算法
8.5.3交換區
8.6頁框分配策略
8.6.1物理主存
8.6.2空閒頁面鍊表
8.6.3頁架分配中的有關策略
8.6.4分頁環境中程式的行為特性
8.7UNIX SVR4的存儲管理
本章小結
習題
第9章設備管理
9.1概述
9.2I/O子系統的層次模型
9.2.1I/O子系統的設計目標
9.2.2I/O子系統的層次模型
9.3I/O硬體組成
9.3.1設備和設備控制器
9.3.2直接存儲器訪問
9.3.3通道方式與輸入輸出處理器
9.4設備驅動程式
9.4.1設備和驅動程式分類
9.4.2設備開關表
9.4.3設備驅動程式框架
9.5I/O子系統
9.5.1設備命名
9.5.2輸入輸出緩衝區
9.5.3I/O子系統獨立於設備的工作
9.6流*
9.6.1流的概念
9.6.2訊息和佇列
9.6.3流I/O
9.7磁碟調度
9.7.1磁碟的硬體特性
9.7.2磁碟調度算法
9.8虛擬設備和SPOOLing系統
9.9RAID技術*
本章小結
習題
第10章檔案系統
10.1檔案
10.1.1檔案的命名
10.1.2檔案的結構
10.1.3檔案的類型
10.1.4檔案的屬性
10.1.5檔案的操作
10.2目錄
10.2.1目錄內容
10.2.2檔案目錄的結構
10.2.3路徑名
10.2.4符號連結
10.2.5目錄操作
10.3檔案系統的實現
10.3.1檔案空間的分配和管理
10.3.2UNIX系統的目錄實現
10.3.3磁碟空間管理
10.3.4檔案系統在主存的數據結構和打開操作
10.3.5檔案系統掛載
10.4安全性和保護
10.4.1用戶確認技術
10.4.2保護機制——數據安全性
10.4.3其他
10.4.4檔案的轉儲和恢復
本章小結
習題
第11章分散式系統*
11.1概述
11.1.1什麼是分散式系統
11.1.2分散式系統的優點
11.2進程通信
11.2.1進程通信的概念
11.2.2TCP/IP通信協定
11.2.3分散式環境的客戶/伺服器模式
11.2.4分散式進程通信
11.3分散式檔案系統
11.3.1分散式檔案系統概述
11.3.2分散式檔案系統的組成
11.3.3分散式檔案系統的體系結構
11.3.4客戶機高速快取和一致性
11.4分散式系統中的互斥與死鎖
11.4.1邏輯鍾和邏輯時
11.4.2時間戳算法(Lamport算法)
11.4.3令牌傳送算法
11.5進程遷移
11.5.1進程遷移的原因
11.5.2進程遷移機制
本章小結
習題
第12章Windows NT作業系統*
12.1Windows NT作業系統概述
12.2Windows NT的系統模型
12.3Windows NT的基元成分
12.3.1對象
12.3.2進程
12.3.3執行緒
12.3.4進程管理程式
12.4Windows NT的執行緒狀態及調度
12.4.1執行緒狀態轉換
12.4.2核心調度程式
12.4.3進程和執行緒的優先權
12.5Windows NT的同步對象
12.5.1執行緒同步概述
12.5.2用Windows NT對象同步
12.6虛擬存儲管理
12.6.1進程的虛擬地址空間
12.6.2虛擬分頁
12.6.3頁面調度策略和工作集
12.6.4頁架狀態和頁架數據結構
12.6.5主存映射檔案和視圖
12.7輸入輸出系統
12.7.1輸入輸出系統的結構
12.7.2統一的驅動程式模型
12.7.3異步I/O操作和I/O請求處理過程
12.7.4映像檔案I/O
12.8Windows NT的內裝網路
12.8.1Windows NT內裝網路的特色
12.8.2Windows NT內裝網路的體系結構
12.9對象管理程式
12.10本地過程調用
12.11Windows NT的安全性
12.11.1Windows NT的安全性
12.11.2存取令牌和安全描述體
本章小結
習題
第13章Linux作業系統*
13.1Linux作業系統概述
13.1.1Linux的誕生和發展
13.1.2Linux的版本
13.1.3Linux核心的組成
13.1.4Linux的特點
13.2Linux進程管理
13.2.1Linux進程概述
13.2.2Linux進程的狀態
13.2.3Linux進程的標識
13.2.4Linux進程的調度
13.2.5Linux進程的創建和撤銷
13.3Linux的存儲管理
13.3.1Linux的虛擬存儲空間
13.3.2Linux的地址映射
13.3.3Linux物理記憶體的管理
13.3.4頁面分配算法
13.3.5缺頁中斷
13.3.6快取和刷新機制
13.4Linux檔案管理
13.4.1Linux虛擬檔案系統概述
13.4.2VFS超級塊
13.4.3VFS索引節點對象
13.4.4目錄項對象
13.4.5檔案對象
13.5EXT檔案系統
13.5.1EXT2/EXT3/EXT4檔案系統的特點
13.5.2EXT2檔案系統的磁碟結構
13.5.3EXT2超級塊
13.5.4組描述符
13.5.5塊點陣圖
13.5.6EXT2檔案系統inode結構
13.5.7Linux檔案系統的控制
13.6Linux設備管理
13.6.1Linux設備管理概述
13.6.2Linux I/O子系統的設計
13.6.3Linux的字元設備管理
13.6.4Linux的塊設備管理
13.6.5緩衝區與buffer結構
本章小結
習題
參考文獻