图书介绍
操作系统教程与实验PDF|Epub|txt|kindle电子书版本网盘下载
![操作系统教程与实验](https://www.shukui.net/cover/9/30588174.jpg)
- 胡明庆,高巍,钟梅编著 著
- 出版社: 北京:清华大学出版社
- ISBN:730213751X
- 出版时间:2007
- 标注页数:525页
- 文件大小:41MB
- 文件页数:545页
- 主题词:操作系统-高等学校-教材
PDF下载
下载说明
操作系统教程与实验PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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
习题124
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
习题231
第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
习题386
第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
习题4143
第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
习题5162
第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
习题6199
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
习题7232
第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
习题8263
9.1.2 Linux的诞生266
9.1.1 UNIX的兴起266
第2篇 Linux操作系统266
9.1 Linux简介266
第9章 Linux应用基础266
9.1.3 开源、自由和Linux267
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 9301
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 执行与结束Vi307
9.4.2 Vi的3种模式及相互切换308
9.4.3 编辑模式下的操作309
9.4.4 命令模式下的操作311
9.5 Linux中的C语言编译器GCC的使用312
9.5.1 使用GCC313
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的cache385
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的虚拟文件系统VFS422
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 启用devfs472
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.c481
13.6.3 设备驱动模块mydriver的装载483
13.6.2 编译设备驱动模块mydriver483
13.6.4 创建字符设备文件mydriver484
13.6.5 编写测试程序test.c484
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