当前位置:首页 > 工业技术
操作系统教程与实验
操作系统教程与实验

操作系统教程与实验PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:胡明庆,高巍,钟梅编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:730213751X
  • 页数:525 页
图书介绍:本书是针对《操作系统》课程编写的教材,由基础理论、内核分析和实验3篇组成。
《操作系统教程与实验》目录

第1篇 操作系统原理 2

第1章 操作系统概述 2

1.1 操作系统的定义及其功能 2

1.2 操作系统的分类 4

1.2.1 多道程序设计技术与批处理系统 5

1.2.2 分时操作系统 6

1.2.3 实时操作系统 6

1.2.4 网络操作系统 6

1.3.2 共享性 7

1.3.1 并发性 7

1.3 操作系统的特性 7

1.2.6 个人操作系统 7

1.2.5 分布式操作系统 7

1.3.3 不确定性 8

1.3.4 虚拟性 8

1.4 操作系统的性能评价 8

1.5 操作系统的逻辑结构 9

1.5.1 模块化结构 9

1.5.2 层次化结构 9

1.5.3 虚拟机结构 9

1.6.2 特权指令与处理机态的转换 10

1.6.1 处理机的态 10

1.5.5 面向对象结构 10

1.5.4 客户/服务器结构 10

1.6 支持操作系统的基本硬件结构 10

1.6.3 时钟 11

1.6.4 中断机制 12

1.6.5 80386的寄存器组 16

1.6.6 80386的工作模式和特权级保护 20

习题1 24

2.1 操作系统提供的用户界面 25

2.1.1 操作命令界面 25

第2章 用户界面 25

2.1.2 系统调用界面 27

2.1.3 两种界面之间的关系 27

2.2 系统调用 27

2.2.1 系统调用的类型 27

2.2.2 系统调用的实现 28

2.2.3 系统调用与子程序调用的区别 29

2.3 Linux的系统调用 30

习题2 31

第3章 进程 32

3.1 进程的概念 32

3.1.1 多道程序并发执行 33

3.1.2 进程的定义 36

3.1.3 进程与程序的区别与联系 37

3.1.4 进程的类型 38

3.1.5 进程映像 38

3.1.6 进程状态及其变迁 43

3.2 进程控制 44

3.2.1 进程创建 45

3.2.2 进程撤销 51

3.2.3 进程睡眠 52

3.3.1 问题的提出 53

3.3 进程同步与互斥 53

3.2.4 进程唤醒 53

3.3.2 临界资源与临界区 54

3.3.3 互斥问题与同步问题 54

3.3.4 信号量及其P、V操作 56

3.3.5 用P、V操作实现进程同步与互斥 57

3.3.6 用P、V操作实现进程互斥与同步举例 57

3.3.7 管程的概念 67

3.4 Linux进程 68

3.4.1 Linux进程家族树 68

3.4.2 Linux中父进程等待子进程的同步 70

3.4.3 Linux中子进程映像的重新装入 73

3.5 线程 77

3.5.1 问题的提出 77

3.5.2 线程及其特征 78

3.5.3 线程的状态与线程控制块 79

3.5.4 线程的分类 79

3.5.5 线程与进程的关系 80

3.5.6 线程的优缺点 80

3.5.7 线程的适用范围 81

3.5.8 Linux线程的特点 82

3.5.9 线程举例 82

习题3 86

第4章 进程间通信 89

4.1 Linux软中断信号机制 89

4.1.1 软中断信号 89

4.1.2 软中断信号的使用方法 91

4.1.3 软中断信号的系统调用 92

4.1.4 应用举例 93

4.1.5 使用软中断实现父子进程同步 94

4.2 Linux管道通信 97

4.2.1 无名管道与命名管道 97

4.2.2 无名管道的实现方法 98

4.2.3 无名管道应用举例 100

4.3 Linux的IPC机制 101

4.2.4 命名管道 101

4.4 Linux消息缓冲通信 103

