操作系統(tǒng)課程設(shè)計(jì) 第2版
定 價(jià):59 元
叢書名:高等院校計(jì)算機(jī)課程設(shè)計(jì)指導(dǎo)叢書
- 作者:朱敏,楊嘯,左劼
- 出版時(shí)間:2021/12/1
- ISBN:9787111695721
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書基于作者多年的操作系統(tǒng)課程教學(xué)實(shí)踐,在第1版讀者反饋的基礎(chǔ)上,充分考慮教學(xué)對(duì)象的差異性和教學(xué)計(jì)劃的多樣性,精心調(diào)整、優(yōu)化實(shí)踐內(nèi)容,旨在提供獨(dú)立于任何操作系統(tǒng)理論教材的系統(tǒng)化實(shí)踐參考。本書按照由淺入深、循序漸進(jìn)的原則安排內(nèi)容,首先介紹實(shí)踐相關(guān)的理論和技術(shù)知識(shí),接下來通過8個(gè)操作系統(tǒng)核心功能及特性的實(shí)驗(yàn)項(xiàng)目,幫助讀者理解操作系統(tǒng)關(guān)鍵原理,并通過剖析一個(gè)小型開源操作系統(tǒng)Nachos的源代碼,使讀者透徹理解操作系統(tǒng)的功能和實(shí)現(xiàn)機(jī)制。
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的重要組成部分,它能為上層程序及軟件提供運(yùn)行的環(huán)境和基礎(chǔ),并負(fù)責(zé)管理計(jì)算機(jī)軟硬件資源,合理控制計(jì)算機(jī)的工作流程。操作系統(tǒng)因其重要性已成為計(jì)算機(jī)及相關(guān)專業(yè)的核心課程,并被列為考研必考科目。
本書第1版自2015年出版以來,受到許多讀者的喜愛,很多讀者也對(duì)內(nèi)容提出了意見和建議,為此我們決定在第1版的基礎(chǔ)上進(jìn)行更新。我們根據(jù)操作系統(tǒng)領(lǐng)域的發(fā)展和課程教學(xué)的變化,更新、補(bǔ)充了相關(guān)內(nèi)容,對(duì)其他內(nèi)容進(jìn)行了修改和完善,主要涉及以下方面:首先,為幫助學(xué)生全面掌握操作系統(tǒng)的基本概念和原理,從而有效地完成實(shí)踐,補(bǔ)充了相關(guān)理論知識(shí);其次,采用了當(dāng)前主流的C語言編程軟件Dev C++和VS 2015,同時(shí)修改了上一版實(shí)驗(yàn)中的部分API函數(shù),替換了已被淘汰的 API 函數(shù)和軟件;后,根據(jù)近年來操作系統(tǒng)實(shí)驗(yàn)課程的教學(xué)情況,調(diào)整了部分實(shí)驗(yàn)內(nèi)容,使實(shí)驗(yàn)的難易程度更加合理。
在第2版中,我們結(jié)合多年操作系統(tǒng)課程的教學(xué)經(jīng)驗(yàn),充分考慮教學(xué)對(duì)象的差異性和教學(xué)計(jì)劃的多樣性,從實(shí)驗(yàn)內(nèi)容的深度和廣度上更有層次、更合理地安排教學(xué)內(nèi)容,從而為教授操作系統(tǒng)課程的教師提供系統(tǒng)化的實(shí)踐教學(xué)參考,為學(xué)習(xí)該課程的學(xué)生提供鍛煉自我、自主學(xué)習(xí)的平臺(tái)。終目標(biāo)是讓學(xué)生在學(xué)習(xí)操作系統(tǒng)理論的基礎(chǔ)上,通過實(shí)踐加深對(duì)操作系統(tǒng)理論,尤其是對(duì)操作系統(tǒng)核心內(nèi)容及經(jīng)典算法的理解。
本書特色
翔實(shí)的基礎(chǔ)理論。本書回顧了操作系統(tǒng)課程中的重要知識(shí)點(diǎn),并對(duì)實(shí)踐項(xiàng)目中需要用到的開發(fā)環(huán)境、編程語言、調(diào)試技術(shù)等進(jìn)行了介紹,為學(xué)生后續(xù)的實(shí)踐打下堅(jiān)實(shí)的基礎(chǔ)。
經(jīng)典的實(shí)驗(yàn)范例。我們精心挑選了能代表操作系統(tǒng)核心功能的8個(gè)實(shí)驗(yàn),并系統(tǒng)說明實(shí)驗(yàn)思路,提供規(guī)范的實(shí)驗(yàn)?zāi)0。同時(shí),以開源操作系統(tǒng)Nachos為例,深入淺出地講解可運(yùn)行的操作系統(tǒng)的實(shí)現(xiàn)方式。
系統(tǒng)的實(shí)踐教學(xué)思路。本書結(jié)合普通高校學(xué)生的操作系統(tǒng)課程學(xué)習(xí)需求,基于常用的Windows系統(tǒng)和Linux操作系統(tǒng),通過一系列實(shí)踐題目,使學(xué)生熟悉操作系統(tǒng),能夠動(dòng)手安裝、設(shè)置操作系統(tǒng),熟悉操作系統(tǒng)的核心功能,直至能獨(dú)立分析一個(gè)開源操作系統(tǒng),終透徹理解操作系統(tǒng)的功能和實(shí)現(xiàn)機(jī)制。
本書結(jié)構(gòu)
本書分為準(zhǔn)備知識(shí)、核心實(shí)驗(yàn)和Nachos源碼分析三個(gè)部分。每個(gè)部分的難度逐漸加大,既符合學(xué)生的學(xué)習(xí)習(xí)慣,又能滿足不同層次學(xué)生的需求。具體來說,本書的內(nèi)容框架如下:
部分 準(zhǔn)備知識(shí)。在這部分中,主要介紹操作系統(tǒng)的核心知識(shí)、虛擬機(jī)的安裝與使用、C語言的相關(guān)知識(shí)、shell編程、文件I/O、系統(tǒng)進(jìn)程編程、C程序調(diào)試技術(shù)等內(nèi)容,涵蓋理論課程中一般不會(huì)介紹但后續(xù)實(shí)踐中需要用到的重要知識(shí)及關(guān)鍵技術(shù),讓學(xué)生熟悉實(shí)驗(yàn)所需的編程環(huán)境、編程方法和工具等,為后面的實(shí)驗(yàn)工作奠定基礎(chǔ)。
第二部分 核心實(shí)驗(yàn)。這部分結(jié)合計(jì)算機(jī)操作系統(tǒng)的核心理論及算法,選擇了8個(gè)核心實(shí)驗(yàn):Linux編程、進(jìn)程控制、系統(tǒng)調(diào)用、作業(yè)調(diào)度、同步與互斥、銀行家算法、內(nèi)存管理和文件系統(tǒng)。每個(gè)實(shí)驗(yàn)中包括實(shí)驗(yàn)?zāi)康、?shí)驗(yàn)準(zhǔn)備、基本知識(shí)及原理、實(shí)驗(yàn)說明、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)總結(jié)、參考代碼、實(shí)驗(yàn)報(bào)告等板塊,并針對(duì)重點(diǎn)和難點(diǎn)進(jìn)行引導(dǎo)與提示,激勵(lì)學(xué)生在實(shí)踐中學(xué)習(xí)、在思考中進(jìn)步。
第三部分 Nachos 源碼分析。在前兩部分學(xué)習(xí)的基礎(chǔ)上,這一部分將通過分析操作系統(tǒng)Nachos的源代碼,使學(xué)生掌握系統(tǒng)調(diào)用的實(shí)現(xiàn)、同步與互斥機(jī)制的實(shí)現(xiàn)、線程調(diào)度,以及文件系統(tǒng)等操作系統(tǒng)的核心內(nèi)容。通過分析這個(gè)真實(shí)系統(tǒng)的源代碼,學(xué)生可以更加清楚地了解理論知識(shí)是如何在實(shí)際操作系統(tǒng)中應(yīng)用的。
讀者對(duì)象
本書是為高等院校計(jì)算機(jī)及相關(guān)專業(yè)的師生編寫的,可作為操作系統(tǒng)實(shí)踐課程的教材或參考書。此外,本書還可供操作系統(tǒng)愛好者自學(xué)使用。
本書配套資源
本書為授課教師和讀者提供以下資源:
PPT課件:包括核心實(shí)驗(yàn)部分課件,可用于課堂教學(xué)。
源代碼:包括實(shí)驗(yàn)源碼和修改后的Nachos系統(tǒng)源碼。
讀者可以登錄華章網(wǎng)站(http://www.hzbook.com)下載上述資料。
致謝
本書在編寫過程中得到了四川大學(xué)計(jì)算機(jī)學(xué)院的多位教師以及機(jī)械工業(yè)出版社各位編輯的大力支持,在此表示衷心的感謝。
在本書寫作過程中,四川大學(xué)視覺計(jì)算實(shí)驗(yàn)室的同學(xué)們做了富有成效的工作,感謝封澤希、楊寸月、符敏等人為本書第1版寫作所做的工作,以及劉璐、李季倬等人為第2版編寫做出的貢獻(xiàn)。趙輝老師在本書的編寫方面也提出了許多寶貴意見。在本書即將出版之際,謹(jǐn)向上述老師、同學(xué)表示誠(chéng)摯的謝意。
由于作者學(xué)識(shí)所限,書中難免有錯(cuò)漏之處,懇請(qǐng)讀者及同行批評(píng)指正。
作者
2021年8月
前言
部分 準(zhǔn)備知識(shí)
第1章 操作系統(tǒng)概論 2
1.1 操作系統(tǒng)的概念 2
1.2 操作系統(tǒng)的功能 2
1.2.1 處理器管理 2
1.2.2 存儲(chǔ)器管理 3
1.2.3 設(shè)備管理 4
1.2.4 文件管理 4
1.2.5 用戶接口管理 5
1.3 常見的操作系統(tǒng) 5
1.3.1 UNIX操作系統(tǒng) 5
1.3.2 Linux操作系統(tǒng) 6
1.3.3 Windows操作系統(tǒng) 7
1.4 本章小結(jié) 7
第2章 虛擬機(jī)的安裝與使用 8
2.1 虛擬機(jī)軟件VMware Workstation概述 8
2.2 搭建實(shí)踐環(huán)境 8
2.3 在Windows下安裝VMware 9
2.4 VMware下Ubuntu的安裝與配置 12
2.5 虛擬機(jī)Linux與宿主機(jī)Windows的文件訪問 17
2.5.1 安裝VMware Tools實(shí)現(xiàn)虛擬機(jī)與主機(jī)文件共享 17
2.5.2 在Ubuntu虛擬機(jī)下開啟Samba服務(wù) 24
2.6 本章小結(jié) 25
第3章 C語言基礎(chǔ) 26
3.1 C語言基本語法回顧 26
3.1.1 分析一個(gè)簡(jiǎn)單的C程序 26
3.1.2 數(shù)據(jù)類型 26
3.1.3 變量與常量 28
3.1.4 運(yùn)算符 29
3.1.5 函數(shù) 30
3.2 結(jié)構(gòu)體 32
3.2.1 結(jié)構(gòu)體類型的定義 32
3.2.2 結(jié)構(gòu)體變量的定義 34
3.2.3 結(jié)構(gòu)體變量的初始化 35
3.2.4 結(jié)構(gòu)體變量的引用 35
3.3 指針 37
3.3.1 指針基礎(chǔ) 37
3.3.2 指針變量的操作 37
3.3.3 指針與函數(shù) 39
3.3.4 數(shù)組與指針 39
3.4 C標(biāo)準(zhǔn)庫 40
3.5 本章小結(jié) 41
第4章 shell編程 42
4.1 vim程序編輯器 42
4.1.1 vim的基本概念 42
4.1.2 vim的工作模式 42
4.1.3 vim的使用實(shí)例 44
4.2 用shell進(jìn)行編程 46
4.2.1 shell的基本概念 46
4.2.2 shell腳本文件 46
4.2.3 變量及傳遞參數(shù) 47
4.2.4 數(shù)據(jù)類型 48
4.2.5 基本運(yùn)算符 50
4.2.6 echo和test命令 51
4.2.7 流程控制 52
4.3 Linux下shell的常見命令 53
4.4 本章小結(jié) 55
第5章 文件I/O 56
5.1 系統(tǒng)調(diào)用與C語言標(biāo)準(zhǔn)庫 56
5.2 Linux文件系統(tǒng)調(diào)用函數(shù) 57
5.3 C語言標(biāo)準(zhǔn)庫中的文件I/O函數(shù) 62
5.4 本章小結(jié) 66
第6章 系統(tǒng)進(jìn)程編程基礎(chǔ) 67
6.1 進(jìn)程的基本概念 67
6.1.1 進(jìn)程與進(jìn)程控制塊 67
6.1.2 進(jìn)程狀態(tài) 67
6.2 進(jìn)程與線程 68
6.2.1 線程的基本概念 68
6.2.2 線程與進(jìn)程的比較 69
6.2.3 線程分類與多線程模型 69
6.3 Linux進(jìn)程的創(chuàng)建與管理 70
6.3.1 fork函數(shù) 70
6.3.2 wait和waitpid函數(shù) 71
6.3.3 exec函數(shù) 72
6.4 Windows進(jìn)程創(chuàng)建與終止 72
6.4.1 CreateProcess函數(shù) 72
6.4.2 ExitProcess函數(shù) 73
6.5 本章小結(jié) 74
第7章 C語言調(diào)試技術(shù) 75
7.1 Linux與Windows下的C語言開發(fā)環(huán)境 75
7.2 Windows下基于Dev C++和VS 2015的調(diào)試 76
7.3 Linux下的GDB命令行調(diào)試 82
7.4 Linux下基于DDD的圖形界面調(diào)試 86
7.5 本章小結(jié) 92
第二部分 核心實(shí)驗(yàn)
第8章 Linux編程實(shí)驗(yàn) 94
8.1 實(shí)驗(yàn)?zāi)康? 94
8.2 實(shí)驗(yàn)準(zhǔn)備 94
8.3 基本知識(shí)及原理 94
8.4 實(shí)驗(yàn)說明 96
8.5 實(shí)驗(yàn)內(nèi)容 97
8.6 實(shí)驗(yàn)總結(jié) 97
8.7 參考代碼 98
8.8 實(shí)驗(yàn)報(bào)告 99
第9章 進(jìn)程控制實(shí)驗(yàn) 102
9.1 實(shí)驗(yàn)?zāi)康? 102
9.2 實(shí)驗(yàn)準(zhǔn)備 102
9.3 基本知識(shí)及原理 102
9.4 實(shí)驗(yàn)說明 103
9.5 實(shí)驗(yàn)內(nèi)容 105
9.6 實(shí)驗(yàn)總結(jié) 105
9.7 參考代碼 106
9.8 實(shí)驗(yàn)報(bào)告 110
第10章 系統(tǒng)調(diào)用實(shí)驗(yàn) 113
10.1 實(shí)驗(yàn)?zāi)康? 113
10.2 實(shí)驗(yàn)準(zhǔn)備 113
10.3 基本知識(shí)及原理 113
10.4 實(shí)驗(yàn)說明 116
10.5 實(shí)驗(yàn)內(nèi)容 119
10.6 參考代碼 119
10.7 實(shí)驗(yàn)報(bào)告 122
第11章 作業(yè)調(diào)度實(shí)驗(yàn) 126
11.1 實(shí)驗(yàn)?zāi)康? 126
11.2 實(shí)驗(yàn)準(zhǔn)備 126
11.3 基本知識(shí)及原理 126
11.4 實(shí)驗(yàn)說明 128
11.5 實(shí)驗(yàn)內(nèi)容 129
11.6 實(shí)驗(yàn)總結(jié) 130
11.7 參考代碼 130
11.8 實(shí)驗(yàn)報(bào)告 134
第12章 同步與互斥實(shí)驗(yàn) 137
12.1 實(shí)驗(yàn)?zāi)康? 137
12.2 實(shí)驗(yàn)準(zhǔn)備 137
12.3 基本知識(shí)及原理 137
12.4 實(shí)驗(yàn)說明 139
12.5 實(shí)驗(yàn)內(nèi)容 143
12.6 實(shí)驗(yàn)總結(jié) 144
12.7 參考代碼 144
12.8 實(shí)驗(yàn)報(bào)告 152
第13章 銀行家算法實(shí)驗(yàn) 156
13.1 實(shí)驗(yàn)?zāi)康? 156
13.2 實(shí)驗(yàn)準(zhǔn)備 156
13.3 基本知識(shí)及原理 156
13.4 實(shí)驗(yàn)說明 158
13.5 實(shí)驗(yàn)內(nèi)容 159
13.6 實(shí)驗(yàn)總結(jié) 159
13.7 參考代碼 160
13.8 實(shí)驗(yàn)報(bào)告 167
第14章 內(nèi)存管理實(shí)驗(yàn) 169
14.1 實(shí)驗(yàn)?zāi)康? 169
14.2 實(shí)驗(yàn)準(zhǔn)備 169
14.3 基本知識(shí)及原理 169
14.4 實(shí)驗(yàn)說明 173
14.5 實(shí)驗(yàn)內(nèi)容 176
14.6 實(shí)驗(yàn)總結(jié) 176
14.7 參考代碼 177
14.8 實(shí)驗(yàn)報(bào)告 181
第15章 文件系統(tǒng)實(shí)驗(yàn) 185<