计算机操作系统(Linux)教程

计算机操作系统(Linux)教程 教材名称: 计算机操作系统(Linux)教程
ISBN号: 978-7-89436-045-8 作者: 董祥千
字数: 564千字 规格: 16开
印制时间: 2012-02-08 出版日期: 2012-02-16
定价: 48 元 样章下载: 978-7-89436-045-8计算机操作系统(Linux)教程样章(加水印).pdf
购买链接:

       操作系统(Operating System,简称OS)是计算机系统中的核心软件,它管理和控制整个系统的资源(包括硬件资源和软件资源),既控制程序运行,也为其他应用软件提供支持。操作系统不仅是计算机专业的必修课程,也是从事计算机行业人员的必备知识。本教材以Linux操作系统内核为基础,本着循序渐进的原则,采用通俗易懂的语言和丰富的实例,阐述操作系统的基本概念、原理及方法。全教材共9章:第1章绪论;第2章操作系统的引导;第3章存储管理;第4章进程管理;第5章处理机管理;第6章操作系统用户接口;第7章设备管理;第8章文件管理;第9章Linux内核分析。

第1章绪论1
1.1学习引导1
1.2操作系统的概念3
1.2.1什么是操作系统3
1.2.2操作系统的发展3
1.3操作系统的功能4
1.3.1处理机管理4
1.3.2存储器管理5
1.3.3设备管理5
1.3.4文件管理6
1.3.5用户接口6
1.4操作系统的分类6
1.4.1单用户操作系统7
1.4.2多道批处理系统7
1.4.3分时系统7
1.4.4实时系统8
1.4.5网络操作系统8
1.4.6分布式操作系统9
1.4.7嵌入式操作系统9
1.5操作系统的特征和性能指标10
1.5.1操作系统的特征10
1.5.2操作系统性能指标11
1.6Linux系统概述11
1.6.1Linux系统形成和发展的基础11
1.6.2Linux系统的特点13
1.7单元项目:Linux内核结构14
1.8扩展阅读17
1.9本章小结17
1.10习题17
第2章操作系统的引导18
2.1学习引导18
2.2系统启动硬件基础20
2.2.1主板与内存映射20
2.2.2加电自检(POST)过程21
2.3根文件系统21
2.3.1根文件系统21
2.3.2Busybox文件系统简介22
2.4操作系统启动过程22
2.4.1引导程序BootLoader的加载22
2.4.2操作系统内核的加载22
2.4.3计算机启动过程23
2.5GDB调试23
2.5.1GDB简介23
2.5.2GDB命令24
2.6单元项目25
2.6.1Linux内核的编译25
2.6.2制作带根文件系统的磁盘映像26
2.6.3制作带引导功能的启动磁盘29
2.6.4Linux内核调试31
2.7本章小结33
2.8习题33
第3章存储管理34
3.1学习引导34
3.2存储管理的基本概念37
3.2.1存储管理的目的和功能37
3.2.2存储管理的方式40
3.3连续分配方式40
3.3.1单一连续分配40
3.3.2固定分区存储管理41
3.3.3动态分区存储管理44
3.3.4交换技术50
3.4离散分配方式51
3.4.1基本分页存储管理51
3.4.2基本分段存储管理方式56
3.4.3段页式存储管理方式59
3.5虚拟存储器62
3.5.1虚拟存储器的引入62
3.5.2虚拟存储器的实现63
3.5.3虚拟存储器的特征64
3.6请求分页存储管理64
3.6.1请求分页中的硬件支持64
3.6.2内存的分配66
3.6.3页面置换算法67
3.6.4页面抖动现象70
3.7请求分段存储管理71
3.7.1段表机制71
3.7.2缺段中断机构71
3.7.3地址变换机构72
3.8Linux内存管理73
3.8.1Linux存储管理的重要数据结构73
3.8.2页表的管理74
3.8.3页面分配和回收75
3.8.4Linux页面置换77
3.9单元项目78
3.9.1动态分区分配模拟项目78
3.9.2页面置换算法模拟项目82
3.10本章小结86
3.11习题87
第4章进程管理 90
4.1学习引导90
4.2进程管理92
4.2.1程序、程序的顺序执行及其特征92
4.2.2程序的并发执行及其特征93
4.2.3进程的定义及其特征94
4.2.4进程的基本状态及其转换95
4.2.5进程切换96
4.2.6进程控制块PCB97
4.2.7进程控制块的组织方式98
4.2.8进程控制99
4.3进程互斥与同步及信号量机制102
4.3.1临界资源和临界区102
4.3.2进程互斥与同步的概念103
4.3.3信号量机制104
4.3.4信号量集机制105
4.4进程间通信106
4.4.1进程间通信的方式107
4.4.2进程地址空间107
4.4.3Linux进程间通信110
4.4.4System V共享内存实现111
4.4.5System V共享内存编程接口113
4.4.6System V信号量机制114
4.5死锁117
4.5.1死锁产生的原因和必要条件118
4.5.2解决死锁的基本方法118
4.6Linux进程的实现120
4.6.1Linux进程描述符120
4.6.2Linux进程的状态121
4.6.3Linux进程的虚拟内存布局122
4.6.4Linux进程的内核堆栈123
4.6.5Linux的init进程123
4.6.7Linux用户进程的创建124
4.7线程125
4.7.1线程的基本概念125
4.7.2用户级线程与内核级线程127
4.7.3多线程模型127
4.7.4Linux线程技术127
4.7.5Glibc中的NTPL库编程接口128
4.7.6POSIX信号量129
4.8单元项目131
4.8.1进程管理的模拟实现131
4.8.2生产者-消费者问题133
4.8.3利用共享内存实现读者写者问题135
4.8.4哲学家就餐问题136
4.8.5司机与售票员问题137
4.9本章小结139
4.10习题139
第5章处理机管理145
5.1学习引导145
5.2基本知识147
5.2.1调度程序147
5.2.2分派程序147
5.2.3调度算法的若干准则147
5.2.4进程优先级148
5.2.5调度策略148
5.2.6进程调度层次149
5.2.7进程调度的功能150
5.2.8进程调度时机150
5.2.9作业的状态及其转换151
5.3常用的调度队列模型152
5.3.1只有进程调度的调度队列模型152
5.3.2具有高级和低级调度的调度队列模型152
5.3.3同时具有三级调度的调度队列模型153
5.4常用调度算法153
5.4.1先来先服务调度算法153
5.4.2短作业调度算法(SJF)或短进程调度算法(SPF)154
5.4.3高响应比优先调度算法(HRN)155
5.4.4最高优先级(FPF)优先调度算法155
5.4.5基于时间片轮转的调度算法156
5.5Linux进程调度框架157
5.5.1Linux进程的分类158
5.5.2时间片的选择158
5.5.3Linux2.6.26的两种主流调度器158
5.6单元项目162
5.6.1作业调度算法模拟162
5.6.2进程调度算法模拟164
5.6.3CFS算法在Linux上的实现分析165
5.7本章小结175
5.8习题176
第6章操作系统用户接口178
6.1学习引导178
6.2操作系统的接口180
6.2.1程序接口180
6.2.2命令接口182
6.2.3作业控制级接口183
6.3Linux的用户接口184
6.3.1常用Shell命令184
6.3.2Shell编程212
6.4单元项目212
6.4.1“Hello world”项目212
6.4.2Shell变量项目213
6.4.3Shell程序设计的流程控制项目216
6.5扩展阅读227
6.6本章小结228
6.7习题228
第7章设备管理229
7.1学习引导229
7.2设备管理概述231
7.2.1设备管理的目的和功能231
7.2.2设备的分类231
7.3I/O系统232
7.3.1设备控制器232
7.3.2I/O通道234
7.3.3总线系统236
7.4I/O数据传输方式236
7.4.1程序循环测试方式237
7.4.2中断驱动I/O控制方式237
7.4.3直接存储器存取(DMA)方式239
7.4.4I/O通道方式240
7.5缓冲技术242
7.5.1缓冲的引入242
7.5.2缓冲的类型242
7.6设备分配245
7.6.1设备分配中的数据结构245
7.6.2设备的独立性247
7.6.3分配中应考虑的因素248
7.6.4独占设备的分配程序249
7.7I/O处理250
7.7.1中断处理程序250
7.7.2设备驱动程序251
7.8虚拟设备252
7.8.1Spooling技术253
7.8.2共享打印机254
7.9磁盘管理254
7.9.1磁盘概述254
7.9.2磁盘调度256
7.9.3廉价磁盘冗余阵列259
7.10Linux设备管理260
7.10.1Linux中的设备文件260
7.10.2Linux的设备驱动程序261
7.10.3Linux的中断处理267
7.11单元项目:磁盘调度算法模拟实验269
7.12本章小结270
7.13习题270
第8章文件管理 274
8.1学习引导274
8.2文件的基本概念276
8.2.1文件属性276
8.2.2文件操作276
8.2.3文件格式277
8.2.4文件结构277
8.3文件存取方法279
8.3.1顺序存取279
8.3.2直接存取(随机存取)280
8.3.3按键存取280
8.4文件目录280
8.4.1文件目录结构281
8.4.2文件目录的实现281
8.5文件系统282
8.5.1文件系统的功能283
8.5.2文件系统的层次结构283
8.6空闲存储空间的管理283
8.6.1空闲空间表法283
8.6.2空闲块链法284
8.6.3位示图法284
8.6.4成组链接法284
8.7磁盘空间分配方式285
8.7.1连续分配方式286
8.7.2链接分配方式286
8.7.3索引分配方式286
8.8文件共享287
8.8.1早期文件共享的方法287
8.8.2基于索引结点的共享方式(硬链接)288
8.8.3利用符号链实现文件共享(软链接)289
8.9文件保护290
8.9.1保护域290
8.9.2访问矩阵291
8.9.3访问矩阵的修改291
8.9.4访问矩阵的实现293
8.9.5分级安全管理294
8.10Linux文件系统分析295
8.10.1Linux文件系统体系结构295
8.10.2VFS文件系统295
8.10.3ext2文件系统298
8.10.4文件系统的挂载299
8.11单元项目302
8.11.1Linux文件系统模拟302
8.11.2给Linux系统添加新硬盘306
8.12本章小结307
8.13习题308
第9章Linux内核分析312
9.1学习引导312
9.2Linux内核代码组织314
9.2.1微内核与单内核314
9.2.2Linux内核源代码结构314
9.3Linux内核分析方法317
9.4单元项目317
9.4.1Linux中的时钟和定时测量的初始化317
9.4.2Linux内核编译过程分析323
9.4.3Linux操作系统启动过程分析328
9.5本章小结342
9.6习题342
参考文献343
 

 1、本教材的每个抽象概念部分都配有相应的实验,便于学生理解和实践。

2、本教材每章前均有“学习引导”一节,便于学生初步了解每章内容,清楚该如何学习每章内容。

3、本教材每章后均有“本章小结”,从整体回顾课程的知识点,提出重点难点,便于学生更好地学习本章内容。

4、本教材的编写以提出问题——分析问题——解决问题的思路进行。语言通俗易懂、思路清晰、层次鲜明,便于学生逐步培养、提高分析问题和解决问题的能力。

5、每一章对应的具体能力要求、教学要求、教学重点以及教学难点等在每一章前面列出,希望读者在学习时加以注意。

6、每章的实验以CDIO工程教育理念为指导思想,每一小节对应一个单元项目或单元组项目。在每个项目中,或以实验的方式验证操作系统功能,或以编码方式模拟实现操作系统的功能,或以源代码分析的方式探讨Linux系统的实现