4.4.1 消息缓冲通信概述 103

4.4.2 Linux消息缓冲通信的系统调用 107

4.4.3 消息缓冲通信应用举例 109

4.5 Linux共享内存通信 113

4.5.1 共享内存通信概述 113

4.5.2 共享内存通信的数据结构 113

4.5.3 共享内存通信的系统调用 114

4.5.4 共享内存通信实现方法 117

4.5.5 共享内存通信应用举例 118

4.6 几种通信方式小结 124

4.7 Linux信号量 124

4.7.1 Linux信号量的结构 124

4.7.2 有关信号量的系统调用函数 126

4.7.3 信号量及其P、V操作的实现 130

4.7.4 应用举例 131

习题4 143

第5章 资源分配与处理机调度 144

5.1 资源分配 144

5.2 死锁 144

5.2.1 死锁的概念 144

5.2.2 死锁的起因 145

5.2.4 规避死锁的方法 147

5.2.3 产生死锁的必要条件 147

5.3 处理机的多级调度 150

5.4 作业调度 151

5.4.1 作业的状态 151

5.4.2 作业控制块 152

5.4.3 作业调度目标与性能评价 152

5.4.4 调度算法 153

5.5 进程调度 156

5.5.1 进程上下文 156

5.5.2 进程调度的功能 157

5.5.4 进程调度策略 158

5.5.3 进程调度的时机 158

5.5.5 UNIX进程调度 159

习题5 162

第6章 内存管理 164

6.1 内存管理概述 165

6.1.1 计算机系统存储结构 165

6.1.2 操作系统内存管理与硬件系统的关系 165

6.1.3 操作系统内存管理的任务 166

6.2 分区内存管理 171

6.2.1 分区管理概述 171

6.2.3 动态分区的分配与回收 173

6.2.2 动态分区的数据结构 173

6.2.4 几种基本的放置策略 175

6.2.5 分区管理的虚拟存储的实现 177

6.2.6 碎片问题与拼接技术 177

6.3 分页内存管理 177

6.3.1 分页管理的基本原理 178

6.3.2 静态分页管理 180

6.3.3 请求分页管理与虚拟存储 181

6.3.4 请求分页的页表 182

6.3.5 请求分页管理的页面置换算法 182

6.3.6 抖动 184

6.3.8 快表 185

6.3.7 分页管理的存储保护 185

6.3.9 分页管理的优缺点 186

6.4 分段内存管理 186

6.4.1 段式管理的基本原理 187

6.4.2 分段管理的内存分配与回收 188

6.4.3 段的共享与保护 188

6.4.4 分段管理的优缺点 189

6.5 段页式内存管理 190

6.5.1 段页式管理中虚地址的构成 190

6.5.2 段表和页表 190

6.6.2 UNIX交换区及其管理 191

6.6.1 UNIX内存管理概述 191

6.5.3 动态地址映射 191

6.6 UNIX的内存管理 191

6.6.3 UNIX地址映射 193

6.6.4 UNIX请求分页的数据结构 194

6.6.5 UNIX的请求调页技术与页面错 196

6.6.6 UNIX的偷页进程 197

6.6.7 UNIX共享的实现 198

习题6 199

7.1 文件管理概述 200

7.1.1 几个基本概念 200

第7章 文件管理 200

7.1.2 文件的逻辑结构及其存取方式 203

7.1.3 文件的物理结构与存储设备 204

7.1.4 文件存储空间的管理 209

7.1.5 文件目录管理 210

7.1.6 文件完整性 218

7.1.7 文件操作 219

7.1.8 文件系统的层次模型 220

7.2 UNIX文件系统 221

7.2.1 UNIX文件系统的特点 221

7.2.3 UNIX文件的物理结构 222

7.2.2 UNIX文件i结点 222

7.2.4 UNIX文件目录结构 224

7.2.5 UNIX打开文件管理机构 224

7.2.6 UNIX存储空间的管理 228

习题7 232

第8章 设备管理 233

