作業系統之哲學原理

作業系統之哲學原理

作業系統之哲學原理,是一本對作業系統的核心內容進行了全面分析,包括作業系統的發展歷史和基本概念、進程與執行緒、記憶體管理、檔案系統、輸入與輸出、多核環境下的進程調度和作業系統設計的書。

基本信息

內容簡介

作業系統是計算機系統的核心繫統軟體,負責控制和管理整個系統,使之協調工作。本書對作業系統的核心內容進行了全面分析,包括作業系統的發展歷史和基本概念、進程與執行緒、記憶體管理、檔案系統、輸入與輸出、多核環境下的進程調度和作業系統設計。本書用大量生活實例,生動地解釋了作業系統中的主要難點和模糊點:鎖的實現、同步機制的發展軸線、純粹分段到段頁式的演變、多核環境下的進程同步與調度和作業系統設計等內容。本書重點突出、邏輯清晰、內容連貫,便於學生順利掌握作業系統的核心內容。

本書層次豐富、涵蓋作業系統的所有核心內容,適合作為國內高校計算機及相關專業本科生作業系統課程的教材,也是了解計算機作業系統原理不可多得的參考書。

作者簡介

鄒恆明,美國密西根大學博士。曾任職美國IBM、國家數據公司、朗訊、EMC公司8年多。在IBM和EMC分別從事AIX作業系統和Engenity存儲作業系統的研發,其中包括911中挽摩根斯坦利公司於既倒的、美國唯一的“英雄軟體”SRDF。2007年在中國金融期貨交易系統(股指期貨)專家測評中擔任軟體測評組長。2004年以來在上海交大研究、執教作業系統和算法設計等14門課程多年。

目錄

前言

第一篇 基礎原理篇

第1章 作業系統導論

引子:智者的挑戰

1.1 人造與神造

1.2 程式是如何運行的

1.3 什麼是作業系統

1.4 魔術與管理

1.5 用戶程式與作業系統

1.6 作業系統的範疇

1.7 為什麼學習作業系統

思考題

第2章操 作系統歷史

引子:不能承受之真

2.1 第一階段:狀態機作業系統(1940年以前)

2.2 第二階段:單一操作員單一控制端作業系統(20世紀40年代)

2.3 第三階段:批處理作業系統(20世紀50年代)

2.4 第四代:多道批處理作業系統(20世紀60年代)

2.5 第五代之一:分時作業系統(20世紀70年代)

2.6 第五代之二:實時作業系統

2.7 第六代:現代作業系統(1980年以後)

2.8 作業系統的演變過程

2.9 作業系統的未來發展趨勢

2.10 討論:作業系統虛擬化和虛擬化的作業系統

思考題

第3章 作業系統基本概念

引子:軟體師的尷尬

3.1 計算機硬體基本知識

3.2 抽象

3.3 核心態和用戶態

3.4 作業系統結構

3.5 進程、記憶體和檔案

3.6 系統調用

3.7 殼

思考題

第二篇 進程原理篇

第4章 進程

引子:牛頓的困惑

4.1 進程概論

4.2 進程模型

4.3 多道編程的好處

4.4 進程的產生與消失

4.5 進程的層次結構

4.6 進程的狀態

4.7 進程與地址空間

4.8 進程管理

4.9 進程的缺陷

思考題

第5章 進程調度

引子:恐怖分子的調度

5.1 進程調度的定義

5.2 進程調度的目標

5.3先來先服務調度算法

5.4時間片輪轉算法

5.5 短任務優先算法

5.6 優先權調度算法

5.7 混合調度算法

5.8 其他調度算法

5.9 實時調度算法

5.10 進程調度的過程

5.11 高級議題:調度異常之優先權倒掛

思考題

第6章 進程通信

引子:孤獨爆破手的自白

6.1 為什麼要通信

6.2 進程對白:管道、記名管道、套接字

6.3 進程電報:信號

6.4 進程旗語:信號量

6.5 進程擁抱:共享記憶體

6.6 信件傳送:訊息佇列

6.7 其他通信機制

思考題

第三篇 執行緒原理篇

第7章 執行緒

引子:亞歷山大的分身術

7.1 進程的分身術——執行緒

7.2 執行緒管理

7.3 執行緒模型的實現

7.4 現代作業系統的執行緒實現模型

7.5 多執行緒的關係

7.6 討論:從用戶態進入核心態

7.7 討論:執行緒的困惑——確定性與非確定性

思考題

第8章 執行緒同步

引子:滑鐵盧的同步

8.1 為什麼要同步

8.2 執行緒同步的目的

8.3 鎖的進化:金魚生存

8.4 睡覺與叫醒:生產者與消費者問題

8.5 信號量

8.6 鎖、睡覺與叫醒、信號量

8.7 管程

8.8 訊息傳遞

8.9 柵欄

思考題

第9章 死鎖應對之哲學原理

引子:迷霧籠罩的加拿大

9.1 為什麼會發生死鎖

9.2 死鎖的描述

9.3 死鎖的4個必要條件

9.4哲學家就餐問題

9.5 死鎖的應對

9.6 消除死鎖的必要條件

9.7 銀行家算法:冒險的代價

9.8 哲學家就餐問題之解

9.9 討論:死鎖的思考——綜合治理

