图书目录

目录

第1章操作系统概述1

1.1操作系统的概念1

1.1.1计算机系统资源1

1.1.2操作系统的地位3

1.1.3操作系统的定义4

1.1.4操作系统的设计目标5

1.2操作系统的发展历史与分类7

1.2.1操作系统的发展历史7

1.2.2操作系统分类10

1.3操作系统的主要功能21

1.4操作系统的主要特征24

1.5操作系统的结构设计27

1.5.1无结构操作系统27

1.5.2模块化结构操作系统27

1.5.3分层式结构操作系统27

1.5.4虚拟机结构操作系统28

1.5.5微内核结构操作系统29

1.6操作系统的运行环境30

1.6.1操作系统硬件运行环境31

1.6.2操作系统与其他系统软件关系36

1.7初识Linux操作系统37

1.7.1Linux概述37

1.7.2Linux的内核设计39

1.7.3Linux的引导过程40

1.7.4Linux的系统调用41

习题142

第2章进程与线程管理47

2.1进程的基本概念47

2.1.1程序的执行过程47

2.1.2进程的定义和特征51

2.1.3进程的状态及状态转换54

2.1.4进程控制块及其组织方式57

2.2进程控制61

2.2.1进程的创建61

2.2.2进程的执行与进程切换63

2.2.3进程的阻塞与唤醒64

2.2.4进程的挂起与激活64

2.2.5进程的撤销65

2.3线程65

2.3.1进程的局限性66

2.3.2线程及其属性66

2.3.3线程的状态与控制70

2.3.4线程之间的同步和通信70

2.3.5线程的实现71

2.3.6多线程模型73

2.4Linux进程管理概述74

2.4.1Linux中的进程及其进程控制块74

2.4.2Linux中的进程控制79

2.4.3Linux中的线程80

习题280

第3章进程同步与进程间通信83

3.1进程同步和进程互斥83

3.1.1进程同步和进程互斥的基本概念83

3.1.2信号量机制91

3.1.3利用信号量解决进程互斥问题93

3.1.4利用信号量解决进程同步问题94

3.2典型进程同步问题详解97

3.2.1生产者消费者问题97

3.2.2哲学家就餐问题101

3.2.3读者写者问题104

3.3管程机制107

3.3.1为何引入管程107

3.3.2管程的定义108

3.3.3条件变量109

3.3.4管程解决生产者消费者问题109

3.4进程间通信110

3.4.1高级通信的分类111

3.4.2消息传递系统112

3.5Linux的进程间通信115

3.5.1管道115

3.5.2信号116

3.5.3消息队列117

3.5.4信号量117

3.5.5共享内存117

习题3118

第4章处理机调度123

4.1三级调度体系123

4.1.1高级调度124

4.1.2中级调度126

4.1.3低级调度126

4.1.4三级调度的关系127

4.2进程调度的目标和方式128

4.2.1进程调度的目标128

4.2.2进程调度的方式129

4.3调度算法的评价准则130

4.3.1面向用户的评价准则130

4.3.2面向系统的评价准则131

4.4典型的进程调度算法132

4.4.1先来先服务调度算法132

4.4.2短作业(进程)优先调度算法134

4.4.3最短剩余时间优先调度算法135

4.4.4时间片轮转调度算法135

4.4.5优先级调度算法137

4.4.6高响应比优先调度算法138

4.4.7多级反馈队列调度算法139

4.5线程调度算法141

4.5.1用户级线程调度算法141

4.5.2核心级线程调度算法142

4.6实时调度算法143

4.6.1实时调度算法的目标和所需的必要信息143

4.6.2抢占调度和快速切换机制144

4.6.3典型的实时调度算法144

4.7Linux的进程调度145

习题4147

第5章死锁152

5.1死锁的基本概念和产生原因152

5.1.1死锁的基本概念152

5.1.2产生死锁的原因154

5.2死锁的必要条件158

5.3死锁的处理159

5.3.1死锁的处理方法159

5.3.2资源分配图160

5.4死锁的静态预防160

5.4.1破坏互斥条件161

5.4.2破坏请求和保持条件161

5.4.3破坏不剥夺条件162

5.4.4破坏环路等待条件162

5.5死锁的动态避免163

5.5.1系统的安全状态163

5.5.2银行家算法164

5.6死锁的检测和解除167

5.6.1单体资源类死锁的检测算法168

5.6.2多体资源类死锁的检测算法168

5.6.3死锁的解除方法170

5.6.4鸵鸟算法171

5.7线程死锁171

习题5171

第6章内存管理175

