本書(shū)主要介紹操作系統(tǒng)的基本概念、結(jié)構(gòu)、基本功能和實(shí)現(xiàn)原理,以及當(dāng)前世界上最流行的兩大操作系統(tǒng)派系——UNIX/Linux和Windows的特點(diǎn)和實(shí)現(xiàn)技術(shù)。本書(shū)共分為三篇18章。第一篇分為6章,主要介紹操作系統(tǒng)的基本概念、三個(gè)基本操作系統(tǒng)類型(批處理、分時(shí)和實(shí)時(shí))和特點(diǎn)、操作系統(tǒng)基本功能(處理機(jī)管理、存儲(chǔ)器管理、文件管理和設(shè)備管理)和操作系統(tǒng)的進(jìn)一步發(fā)展;第二篇分為7章,以Linux操作系統(tǒng)為例,介紹類UNIX系統(tǒng)設(shè)計(jì)和各部分功能的具體實(shí)現(xiàn)技術(shù);第三篇分為5章,介紹以面向?qū)ο蠓椒ㄔO(shè)計(jì)的特例Windows 2000/XP操作系統(tǒng)的實(shí)現(xiàn)技術(shù)。本書(shū)注意吸收國(guó)內(nèi)外較新的操作系統(tǒng)理論和實(shí)現(xiàn)技術(shù),以反映現(xiàn)代操作系統(tǒng)發(fā)展的新動(dòng)向。以操作系統(tǒng)的基本原理與實(shí)現(xiàn)技術(shù)為主要內(nèi)容,同時(shí)注意到實(shí)際的應(yīng)用。本書(shū)可作為高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程,以及電子信息和自動(dòng)控制類專業(yè)的教材,也可以作為計(jì)算機(jī)工程和應(yīng)用人員的參考書(shū)。
翟巖龍,博士,北京理工大學(xué)計(jì)算機(jī)學(xué)院教師,至今承擔(dān)操作系統(tǒng)、操作系統(tǒng)課程設(shè)計(jì)兩門(mén)課程的講授工作,2018年開(kāi)始承擔(dān)英文操作系統(tǒng)、英文操作系統(tǒng)課程設(shè)計(jì)兩門(mén)課程講授工作2018年度北京理工大學(xué)教學(xué)基本功大賽全英文組二等獎(jiǎng)2019年度北京理工大學(xué)留學(xué)北理""我最喜愛(ài)的老師”榮譽(yù)稱號(hào)
第一篇 操作系統(tǒng)的基本原理
第1章 操作系統(tǒng)概論 (1)
1.1 操作系統(tǒng)的定義 (1)
1.2 操作系統(tǒng)的形成與發(fā)展 (2)
1.2.1 順序處理(手工操作階段) (2)
1.2.2 簡(jiǎn)單的批處理系統(tǒng) (3)
1.2.3 多道成批處理系統(tǒng) (5)
1.2.4 分時(shí)系統(tǒng) (7)
1.2.5 實(shí)時(shí)系統(tǒng) (9)
1.2.6 嵌入式系統(tǒng) (10)
1.3 操作系統(tǒng)的功能、服務(wù)和特性 (10)
1.4 操作系統(tǒng)的進(jìn)一步發(fā)展 (12)
1.5 用戶與操作系統(tǒng)的接口 (17)
1.5.1 用戶與操作系統(tǒng)的操作接口 (17)
1.5.2 系統(tǒng)調(diào)用接口 (19)
1.6 操作系統(tǒng)的運(yùn)行方式 (21)
1.7 操作系統(tǒng)的設(shè)計(jì)規(guī)范和結(jié)構(gòu)設(shè)計(jì) (22)
1.8 小結(jié) (24)
習(xí)題 (25)
第2章 進(jìn)程管理 (27)
2.1 進(jìn)程的引入和概念 (27)
2.2 進(jìn)程的描述 (30)
2.3 進(jìn)程的控制 (32)
2.4 處理機(jī)的調(diào)度 (35)
2.5 線程的引入 (40)
2.6 小結(jié) (42)
習(xí)題 (43)
第3章 進(jìn)程之間的并發(fā)控制和死鎖 (45)
3.1 并發(fā)進(jìn)程的特點(diǎn) (45)
3.2 進(jìn)程之間的低級(jí)通信 (46)
3.2.1 進(jìn)程之間的互斥 (46)
3.2.2 進(jìn)程之間的同步 (49)
3.2.3 信號(hào)量和P、V操作 (49)
3.2.4 利用信號(hào)量解決計(jì)算機(jī)中的經(jīng)典問(wèn)題 (52)
3.3 管程 (54)
3.4 進(jìn)程的高級(jí)通信 (57)
3.4.1 消息緩沖通信 (58)
3.4.2 其他通信機(jī)制 (60)
3.5 死鎖 (61)
3.5.1 死鎖的定義和死鎖產(chǎn)生的必要條件 (61)
3.5.2 解決死鎖的方法 (62)
3.6 小結(jié) (70)
習(xí)題 (71)
第4章 存儲(chǔ)器管理 (74)
4.1 概述 (74)
4.2 單用戶單道程序的存儲(chǔ)器分配 (76)
4.3 多用戶多道程序的存儲(chǔ)器分配——分區(qū)分配 (77)
4.3.1 固定式分區(qū) (77)
4.3.2 可變式分區(qū) (78)
4.3.3 分區(qū)管理的地址重定位和存儲(chǔ)器保護(hù) (81)
4.3.4 分區(qū)管理的優(yōu)缺點(diǎn) (81)
4.4 覆蓋與交換技術(shù) (82)
4.5 頁(yè)式存儲(chǔ)器管理 (83)
4.6 段式存儲(chǔ)器管理 (88)
4.7 虛擬存儲(chǔ)器管理 (90)
4.7.1 虛擬存儲(chǔ)器 (90)
4.7.2 頁(yè)式虛擬存儲(chǔ)器管理 (91)
4.7.3 頁(yè)式管理設(shè)計(jì)中應(yīng)考慮的問(wèn)題 (95)
4.7.4 段式虛擬存儲(chǔ)器管理 (98)
4.7.5 段頁(yè)式虛擬存儲(chǔ)器管理 (100)
4.8 小結(jié) (102)
習(xí)題 (102)
第5章 文件系統(tǒng) (105)
5.1 文件和文件系統(tǒng) (105)
5.2 文件目錄結(jié)構(gòu) (107)
5.3 文件的邏輯結(jié)構(gòu)和存取方法 (109)
5.4 文件的物理結(jié)構(gòu)和存儲(chǔ)介質(zhì) (111)
5.4.1 文件的物理結(jié)構(gòu) (111)
5.4.2 文件的存儲(chǔ)介質(zhì) (114)
5.5 文件記錄的組塊與分解 (116)
5.6 文件存儲(chǔ)器存儲(chǔ)空間的管理 (117)
5.7 文件的共享與保護(hù) (118)
5.8 文件的操作命令 (122)
5.9 文件系統(tǒng)的組織結(jié)構(gòu) (123)
5.10 存儲(chǔ)器映射文件 (124)
5.11 小結(jié) (125)
習(xí)題 (126)
第6章 設(shè)備管理 (128)
6.1 I/O硬件組成 (128)
6.1.1 I/O設(shè)備分類 (128)
6.1.2 設(shè)備控制器 (128)
6.1.3 I/O數(shù)據(jù)傳輸?shù)目刂品绞?(130)
6.1.4 通道 (132)
6.2 I/O軟件的組成 (134)
6.2.1 I/O軟件的設(shè)計(jì)目標(biāo) (134)
6.2.2 I/O軟件的功能 (135)
6.2.3 同步I/O和異步I/O (139)
6.3 磁盤(pán)管理 (140)
6.3.1 磁盤(pán)調(diào)度 (140)
6.3.2 磁盤(pán)的錯(cuò)誤處理 (143)
6.4 小結(jié) (143)
習(xí)題 (144)
第二篇 Linux操作系統(tǒng)
第7章 Linux進(jìn)程管理 (146)
7.1 Linux進(jìn)程的組成 (147)
7.1.1 進(jìn)程的定義 (147)
7.1.2 進(jìn)程的狀態(tài) (150)
7.2 Linux進(jìn)程鏈表 (150)
7.3 Linux進(jìn)程控制 (153)
7.3.1 進(jìn)程創(chuàng)建 (153)
7.3.2 進(jìn)程撤銷 (156)
7.4 Linux進(jìn)程切換 (156)
7.5 Linux進(jìn)程調(diào)度 (157)
7.6 內(nèi)核同步 (162)
7.7 小結(jié) (164)
習(xí)題 (165)
第8章 Linux存儲(chǔ)器管理 (166)
8.1 進(jìn)程地址空間的管理 (166)
8.1.1 Linux中的分段 (166)
8.1.2 虛擬內(nèi)存區(qū)域 (168)
8.1.3 虛擬內(nèi)存描述符 (171)
8.1.4 創(chuàng)建進(jìn)程的地址空間 (173)
8.1.5 堆的管理 (173)
8.2 物理內(nèi)存管理 (173)
8.3 slab管理 (179)
8.3.1 slab分配器 (179)
8.3.2 slab著色 (181)
8.4 高端內(nèi)存區(qū)管理 (182)
8.5 地址轉(zhuǎn)換 (183)
8.6 請(qǐng)求調(diào)頁(yè)與缺頁(yè)異常處理 (184)
8.7 盤(pán)交換區(qū)空間管理 (185)
8.8 小結(jié) (186)
習(xí)題 (187)
第9章 Linux文件系統(tǒng) (188)
9.1 ext2的磁盤(pán)涉及的數(shù)據(jù)結(jié)構(gòu) (188)
9.1.1 Linux文件卷的布局 (188)
9.1.2 超級(jí)塊 (189)
9.1.3 塊組描述符 (190)
9.1.4 文件目錄與索引節(jié)點(diǎn)結(jié)構(gòu) (191)
9.1.5 訪問(wèn)控制表ACL (194)
9.2 ext2的主存數(shù)據(jù)結(jié)構(gòu) (194)
9.2.1 超級(jí)塊和索引節(jié)點(diǎn)對(duì)象 (195)
9.2.2 位圖高速緩存 (196)
9.3 ext2磁盤(pán)空間管理 (197)
9.3.1 磁盤(pán)索引節(jié)點(diǎn)的管理 (198)
9.3.2 空閑磁盤(pán)塊的分配與回收 (199)
9.4 ext2提供的文件操作 (200)
9.5 ext3/ext4文件系統(tǒng) (201)
9.6 小結(jié) (202)
習(xí)題 (203)
第10章 Linux虛擬文件系統(tǒng) (204)
10.1 虛擬文件系統(tǒng)涉及的數(shù)據(jù)結(jié)構(gòu) (204)
10.1.1 超級(jí)塊對(duì)象 (205)
10.1.2 索引節(jié)點(diǎn)對(duì)象 (207)
10.1.3 文件對(duì)象 (210)
10.1.4 目錄項(xiàng)對(duì)象 (211)
10.1.5 與進(jìn)程打開(kāi)文件相關(guān)的數(shù)據(jù)結(jié)構(gòu) (213)
10.2 文件系統(tǒng)的注冊(cè)與安裝 (215)
10.2.1 文件系統(tǒng)注冊(cè) (215)
10.2.2 文件系統(tǒng)安裝 (216)
10.3 VFS系統(tǒng)調(diào)用的實(shí)現(xiàn) (218)
10.3.1 文件的打開(kāi)與關(guān)閉 (218)
10.3.2 文件的讀寫(xiě) (219)
10.4 小結(jié) (221)
習(xí)題 (221)
第11章 Linux I/O系統(tǒng) (222)
11.1 設(shè)備驅(qū)動(dòng)模型 (222)
11.1.1 sysfs文件系統(tǒng) (222)
11.1.2 設(shè)備驅(qū)動(dòng)模型的組件 (224)
11.2 設(shè)備文件 (226)
11.3 設(shè)備驅(qū)動(dòng)程序 (227)
11.3.1 塊設(shè)備驅(qū)動(dòng)程序 (228)
11.3.2 字符設(shè)備驅(qū)動(dòng)程序 (233)
11.4 高速緩存 (233)
11.4.1 頁(yè)高速緩存 (234)
11.4.2 把塊存放在頁(yè)高速緩存中 (236)
11.5 小結(jié) (237)
習(xí)題 (238)
第12章 中斷、異常和信號(hào)處理 (239)
12.1 中斷和異常處理的硬件基礎(chǔ) (239)
12.2 中斷和異常處理 (241)
12.2.1 硬件完成的處理 (241)
12.2.2 軟件處理 (242)
12.2.3 如何處理中斷 (242)
12.3 信號(hào)處理機(jī)制 (244)
12.3.1 信號(hào)概述 (244)
12.3.2 信號(hào)的發(fā)送與安裝 (245)
12.3.3 信號(hào)集 (246)
12.3.4 信號(hào)應(yīng)用示例 (247)
12.4 小結(jié) (248)
習(xí)題 (248)
第13章 Linux進(jìn)程之間的通信 (249)
13.1 管道通信 (249)
13.1.1 創(chuàng)建無(wú)名管道 (249)
13.1.2 管道涉及的數(shù)據(jù)結(jié)構(gòu) (250)
13.1.3 創(chuàng)建一個(gè)有名管道 (251)
13.2 Linux的進(jìn)程間通信 (252)
13.3 信號(hào)量機(jī)制 (254)
13.3.1 信號(hào)量機(jī)制使用的數(shù)據(jù)結(jié)構(gòu) (254)
13.3.2 信號(hào)量機(jī)制的系統(tǒng)調(diào)用 (256)
13.4 消息緩沖機(jī)制 (258)
13.4.1 消息緩沖使用的數(shù)據(jù)結(jié)構(gòu) (258)
13.4.2 消息緩沖的系統(tǒng)調(diào)用 (259)
13.5 共享內(nèi)存區(qū)機(jī)制 (261)
13.6 小結(jié) (264)
習(xí)題 (264)
第三篇 Windows操作系統(tǒng)研究
第14章 Windows操作系統(tǒng)模型 (265)
14.1 Windows的體系結(jié)構(gòu) (265)
14.1.1 用戶態(tài)進(jìn)程 (265)
14.1.2 子系統(tǒng)動(dòng)態(tài)鏈接庫(kù) (267)
14.1.3 核心態(tài)的系統(tǒng)組件 (267)
14.2 Windows操作系統(tǒng)的特點(diǎn) (269)
14.3 Windows的系統(tǒng)機(jī)制 (270)
14.3.1 陷阱處理程序 (270)
14.3.2 中斷調(diào)度 (271)
14.3.3 異常調(diào)度 (274)
14.3.4 系統(tǒng)服務(wù)調(diào)度 (275)
14.4 對(duì)象管理器 (276)
14.4.1 對(duì)象結(jié)構(gòu) (276)
14.4.2 管理對(duì)象 (277)
14.5 對(duì)象之間的同步 (280)
14.6 小結(jié) (284)
習(xí)題 (284)
第15章 Windows進(jìn)程和線程管理 (285)
15.1 Windows進(jìn)程和線程 (285)
15.1.1 進(jìn)程對(duì)象 (285)
15.1.2 線程對(duì)象 (286)
15.2 線程調(diào)度 (288)
15.3 對(duì)稱多處理機(jī)系統(tǒng)上的線程調(diào)度 (292)
15.3.1 幾個(gè)與調(diào)度有關(guān)的概念 (292)
15.3.2 線程調(diào)度程序的數(shù)據(jù)結(jié)構(gòu) (292)
15.3.3 多處理機(jī)的線程調(diào)度算法 (293)
15.3.4 空閑線程的調(diào)度 (295)
15.4 線程優(yōu)先級(jí)提升 (295)
15.5 Windows的線程同步 (297)
15.5.1 同步對(duì)象 (297)
15.5.2 同步對(duì)象的應(yīng)用示例 (297)
15.6 小結(jié) (301)
習(xí)題 (301)
第16章 Windows的存儲(chǔ)器管理 (303)
16.1 存儲(chǔ)器管理的基本概念 (303)
16.1.1 進(jìn)程地址空間的布局 (303)
16.1.2 進(jìn)程私有空間的分配 (304)
16.2 Windows地址轉(zhuǎn)換 (308)
16.2.1 地址轉(zhuǎn)換所涉及的數(shù)據(jù)結(jié)構(gòu) (308)
16.2.2 頁(yè)錯(cuò)誤處理 (312)
16.3 頁(yè)調(diào)度策略 (314)
16.4 小結(jié) (316)
習(xí)題 (317)
第17章 Windows的文件系統(tǒng) (318)
17.1 文件系統(tǒng)概述 (318)
17.2 主控文件表 (319)
17.2.1 主控文件表的結(jié)構(gòu) (319)
17.2.2 主控文件表的記錄結(jié)構(gòu) (320)
17.3 NTFS文件的引用和索引 (324)
17.4 Windows文件系統(tǒng)模型 (325)
17.4.1 文件系統(tǒng)分層模型 (325)
17.4.2 Windows文件系統(tǒng)驅(qū)動(dòng)程序的體系結(jié)構(gòu) (325)
17.5 NTFS可恢復(fù)性支持 (328)
17.5.1 文件系統(tǒng)優(yōu)化技術(shù) (328)
17.5.2 日志文件服務(wù)的實(shí)現(xiàn) (329)
17.5.3 NTFS壞簇恢復(fù)的支持 (333)
17.6 小結(jié) (334)
習(xí)題 (335)
第18章 Windows的設(shè)備管理 (336)
18.1 Windows的I/O系統(tǒng)結(jié)構(gòu) (336)
18.2 I/O管理系統(tǒng)所涉及的關(guān)鍵數(shù)據(jù)結(jié)構(gòu) (337)
18.3 Windows的I/O處理 (340)
18.3.1 對(duì)單層驅(qū)動(dòng)程序的I/O請(qǐng)求 (340)
18.3.2 設(shè)備I/O的中斷處理 (341)
18.3.3 I/O請(qǐng)求的完成處理 (342)
18.3.4 對(duì)多層驅(qū)動(dòng)程序的I/O請(qǐng)求 (343)
18.4 多處理I/O中的同步問(wèn)題 (348)
18.5 快速I(mǎi)/O (348)
18.6 即插即用PnP管理器 (349)
18.7 小結(jié) (350)
習(xí)題 (351)
參考文獻(xiàn) (352