9.10 討論:死鎖、活鎖與飢餓

思考題

第10章 鎖的實現

引子:高登繩結

10.1 以中斷啟用與禁止來實現鎖

10.2 以測試與設定指令來實現鎖

10.3 以非繁忙等待、中斷啟用與禁止來實現鎖

10.4 以最少繁忙等待、測試與設定來實現鎖

10.5 中斷禁止、測試與設定

思考題

第四篇 記憶體原理篇

第11章 基本記憶體管理

引子:讓別人無路可走

11.1 記憶體管理的環境

11.2 記憶體管理的目標

11.3 虛擬記憶體的概念

11.4 作業系統在記憶體中的位置

11.5 單道編程的記憶體管理

11.6 多道編程的記憶體管理

11.7 閒置空間管理

思考題

第12章 頁式記憶體管理

引子:虛擬概念的變現

12.1 基址極限管理模式的問題

12.2 分頁記憶體管理

12.3 分頁系統的優缺點

12.4 翻譯速度

12.5缺頁中斷處理

12.6 鎖住頁面

12.7 頁面尺寸

12.8 記憶體抖動

思考題

第13章 頁面更換算法

引子:黑洞理論的替換

13.1 頁面需要更換

13.2 頁面更換的目標

13.3 隨機更換算法

13.4 先進先出算法

13.5第二次機會算法

13.6 時鐘算法

13.7 最優更換算法

13.8NRU算法

13.9 LRU算法

13.10 工作集算法

13.11 工作集時鐘算法

13.12 頁面替換策略

思考題

第14章 段式記憶體管理

引子:否定之否定

14.1 分頁系統的缺點

14.2 分段管理系統

14.3 分段的優缺點

14.4 段頁式記憶體管理

14.5 段號是否占用定址字位

14.6 討論:否定之否定的嵌套——純粹分段與邏輯分段、分頁與段頁

思考題

第五篇 檔案原理篇

第15章 磁碟操作

引子:EMC——從不可能到可能

15.1 磁碟組織與管理

15.2 磁碟的結構

15.3 盤面的結構

15.4 磁碟驅動器的訪問速度

15.5 作業系統界面

15.6磁碟調度算法

15.7 討論:固態盤

15.8 討論:智慧型磁碟系統

思考題

第16章 檔案系統

引子:掩飾的極致

16.1 為什麼需要檔案系統

16.2 檔案系統

16.3 檔案系統的目標

16.4 檔案的基本知識

16.5 從用戶角度看檔案系統

16.6 地址獨立的實現機制:資料夾

16.7 檔案系統調用

16.8 記憶體映射的檔案訪問

思考題

第17 章檔案系統實現

引子:成功中的失敗

17.1 檔案系統的布局

17.2 檔案的實現

17.3 目錄實現:地址獨立的實現

17.4 閒置空間管理

思考題

第18章 檔案系統性能

引子:從不可能到可能

18.1 檔案授權管理

18.2 主動控制:訪問控制表

18.3 能力表

18.4 訪問控制的實施

18.5 其他檔案安全措施

18.6 檔案系統性能

18.7 檔案系統效率性能

18.8 檔案系統設計分析:日誌結構的檔案系統

18.9 海量數據檔案系統

思考題

第六篇 I/O原理篇

第19章 輸入輸出

引子:詹森的輸出——從沒有到爆發

19.1 輸入輸出

19.2 輸入輸出的目的

19.3 輸入輸出硬體

19.4 I/O軟體

19.5 I/O軟體分層

思考題

第七篇 多核原理篇

第20章 多核結構與記憶體

引子:不能承受之熱

20.1 以量取勝

20.2 多核基本概念

20.3 多核的記憶體結構

20.4 對稱多處理器計算機的啟動過程

20.5 多處理器之間的通信

20.6 SMP快取一致性

20.7 多處理器、超執行緒和多核的比較

思考題

第21章 多核環境下的進程同步與調度

引子:“多核”帝國的隕落

21.1 多核環境下作業系統的修正

21.2 多核環境下的進程同步與調度

21.3 多核進程同步

21.4 硬體原子操作

21.5 匯流排鎖

21.6 多核環境下的軟體同步原語

21.7 旋鎖

21.8 其他同步原語

21.9 多核環境下的進程調度

21.10 多核環境下的能耗管理

21.11 討論:多核系統的性能

思考題

第八篇 作業系統設計篇

第22章 作業系統設計之哲學原理

引子:殘缺心智的勝利

22.1 作業系統設計的追求

22.2 作業系統設計的第1條哲學原理:層次架構

22.3 作業系統設計的第2條哲學原理:沒有對錯

22.4 作業系統設計的第3條哲學原理:懶人哲學

22.5 作業系統設計的第4條哲學原理:讓困於人

22.6 作業系統設計的第5條哲學原理:留有餘地

22.7 作業系統設計的第6條哲學原理:子虛烏有——海市蜃樓之美

22.8 作業系統設計的第7條哲學原理:時空轉換——滄海桑田之變

22.9 作業系統設計的第8條哲學原理:策機分離與權利分離

22.10 作業系統設計的第9條哲學原理:簡單為美——求於至簡,歸於永恆

22.11 作業系統設計的第10條哲學原理:適可而止

思考題

結語:失望與希望

參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們