定 價:59 元
叢書名:高等院校計算機(jī)課程設(shè)計指導(dǎo)叢書
- 作者:朱敏,楊嘯,左劼
- 出版時間:2021/12/1
- ISBN:9787111695721
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書基于作者多年的操作系統(tǒng)課程教學(xué)實踐,在第1版讀者反饋的基礎(chǔ)上,充分考慮教學(xué)對象的差異性和教學(xué)計劃的多樣性,精心調(diào)整、優(yōu)化實踐內(nèi)容,旨在提供獨立于任何操作系統(tǒng)理論教材的系統(tǒng)化實踐參考。本書按照由淺入深、循序漸進(jìn)的原則安排內(nèi)容,首先介紹實踐相關(guān)的理論和技術(shù)知識,接下來通過8個操作系統(tǒng)核心功能及特性的實驗項目,幫助讀者理解操作系統(tǒng)關(guān)鍵原理,并通過剖析一個小型開源操作系統(tǒng)Nachos的源代碼,使讀者透徹理解操作系統(tǒng)的功能和實現(xiàn)機(jī)制。
操作系統(tǒng)是計算機(jī)系統(tǒng)的重要組成部分,它能為上層程序及軟件提供運行的環(huán)境和基礎(chǔ),并負(fù)責(zé)管理計算機(jī)軟硬件資源,合理控制計算機(jī)的工作流程。操作系統(tǒng)因其重要性已成為計算機(jī)及相關(guān)專業(yè)的核心課程,并被列為考研必考科目。
本書第1版自2015年出版以來,受到許多讀者的喜愛,很多讀者也對內(nèi)容提出了意見和建議,為此我們決定在第1版的基礎(chǔ)上進(jìn)行更新。我們根據(jù)操作系統(tǒng)領(lǐng)域的發(fā)展和課程教學(xué)的變化,更新、補充了相關(guān)內(nèi)容,對其他內(nèi)容進(jìn)行了修改和完善,主要涉及以下方面:首先,為幫助學(xué)生全面掌握操作系統(tǒng)的基本概念和原理,從而有效地完成實踐,補充了相關(guān)理論知識;其次,采用了當(dāng)前主流的C語言編程軟件Dev C++和VS 2015,同時修改了上一版實驗中的部分API函數(shù),替換了已被淘汰的 API 函數(shù)和軟件;后,根據(jù)近年來操作系統(tǒng)實驗課程的教學(xué)情況,調(diào)整了部分實驗內(nèi)容,使實驗的難易程度更加合理。
在第2版中,我們結(jié)合多年操作系統(tǒng)課程的教學(xué)經(jīng)驗,充分考慮教學(xué)對象的差異性和教學(xué)計劃的多樣性,從實驗內(nèi)容的深度和廣度上更有層次、更合理地安排教學(xué)內(nèi)容,從而為教授操作系統(tǒng)課程的教師提供系統(tǒng)化的實踐教學(xué)參考,為學(xué)習(xí)該課程的學(xué)生提供鍛煉自我、自主學(xué)習(xí)的平臺。終目標(biāo)是讓學(xué)生在學(xué)習(xí)操作系統(tǒng)理論的基礎(chǔ)上,通過實踐加深對操作系統(tǒng)理論,尤其是對操作系統(tǒng)核心內(nèi)容及經(jīng)典算法的理解。
本書特色
翔實的基礎(chǔ)理論。本書回顧了操作系統(tǒng)課程中的重要知識點,并對實踐項目中需要用到的開發(fā)環(huán)境、編程語言、調(diào)試技術(shù)等進(jìn)行了介紹,為學(xué)生后續(xù)的實踐打下堅實的基礎(chǔ)。
經(jīng)典的實驗范例。我們精心挑選了能代表操作系統(tǒng)核心功能的8個實驗,并系統(tǒng)說明實驗思路,提供規(guī)范的實驗?zāi)0濉M瑫r,以開源操作系統(tǒng)Nachos為例,深入淺出地講解可運行的操作系統(tǒng)的實現(xiàn)方式。
系統(tǒng)的實踐教學(xué)思路。本書結(jié)合普通高校學(xué)生的操作系統(tǒng)課程學(xué)習(xí)需求,基于常用的Windows系統(tǒng)和Linux操作系統(tǒng),通過一系列實踐題目,使學(xué)生熟悉操作系統(tǒng),能夠動手安裝、設(shè)置操作系統(tǒng),熟悉操作系統(tǒng)的核心功能,直至能獨立分析一個開源操作系統(tǒng),終透徹理解操作系統(tǒng)的功能和實現(xiàn)機(jī)制。
本書結(jié)構(gòu)
本書分為準(zhǔn)備知識、核心實驗和Nachos源碼分析三個部分。每個部分的難度逐漸加大,既符合學(xué)生的學(xué)習(xí)習(xí)慣,又能滿足不同層次學(xué)生的需求。具體來說,本書的內(nèi)容框架如下:
部分 準(zhǔn)備知識。在這部分中,主要介紹操作系統(tǒng)的核心知識、虛擬機(jī)的安裝與使用、C語言的相關(guān)知識、shell編程、文件I/O、系統(tǒng)進(jìn)程編程、C程序調(diào)試技術(shù)等內(nèi)容,涵蓋理論課程中一般不會介紹但后續(xù)實踐中需要用到的重要知識及關(guān)鍵技術(shù),讓學(xué)生熟悉實驗所需的編程環(huán)境、編程方法和工具等,為后面的實驗工作奠定基礎(chǔ)。
第二部分 核心實驗。這部分結(jié)合計算機(jī)操作系統(tǒng)的核心理論及算法,選擇了8個核心實驗:Linux編程、進(jìn)程控制、系統(tǒng)調(diào)用、作業(yè)調(diào)度、同步與互斥、銀行家算法、內(nèi)存管理和文件系統(tǒng)。每個實驗中包括實驗?zāi)康、實驗?zhǔn)備、基本知識及原理、實驗說明、實驗內(nèi)容、實驗總結(jié)、參考代碼、實驗報告等板塊,并針對重點和難點進(jìn)行引導(dǎo)與提示,激勵學(xué)生在實踐中學(xué)習(xí)、在思考中進(jìn)步。
第三部分 Nachos 源碼分析。在前兩部分學(xué)習(xí)的基礎(chǔ)上,這一部分將通過分析操作系統(tǒng)Nachos的源代碼,使學(xué)生掌握系統(tǒng)調(diào)用的實現(xiàn)、同步與互斥機(jī)制的實現(xiàn)、線程調(diào)度,以及文件系統(tǒng)等操作系統(tǒng)的核心內(nèi)容。通過分析這個真實系統(tǒng)的源代碼,學(xué)生可以更加清楚地了解理論知識是如何在實際操作系統(tǒng)中應(yīng)用的。
讀者對象
本書是為高等院校計算機(jī)及相關(guān)專業(yè)的師生編寫的,可作為操作系統(tǒng)實踐課程的教材或參考書。此外,本書還可供操作系統(tǒng)愛好者自學(xué)使用。
本書配套資源
本書為授課教師和讀者提供以下資源:
PPT課件:包括核心實驗部分課件,可用于課堂教學(xué)。
源代碼:包括實驗源碼和修改后的Nachos系統(tǒng)源碼。
讀者可以登錄華章網(wǎng)站(http://www.hzbook.com)下載上述資料。
致謝
本書在編寫過程中得到了四川大學(xué)計算機(jī)學(xué)院的多位教師以及機(jī)械工業(yè)出版社各位編輯的大力支持,在此表示衷心的感謝。
在本書寫作過程中,四川大學(xué)視覺計算實驗室的同學(xué)們做了富有成效的工作,感謝封澤希、楊寸月、符敏等人為本書第1版寫作所做的工作,以及劉璐、李季倬等人為第2版編寫做出的貢獻(xiàn)。趙輝老師在本書的編寫方面也提出了許多寶貴意見。在本書即將出版之際,謹(jǐn)向上述老師、同學(xué)表示誠摯的謝意。
由于作者學(xué)識所限,書中難免有錯漏之處,懇請讀者及同行批評指正。
作者
2021年8月
前言
部分 準(zhǔn)備知識
第1章 操作系統(tǒng)概論 2
1.1 操作系統(tǒng)的概念 2
1.2 操作系統(tǒng)的功能 2
1.2.1 處理器管理 2
1.2.2 存儲器管理 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 搭建實踐環(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實現(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 分析一個簡單的C程序 26
3.1.2 數(shù)據(jù)類型 26
3.1.3 變量與常量 28
3.1.4 運算符 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的使用實例 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 基本運算符 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
第二部分 核心實驗
第8章 Linux編程實驗 94
8.1 實驗?zāi)康? 94
8.2 實驗準(zhǔn)備 94
8.3 基本知識及原理 94
8.4 實驗說明 96
8.5 實驗內(nèi)容 97
8.6 實驗總結(jié) 97
8.7 參考代碼 98
8.8 實驗報告 99
第9章 進(jìn)程控制實驗 102
9.1 實驗?zāi)康? 102
9.2 實驗準(zhǔn)備 102
9.3 基本知識及原理 102
9.4 實驗說明 103
9.5 實驗內(nèi)容 105
9.6 實驗總結(jié) 105
9.7 參考代碼 106
9.8 實驗報告 110
第10章 系統(tǒng)調(diào)用實驗 113
10.1 實驗?zāi)康? 113
10.2 實驗準(zhǔn)備 113
10.3 基本知識及原理 113
10.4 實驗說明 116
10.5 實驗內(nèi)容 119
10.6 參考代碼 119
10.7 實驗報告 122
第11章 作業(yè)調(diào)度實驗 126
11.1 實驗?zāi)康? 126
11.2 實驗準(zhǔn)備 126
11.3 基本知識及原理 126
11.4 實驗說明 128
11.5 實驗內(nèi)容 129
11.6 實驗總結(jié) 130
11.7 參考代碼 130
11.8 實驗報告 134
第12章 同步與互斥實驗 137
12.1 實驗?zāi)康? 137
12.2 實驗準(zhǔn)備 137
12.3 基本知識及原理 137
12.4 實驗說明 139
12.5 實驗內(nèi)容 143
12.6 實驗總結(jié) 144
12.7 參考代碼 144
12.8 實驗報告 152
第13章 銀行家算法實驗 156
13.1 實驗?zāi)康? 156
13.2 實驗準(zhǔn)備 156
13.3 基本知識及原理 156
13.4 實驗說明 158
13.5 實驗內(nèi)容 159
13.6 實驗總結(jié) 159
13.7 參考代碼 160
13.8 實驗報告 167
第14章 內(nèi)存管理實驗 169
14.1 實驗?zāi)康? 169
14.2 實驗準(zhǔn)備 169
14.3 基本知識及原理 169
14.4 實驗說明 173
14.5 實驗內(nèi)容 176
14.6 實驗總結(jié) 176
14.7 參考代碼 177
14.8 實驗報告 181
第15章 文件系統(tǒng)實驗 185<