6.1内存管理概述175

6.1.1存储器的层次结构175

6.1.2内存管理的功能176

6.1.3内存管理的目标177

6.2程序的链接和装入178

6.2.1几个基本概念178

6.2.2程序的链接180

6.2.3程序的装入181

6.3连续分配存储管理方式183

6.3.1单一连续分配183

6.3.2固定分区分配183

6.3.3可变分区分配185

6.3.4动态重定位分区分配190

6.4基本分页存储管理方式192

6.4.1分页存储管理的基本概念193

6.4.2基本分页管理的地址变换机构194

6.4.3多级页表196

6.4.4页面的共享与保护198

6.4.5基本分页存储管理优缺点199

6.5基本分段存储管理方式200

6.5.1分段存储管理的引入200

6.5.2基本分段管理的地址结构200

6.5.3基本分段管理的地址变换机构201

6.5.4分段的共享与分段保护202

6.5.5基本分段存储管理的优缺点203

6.5.6分页存储管理和分段存储管理的主要区别203

6.6基本段页式存储管理方式203

6.6.1段页式存储管理的基本原理与地址变换机构203

6.6.2Intel 80386的段页式存储管理机制205

习题6207

第7章虚拟存储管理211

7.1覆盖与交换技术211

7.1.1覆盖技术211

7.1.2交换技术212

7.2虚拟存储管理214

7.2.1程序局部性原理214

7.2.2虚拟存储器及其特征215

7.3请求分页存储管理方式216

7.3.1请求分页的硬件支持216

7.3.2请求分页的软件支持218

7.3.3页面替换算法219

7.3.4页面调度性能223

7.3.5影响缺页率因素225

7.3.6Belady现象225

7.3.7请求分页存储管理的优缺点226

7.4请求分段存储管理方式227

7.4.1请求分段存储管理的基本概念227

7.4.2请求分段存储管理的优缺点229

7.5请求段页式存储管理方式230

7.6存储管理方式总结231

7.7Linux的存储管理概述231

7.7.1Linux的虚拟内存管理231

7.7.2Linux的物理内存管理236

7.7.3页面缓存与Swap交换空间239

习题7240

第8章I/O设备管理246

8.1I/O设备管理概述246

8.1.1I/O设备的分类246

8.1.2I/O设备的差异性247

8.1.3I/O设备管理的任务和功能248

8.2I/O的系统249

8.2.1I/O系统的结构249

8.2.2设备控制器251

8.2.3I/O控制方式253

8.3I/O软件260

8.3.1I/O软件的设计目标261

8.3.2I/O软件的层次261

8.3.3各层I/O软件之间的协同工作机制266

8.4设备分配与回收268

8.4.1设备管理使用的数据结构268

8.4.2设备的分配269

8.4.3设备的回收270

8.4.4SPOOLing系统271

8.5缓冲管理273

8.5.1缓冲的引入273

8.5.2单缓冲274

8.5.3双缓冲275

8.5.4循环缓冲276

8.5.5缓冲池278

8.6磁盘存储器的管理279

8.6.1磁盘及其访问279

8.6.2磁盘调度算法281

8.6.3磁盘高速缓存285

8.7I/O控制287

8.7.1I/O控制的引入287

8.7.2I/O控制的过程287

8.7.3I/O控制的实现288

8.8Linux设备管理288

8.8.1Linux设备管理概述288

8.8.2Linux设备管理中的数据结构290

8.8.3Linux的设备文件291

8.8.4Linux的设备驱动程序293

习题8300

第9章文件系统305

9.1文件的基本概念305

9.1.1文件的概念305

9.1.2文件的属性及其分类306

9.2文件系统307

9.2.1文件系统的概念307

9.2.2文件系统的组成308

9.3文件的结构311

9.3.1文件的逻辑结构311

9.3.2文件的物理结构314

9.4文件目录和目录查询321

9.4.1文件目录的概念321

9.4.2文件目录的结构323

9.4.3目录查询技术326

9.5文件存储空间的管理327

9.5.1文件存储空间的划分328

9.5.2文件存储空间的分配技术328

9.5.3空闲文件存储器空间的管理方法328

9.6文件的共享与保护332

9.6.1文件的共享332

9.6.2文件的保护333

9.7文件系统的可靠性335

9.7.1文件的可靠性335

9.7.2文件的保密性336

9.8Linux的文件管理337

9.8.1Linux的虚拟文件系统337

9.8.2Linux文件系统的装卸340

9.8.3常见的Linux文件系统调用341

9.9EXT2文件系统344

习题9346

参考文献351