图书简介:
目录
第1章 概述 1
1.1 操作系统环境实验 1
实验一 Linux使用环境 2
实验二 Linux下C编程环境 4
实验三 Windows系统管理命令 7
实验四 Windows文件操作命令 10
1.2 详解系统调用实现机制 12
实验一 详解Linux系统添加系统调用方法 16
实验二 向Linux内核增加一个系统调用 21
实验三 Ubuntu 14.04 TLS内核升级和添加系统调用 24
第2章 进程管理 28
2.1 进程 28
2.1.1 进程创建与终止 29
实验一 Linux下进程的控制 29
实验二 Windows下进程的管理 33
2.1.2 进程调度 37
实验一 设计PCB表结构 38
实验二 进程调度算法 41
2.1.3 进程间通信 46
实验一 消息传递 47
实验二 共享内存(Windows程序) 49
实验三 共享内存(Linux程序) 52
实验四 管道 64
实验五 Socket通信原理 71
2.2 线程 76
2.2.1 线程创建与终止 77
实验一 Pthread API线程 77
实验二 Win32线程 79
实验三 Java线程 80
2.2.2 单线程与多线程比较 81
实验一 “累加”计算效率 82
实验二 检验素数效率 85
实验三 文件复制 89
实验四 矩阵乘法的实现 91
实验五 控制台绘画 95
2.2.3 线程池 101
实验一 Java线程池使用 101
实验二 多线程模拟购票系统 105
2.3 线程同步 108
2.3.1 信号量 109
实验一 PV实现信号量机制 109
实验二 兔子吃草问题 111
2.3.2 互斥量 115
实验一 双线程打印 115
实验二 银行取款 117
2.3.3 生产者—消费者问题 118
实验一 生产者—消费者(C++实现) 121
实验二 生产者—消费者(Java实现) 124
实验三 应用管程思想解决生产者和消费者问题 126
2.3.4 读者-写者问题 131
实验一 读者-写者(C++实现) 132
实验二 读者-写者(Java实现) 139
2.3.5 哲学家就餐问题 151
实验一 哲学家就餐(C++实现) 151
实验二 哲学家就餐(Java实现) 155
2.3.6 理发师问题 158
实验一 理发师问题(C++实现) 159
实验二 理发师问题(Java实现) 163
2.4 死锁 169
实验一 A-B竞争资源 170
实验二 银行家算法程序 172
实验三 人脸识别中的死锁问题 181
第3章 内存管理 190
3.1 内存分配 190
实验— 内存分配与回收 190
3.2 页面置换 197
实验一 页面置换算法模拟(C++实现) 198
实验二 页面置换算法模拟(Java实现) 202
实验三 页式地址重定位模拟 204
第4章 设备管理 210
实验一 设备管理 210
实验二 磁盘调度算法 214
实验三 Spooling假脱机技术 223
第5章 文件管理与系统安全 232
实验一 文件管理 232
第6章 拓展实验 236
实验一 GPU并行编程 236
实验二 智能车虚拟交换模块C++实现方案 244
附录A Linux命令速查及疑难解答 251
附录B 文件编辑器vi命令 260
附录C Windows控制台命令 263
参考文献 264
展开
前 言
计算机操作系统(Operating System,OS)是计算机中最重要的系统软件,是最活跃的学科之一,也是计算机相关专业的核心课程。通过本课程的学习,使学生掌握操作系统的基本概念、技术、原理,基本具备从不同层次分析与使用操作系统功能的能力,了解计算机操作系统方面的新技术、新理论与新发展。
本书是操作系统课程的实验教材,旨在帮助学生加强对操作系统原理与设计的理解,以分析、设计、改进和实现操作系统的运行机理和各种算法及操作系统的核心功能。全书共6章,内容包括操作系统概述、进程管理、内存管理、设备管理、文件管理与系统安全、拓展实验等;分别介绍Linux和Windows操作系统的实验环境、进程和线程创建、调度算法、同步与通信、死锁处理、内存资源分配与回收、页面置换算法、GPU并行编程以及在智能驾驶中的应用等;附录给出了Linux、vi和DOS命令,以便在实践过程中作为工具速查。在某些经典算法上提供了多种语言、不同平台的实现代码。
本书强调对操作系统的动手实践能力,全文以实验为主线,在实验中验证原理,加强对操作系统原理与设计的理解;本书精选操作系统经典核心算法,提供了Java和C++两种语言在Linux和Windows平台实现的源代码,一个原理在不同操作环境下实现、验证或解释原理算法;本书的代码通过严格的验证实现,先由学生自主实现,再统一在实验平台上优化复现,严格控制代码的准确性。本书实验的代码等资源,请在华信教育资源网(www.hxedu.com.cn)的本书页面下载。
本书根据《操作系统概念课程教学大纲》的要求编写,目的是让学生能够进一步了解操作系统的基本概念、原理,通过综合性、验证性和设计性等实验,熟练掌握操作系统的运行机理和各种算法思想,了解操作系统的核心功能。同时,还希望通过实验,进一步提高学生的动手能力和综合运用所学知识的能力,本书可作为高等院校计算机专业操作系统课程的实验教材,也可作为各类操作系统教学的培训教材和自学资料。
北京市信息服务工程重点实验室
展开