基於Pintos的操作系統實驗教程

鄭長友,張賽男,胡斌,蔣園園,洪宇,李輝,顧敏,肖春霞

  • 出版商: 清華大學
  • 出版日期: 2026-09-01
  • 售價: $354
  • 語言: 簡體中文
  • ISBN: 7302723273
  • ISBN-13: 9787302723271
  • 相關分類: Operating-system
  • 下單後立即進貨 (約4週~6週)

  • 基於Pintos的操作系統實驗教程-preview-1
  • 基於Pintos的操作系統實驗教程-preview-2
  • 基於Pintos的操作系統實驗教程-preview-3
  • 基於Pintos的操作系統實驗教程-preview-4
  • 基於Pintos的操作系統實驗教程-preview-5
  • 基於Pintos的操作系統實驗教程-preview-6
  • 基於Pintos的操作系統實驗教程-preview-7
基於Pintos的操作系統實驗教程-preview-1

相關主題

商品描述

本書以操作系統Pintos為核心實驗載體,輔以Linux進程與線程管理實驗,構建了循序漸進的操作系統實驗教學體系。Pintos適配80x86架構,代碼簡潔、註釋詳實,功能實現與Linux高度契合,是高校操作系統教學的優質工具,本書源碼采用約翰斯?霍普金斯大學優化版本,並對原生高難度實驗代碼進行補充完善,大幅降低學習實操門檻。全書依托EduCoder平臺搭建配套實驗環境,搭配圖形化Eclipse調試工具,有效降低內核代碼調試難度。實驗體系層層遞進,涵蓋系統調用應用、內核代碼調試、內核功能修改三大類型,從操作系統API使用、內核機制分析,到內核功能自主完善,覆蓋操作系統教學核心內容。全書摒棄枯燥理論灌輸,以實操驅動學習,幫助讀者由表及裏吃透操作系統核心原理,全面提升系統編程與復雜系統設計能力,樹立完整的計算機系統觀,適合本科計算機相關專業作為操作系統課程實驗教材使用。

作者簡介

鄭長友,陸軍工程大學副教授,碩士研究生導師。主要從事軟件工程、軟件測試等領域的研究;主講操作系統、計算思維導論等課程;主持國家重點研發計劃子課題1項,軍隊裝備綜合研究項目2項,型號裝備鑒定測評項目多項;獲得軍隊科技進步獎二等獎2項、三等獎1項,發表論文30余篇,獲得授權發明專利10余項。 張賽男,陸軍工程大學副教授。主要從事軟件工程、軟件測試等領域的研究;主講操作系統、離散數學、計算思維導論等課程;獲得軍隊科技進步獎二等獎1項,發表論文10余篇,獲得授權發明專利5項。 胡斌,陸軍工程大學副教授。長期從事軟件工程等領域的教學和科研工作;主講操作系統、計算思維導論等課程;獲得軍隊科技進步獎二等獎2項、三等獎4項,發表論文30余篇。

目錄大綱

目錄

第1章Linux基本使用1

1.1實驗目的1

1.2實驗內容及步驟1

1.2.1任務一: Linux初體驗1

1.2.2任務二: Linux常用命令3

1.2.3任務三: 第一個C程序6

1.2.4任務四: Linux編譯C程序7

思考題9

第2章Linux進程管理10

2.1實驗目的10

2.2實驗內容及步驟10

2.2.1任務一: 獲取進程信息10

2.2.2任務二: 使用fork函數創建進程12

2.2.3任務三: 進程終止14

2.2.4任務四: 進程等待18

2.2.5任務五: 使用exec函數創建進程22

思考題25

第3章Linux線程管理與線程同步26

3.1實驗目的26

3.2實驗內容及步驟26

3.2.1任務一: 創建線程26

3.2.2任務二: 互斥鎖29

3.2.3任務三: 條件變量33

3.2.4任務四: 信號量36

思考題41

第4章Pintos基礎知識42

4.1Pintos系統的代碼結構42

4.2Pintos內存空間劃分43

4.380x86調用約定43

4.4系統的加載過程44

4.4.1加載器44

4.4.2低級內核初始化44

4.4.3物理內存布局45

4.4.4高級內核初始化45

4.5線程46

4.5.1線程結構體46

4.5.2線程函數48

4.5.3線程切換49

4.6同步50

4.6.1禁用中斷50

4.6.2信號量51

4.6.3鎖52

4.7中斷處理52

4.7.1中斷的基本處理53

4.7.2內部中斷處理54

4.7.3外部中斷處理55

思考題55

目錄〖3〗第5章Pintos的編譯和運行56

5.1實驗環境56

5.1.1Pintos運行環境說明56

5.1.2實驗環境說明56

5.2Pintos系統的編譯與運行57

5.2.1編譯57

5.2.2運行58

5.2.3測試59

5.3Pintos的調試61

5.3.1使用GDB調試61

5.3.2使用Eclipse調試63

5.3.3使用內核函數和專用命令調試67

5.4在線實驗平臺的使用68

5.4.1平臺介紹68

5.4.2平臺使用68

5.4.3評分規則69

思考題69

第6章Pintos中斷的處理70

6.1實驗目的70

6.2實驗內容及步驟70

思考題 74

第7章Pintos多級頁表的設置75

7.1實驗目的75

7.2實驗內容及步驟75

思考題79

第8章Pintos基礎數據結構: 通用鏈表80

8.1實驗目的80

8.2實驗內容及步驟80

8.2.1任務一: 通用鏈表的基本使用80

8.2.2任務二: 通用鏈表的首地址計算83

8.2.3任務三: 基於函數指針的通用鏈表操作85

思考題87

第9章Pintos線程的切換過程88

9.1實驗目的88

9.2實驗內容及步驟88

思考題93

第10章Pintos線程的創建過程94

10.1實驗目的94

10.2實驗內容及步驟94

思考題100

第11章Pintos時鐘原語的改進101

11.1實驗目的101

11.2實驗內容及步驟101

思考題106

第12章Pintos優先級調度的實現107

12.1實驗目的107

12.2實驗內容及步驟107

12.2.1任務一: 靜態優先級調度107

12.2.2任務二: 優先級搶占110

12.2.3任務三: 優先級調整 112

12.2.4任務四: 信號量等待隊列的優先級調整調度 113

12.2.5任務五: 條件變量等待隊列的優先級調整調度 115

思考題117

第13章Pintos系統調用的實現118

13.1實驗目的118

13.2實驗內容及步驟118

13.2.1任務一: 用戶程序的調試118

13.2.2任務二: 系統調用的實現123

思考題131

第14章Pintos用戶文件的載入132

14.1實驗目的132

14.2實驗內容及步驟132

14.2.1任務一: ELF文件格式的分析132

14.2.2任務二: Pintos文件載入過程分析139

思考題144

第15章Pintos文件系統分析145

15.1實驗目的145

15.2實驗內容及步驟145

思考題154

參考文獻155

後記156