基于Pintos的操作系统实验教程
操作系统实验教程应注重理论与实践的结合,通过丰富的实验内容和案例分析,帮助学习者更好地理解操作系统的核心概念和关键技术。

作者:郑长友,张赛男,胡斌,蒋园园,洪宇,李辉,顾敏,肖春霞

丛书名:面向新工科专业建设计算机系列教材

定价:59元

印次:1-1

ISBN:9787302723271

出版日期:2026.09.01

印刷日期:2026.09.03

图书责编:杨帆

图书分类:教材

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

本书以操作系统Pintos为核心实验载体,辅以Linux进程与线程管理实验,构建了循序渐进的操作系统实验教学体系。Pintos适配80x86架构,代码简洁、注释详实,功能实现与Linux高度契合,是高校操作系统教学的优质工具,本书源码采用约翰斯?霍普金斯大学优化版本,并对原生高难度实验代码进行补充完善,大幅降低学习实操门槛。全书依托EduCoder平台搭建配套实验环境,搭配图形化Eclipse调试工具,有效降低内核代码调试难度。实验体系层层递进,涵盖系统调用应用、内核代码调试、内核功能修改三大类型,从操作系统API使用、内核机制分析,到内核功能自主完善,覆盖操作系统教学核心内容。全书摒弃枯燥理论灌输,以实操驱动学习,帮助读者由表及里吃透操作系统核心原理,全面提升系统编程与复杂系统设计能力,树立完整的计算机系统观,适合本科计算机相关专业作为操作系统课程实验教材使用。

郑长友,陆军工程大学副教授,硕士研究生导师。主要从事软件工程、软件测试等领域的研究;主讲操作系统、计算思维导论等课程;主持国家重点研发计划子课题1项,军队装备综合研究项目2项,型号装备鉴定测评项目多项;获得军队科技进步奖二等奖2项、三等奖1项,发表论文30余篇,获得授权发明专利10余项。张赛男,陆军工程大学副教授。主要从事软件工程、软件测试等领域的研究;主讲操作系统、离散数学、计算思维导论等课程;获得军队科技进步奖二等奖1项,发表论文10余篇,获得授权发明专利5项。胡斌,陆军工程大学副教授。长期从事软件工程等领域的教学和科研工作;主讲操作系统、计算思维导论等课程;获得军队科技进步奖二等奖2项、三等奖4项,发表论文30余篇。

前言 Pintos是一个运行在80x86架构CPU的教学操作系统,被斯坦福、约翰斯·霍普金斯等著名高校的操作系统课程使用。它是一个很小的操作系统,但足以帮助读者理解操作系统中最基本的概念和机制。Pintos的实现与Linux有很多相似之处,且它的源代码中包括大量的注释,可以帮助读者更快地理解代码。作为专用的教学操作系统,它的实现更为简单,代码与Linux相比更加易懂。 本教程的源代码取自约翰斯·霍普金斯大学的修改版本。Pintos中包括四个project,分别是threads、user program、virtual memory和file system,由于Pintos的实验内容难度较大,编者在本教程的实验中已经对原始代码进行了补充,降低了读者完成项目的难度。 Pintos是一个为80x86体系结构的处理器设计的简单操作系统框架。它支持内核线程,能够加载和运行用户程序,还实现了一个简单文件系统,但这些功能并不完善。在本教程的系列实验中,读者的主要任务就是不断完善这个操作系统。 依托EduCoder平台,编者已经设置好了相应的实验环境,让读者能够更加集中精力于内核代码编写与调试。EduCoder平台提供了图形化的Eclipse调试环境,极大地降低了内核调试的难度。本实验已在EduCoder平台公开发布。 Pintos系列实验中的系统调用涉及wait、read等系统调用的实现,这些系统调用在Linux中也是标准的API,本教程设计了Linux进程管理、线程管理等实验,主要是让读者学会如何使用操作系统提供的API;在此基础上,本教程还设计了一组Pintos内核调试...

目录
荐语
查看详情 查看详情
目录

第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.... 查看详情

1. 优质教学内核适配优化,实操门槛低:本书选用斯坦福大学主流教学操作系统Pintos,其架构精简、注释丰富且与Linux机制高度同源,贴合教学需求。源码采用约翰斯?霍普金斯大学优化版本,并针对原生实验难度较高的问题补充完善代码,有效简化实操流程,兼顾专业性与易懂性,适配本科教学场景。 2. 分层递进实验体系,知识体系完整:搭建从应用到分析再到改造的三阶实验体系,依托Linux线程、进程管理实验帮助读者掌握系统API使用,通过内核调试实验引导读者剖析内核运行机制,借助Pintos内核修改实验实现操作系统功能自主完善,层层递进覆盖操作系统核心教学内容。 3. 云端实验环境赋能,教学实用性强:依托EduCoder平台搭建专属实验环境,搭配图形化Eclipse调试工具,解决传统内核调试难度大、环境配置复杂的痛点,让读者专注于代码编写与内核调试。平台实验资源公开可用,适配课堂教学与自主实训,助力读者锤炼系统编程与复杂系统设计能力。

查看详情