8.1 设备管理概述 233

8.1.1 设备的分类 234

8.1.2 设备管理的任务 234

8.1.3 设备独立性 234

8.1.4 缓冲技术 235

8.1.5 设备分配 236

8.1.6 输入输出控制 238

8.1.7 设备管理的数据结构 242

8.1.8 设备驱动程序 245

8.2 UNIX设备管理 245

8.2.1 UNIX块设备管理的数据结构 246

8.2.2 UNIX块设备缓冲区管理 248

8.2.3 UNIX设备驱动程序接口 257

8.2.4 UNIX块设备驱动 259

8.2.5 UNIX字符设备缓冲区管理 260

习题8 263

9.1.2 Linux的诞生 266

9.1.1 UNIX的兴起 266

第2篇 Linux操作系统 266

9.1 Linux简介 266

第9章 Linux应用基础 266

9.1.3 开源、自由和Linux 267

9.1.4 Linux操作系统的应用前景与未来 268

9.1.5 Linux操作系统的特点 269

9.1.6 Linux的发行版 270

9.1.7 Linux的应用软件 274

9.1.8 Linux资源 276

9.2.1 Red Hat Linux 9的获得 277

9.2 Linux的安装 277

9.2.2 计算机硬件准备 278

9.2.3 硬盘空间准备 279

9.2.4 安装方式选择 283

9.2.5 安装前配置 285

9.2.6 进行安装 297

9.2.7 安装后配置 298

9.2.8 安装完成 300

9.2.9 恢复被Windows破坏的GRUB引导程序 300

9.2.10 删除已安装的Red Hat Linux 9 301

9.3.2 系统登录、注销和关机 302

9.3.1 Red Hat Linux启动菜单 302

9.3 Red Hat Linux的启动 302

9.3.3 文本模式与图形模式的切换 306

9.4 Linux文本编辑器Vi的使用 307

9.4.1 执行与结束Vi 307

9.4.2 Vi的3种模式及相互切换 308

9.4.3 编辑模式下的操作 309

9.4.4 命令模式下的操作 311

9.5 Linux中的C语言编译器GCC的使用 312

9.5.1 使用GCC 313

9.5.2 GCC选项 314

9.6.2 /usr子目录 315

9.6 Linux主要目录介绍 315

9.6.1 Linux系统目录 315

9.6.3 /etc子目录 316

9.6.4 /usr/src/linux子目录 316

第10章 Linux的操作命令界面与内核编译 317

10.1 Linux键盘命令 317

10.1.1 通配符 317

10.1.2 登录和退出Linux系统 318

10.1.3 目录操作 319

10.1.4 文件操作 322

10.1.5 时间和帮助 334

10.1.6 用户管理 335

10.1.7 磁盘管理 338

10.1.8 系统管理 340

10.2 Red Hat Linux图形界面基本操作 341

10.2.1 GNOME简介 341

10.2.2 GNOME的组成 341

10.2.3 GNOME的基本使用方法 342

10.2.4 GNOME与KDE互换 351

10.3 Linux批处理作业控制语言(shell编程) 352

10.3.1 制作并运行作业控制程序 352

10.3.2 作业控制语句 354

10.4 Linux系统模块的安装与连接 359

10.4.1 makefile模块之间的关系 359

10.4.2 make实现模块的编译连接 360

10.5 Linux中内核修改与内核重新编译 360

10.5.1 内核重新编译 360

10.5.2 在Linux内核中增加一个系统调用举例 361

第11章 Linux任务管理与内存管理 366

11.1 Linux任务管理 366

11.1.1 进程的数据结构 366

11.1.2 Linux进程状态及其变迁 373

11.1.3 Linux进程创建 374

11.1.4 Linux进程调度 375

11.2 80386体系结构提供的内存管理机制 382

11.2.1 80386 CPU提供的工作模式与地址映射机制 382

11.2.2 80386实模式下的地址映射 382

11.2.3 80386 CPU提供的保护模式 383

11.2.4 80386的cache 385

11.3 Linux地址映射与页表 385

11.3.1 Linux地址映射 385

11.3.2 Linux页数据结构 387

11.4 Linux内存管理 389

11.4.1 Linux用户进程虚拟地址空间 390

11.4.2 Linux的物理内存管理 395

11.4.3 Linux内存映射与缺页中断 403

11.4.4 Linux页交换 405

11.4.5 Linux内存分配策略和系统调用 407

第12章 Linux文件管理 410

12.1 Linux的ext2文件系统 411

12.1.1 ext2文件系统的主要特点 411

12.1.2 ext2文件系统的逻辑结构与物理结构 412

12.1.3 ext2文件系统对存储空间的管理 415

12.1.4 ext2文件目录与文件共享 420

12.2.1 VFS文件系统的主要功能 422

12.2 Linux的虚拟文件系统VFS 422

12.2.2 VFS的通用文件模型 423

12.3 进程与文件系统的关系 430

12.3.1 相关的数据结构 430

12.3.2 进程与文件系统的关系 431

12.4 VFS打开文件管理机构 431

12.4.1 VFS打开文件管理机构的组成 431

12.4.2 3个打开文件数据结构之间的关系 432

12.5 Linux文件系统的各种缓存 434

12.6.1 文件的打开和关闭 435

12.6 Linux文件系统调用 435

12.6.2 文件的读写 437

12.6.3 文件的随机存取 439

12.6.4 文件的保护和控制 440

12.6.5 目录文件管理 444

12.6.6 文件信息查询 446

第13章 Linux设备管理 447

13.1 Linux设备管理概述 447

13.1.1 Linux的设备分类 448

13.1.2 Linux的设备文件 449

13.1.3 设备驱动程序接口 451

13.1.4 块设备的设备文件接口 452

13.2.1 字符设备管理 456

13.2 设备管理与注册 456

13.2.2 块设备管理 459

13.3 块设备的请求队列与读写访问 464

13.3.1 Linux块设备的缓冲机制 464

13.3.2 块设备请求队列的相关数据结构 467

13.3.3 请求队列的初始化与清除 470

13.3.4 块设备读写请求提交过程 470

13.4 设备文件系统 471

13.4.1 devfs的基本概念 471

13.4.2 启用devfs 472

13.4.3 devfs的关键数据结构 473

13.4.4 devfs结点注册函数 476

13.5 设备驱动程序框架 478

13.5.1 设备驱动程序简介 478

13.5.2 设备驱动程序的注册与注销 479

13.5.3 设备的打开与释放 479

13.5.4 设备的读写操作 479

13.5.5 设备的控制操作 480

13.5.6 设备中断与循环查询处理 480

13.6 字符设备驱动程序实例分析 480

13.6.1 编写字符设备驱动程序mydriver.c 481

13.6.3 设备驱动模块mydriver的装载 483

13.6.2 编译设备驱动模块mydriver 483

13.6.4 创建字符设备文件mydriver 484

13.6.5 编写测试程序test.c 484

13.6.6 编译和执行测试程序 485

13.6.7 卸载驱动模块并删除字符设备文件 486

第3篇 实验 488

实验1 Linux的安装 488

实验2-1 Linux的键盘命令 489

实验2-2 Linux的图形界面 492

实验2-3 Linux的批处理 493

实验3-1 Linux进程的创建与父子进程同步 495

实验3-2 Linux子进程映像的重新加载 497

实验4-1 Linux软中断通信 498

实验4-2 Linux管道通信 500

实验4-3 Linux消息缓冲通信 501

实验4-4 Linux共享存储通信 503

实验5 Linux信号量与P、V操作 505

实验6 动态申请内存 507

实验7 Linux文件系统调用 508

实验8 Linux字符设备驱动 509

实验9 在Linux中增加一个新的系统调用函数 510

实验10 网络聊天室的设计 511

参考文献 525

相关图书
作者其它书籍
返回顶部