
本书介绍了现代操作系统的基本概念、工作原理和实现技术。全书分为原理篇和实践篇,原理篇包括第1~8章的内容,分别是操作系统引论、进程管理、中断与处理机调度、死锁、存储器管理、设备管理、文件管理和操作系统的安全与保护;实践篇包括第9~第11章的内容,分别是Linux操作系统案例分析、Windows 2000/XP操作系统案例分析和操作系统算法模拟的相关实例。
本书内容丰富,结构清晰,突出基础,注重应用,既可作为普通高等学校计算机专业及其相关专业操作系统课程的教材,也可作为计算机科技人员学习操作系统的参考书。
“操作系统”是计算机科学与技术专业的一门专业基础课,是计算机相关专业学生的必修课程。在知识经济高速发展的今天,软件产业占据核心地位,而操作系统又是计算机系统中的核心系统软件,用于控制和管理计算机系统中的各种软硬件资源,提供用户与计算机之间的接口。操作系统在计算机系统中处于特殊地位,其重要性体现在以下三个方面:
(1) 本课程在计算机学科知识中处于硬件知识和软件知识的结合点;
(2) 本课程中关于进程和线程的概念是多任务应用程序设计的理论基础;
(3) 本课程提供的系统调用界面是应用程序设计所必需的支撑环境。
为此,在教材编写中,注重理论联系实际,即本教材把操作系统原理和实际操作系统的实现有机地结合起来,在每章理论讲解之后给出实例分析,加深读者对抽象概念的理解和掌握。另外,本教材增加实践环节,对Linux和Windows 2000/XP 进行案例分析,提供了相关的编程实例和技术,同时又给出了实现操作系统功能的模拟算法,使读者能够掌握多任务并发的程序设计思想,理解操作系统的工作原理和实现技术,具有一定的实用性。
全书共11章。第1章介绍操作系统的形成和发展、操作系统的特征、功能和类型,操作系统的结构设计;第2章阐述进程的基本概念、进程的描述、进程状态、进程控制和进程同步;第3章介绍中断和处理机调度;第4章介绍死锁概念、死锁原因和必要条件以及解决死锁的方法;第5章介绍存储器管理的思想,包括连续区分配、分区分配和虚拟存储器;第6章、第7章分别介绍设备管理和文件管理;第8章介绍操作系统的安全和保护;第9章、第10章介绍Linux操作系统、Windows 2000/XP操作系统的案例,包括进程创建、进程通信、内存分配和文件系统调用等;第11章给出操作系统的算法模拟实例,可进一步强化读者的实际应用能力。
本书第1~第5章、第8章、第9章由滕艳平编写,第6章、第7章由柴宝仁编写,第10章由李丽丽编写,第11章由谷文成编写,全书由滕艳平统稿。
限于编者水平,本书还会存在一些错误和不当之处,敬请读者批评指正。
作者
2015年3月
第一部分原理篇第1章操作系统引论/3
1.1操作系统的概念/3
1.1.1操作系统的地位和作用/3
1.1.2操作系统定义/4
1.2操作系统的发展过程/4
1.2.1手工操作方式/4
1.2.2脱机输入输出技术/5
1.2.3批处理系统/5
1.2.4分时系统/7
1.2.5实时系统/8
1.2.6网络操作系统/9
1.2.7嵌入式操作系统/9
1.3操作系统的基本特征/10
1.4操作系统的主要功能/11
1.5操作系统的结构设计/12
1.5.1操作系统的设计目标/13
1.5.2操作系统的结构/13
1.6实例分析/15
本章小结/16
习题/18第2章进程管理/19
2.1进程的概念/19
2.1.1程序的顺序执行及其特征/19
2.1.2程序的并发执行及其特征/20
2.1.3进程的定义及其特征/21
2.1.4进程与程序的区别/22
2.2进程描述/23
2.2.1进程控制块/23
2.2.2进程控制块的组织方式/24
2.3进程的状态与转换/25
2.3.1进程的基本状态及其转换/25
2.3.2具有挂起状态的进程转换图/25
2.4进程控制/26
2.4.1进程的创建和撤销/26
2.4.2进程的阻塞与唤醒/27
2.4.3进程的挂起与激活/28
2.4.4线程的概念及实现/29
2.5进程同步/30
2.5.1同步概念/30
2.5.2信号量机制/31
2.5.3经典的进程同步问题/34
2.5.4管程/36
2.6进程通信/37
2.7实例分析/38
本章小结/41
习题/42第3章中断与处理机调度/44
3.1中断技术/44
3.1.1中断及其相关概念/44
3.1.2中断处理过程/45
3.1.3核心态和用户态/45
3.2处理机调度/46
3.2.1三级调度及其模型/46
3.2.2常用调度算法/47
3.2.3实时调度/52
3.3实例分析/54
本章小结/55
习题/56第4章死锁/57
4.1死锁的概念/57
4.2死锁产生的原因和必要条件/57
4.3死锁问题的解决方法/59
4.3.1死锁的预防/59
4.3.2死锁的避免/60
4.3.3死锁的检测/64
4.3.4死锁的解除/65
4.4实例分析/65
本章小结/68
习题/69第5章存储器管理/70
5.1基本概念/70
5.2连续分配方式/72
5.2.1单一连续分配方式/72
5.2.2固定分区分配方式/73
5.2.3动态分区分配方式/74
5.2.4可重定位分区分配方式/74
5.2.5分区分配和回收算法/75
5.3分页存储系统/78
5.3.1分页基本原理/79
5.3.2地址变换机构/80
5.3.3快表与多级页表/81
5.4分段存储管理方式/82
5.4.1分段管理机制的引入/82
5.4.2分段基本原理/82
5.4.3分段的共享和保护/83
5.4.4分段与分页的区别/85
5.5段页式存储管理方式/85
5.6虚拟存储器/85
5.6.1虚拟存储器的概念/86
5.6.2请求分页管理方式/87
5.6.3页面置换算法/88
5.6.4请求分段存储管理方式/91
5.7实例分析/92
本章小结/94
习题/95第6章设备管理/97
6.1I/O系统的组成/97
6.1.1微小型机采用的总线型结构/97
6.1.2大型机采用的主机和通道的结构/98
6.2I/O控制方式/99
6.2.1程序控制I/O方式/99
6.2.2中断方式/101
6.2.3DMA方式/102
6.2.4通道方式/104
6.3I/O设备的类型/106
6.4缓冲管理/107
6.4.1单缓冲/108
6.4.2双缓冲/108
6.4.3循环缓冲/108
6.4.4缓冲池/108
6.5设备的分配/111
6.5.1设备分配需要的数据结构/111
6.5.2设备分配原则/112
6.5.3设备分配通用算法/113
6.5.4SPOOLing系统/113
6.6设备处理/115
6.6.1设备驱动程序的功能/115
6.6.2设备驱动程序的特点/115
6.6.3设备处理过程/116
6.6.4设备处理方式/117
6.6.5磁盘调度算法/117
6.7实例分析/120
本章小结/122
习题/123第7章文件管理/124
7.1文件和文件系统/124
7.1.1文件的概念 /124
7.1.2文件的分类/125
7.1.3文件系统的概念/126
7.1.4文件系统的层次模型/126
7.1.5文件系统的功能/127
7.2文件的组织结构与存取方式/128
7.2.1文件的逻辑结构和存取方式/128
7.2.2文件的物理结构及存储介质/130
7.2.3文件记录的成组与分解/134
7.3文件管理/135
7.3.1一级文件/136
7.3.2二级文件/136
7.3.3多级文件/137
7.4文件存储空间的管理/138
7.4.1空闲块表法/139
7.4.2空闲块链法/139
7.4.3位示图法/140
7.5文件的共享/142
7.5.1早期文件系统实现共享的方法/142
7.5.2现代文件系统实现共享的方法/143
7.6文件的保护和保密/145
7.6.1文件的保护/145
7.6.2文件的保密/148
7.7文件操作/148
7.8实例分析/150
本章小结/151
习题/151第8章操作系统安全概述/152
8.1安全性目标和威胁/152
8.1.1安全性目标/152
8.1.2威胁的类型/153
8.2安全机制/153
8.2.1数据加密机制/153
8.2.2数字证书/156
8.2.3身份认证机制/157
8.2.4审计机制/157
8.3硬件保护机制/158
8.3.1存储保护机制/158
8.3.2运行保护机制/158
8.4访问控制机制/159
8.5安全评价标准/162
8.6实例分析/163
本章小结/164
习题/164第二部分实践篇第9章Linux操作系统案例分析/169
9.1Linux概述与基本操作/169
9.1.1Linux操作系统简介/169
9.1.2Linux用户接口/170
9.1.3Linux文件系统/172
9.1.4Linux文本编辑器与编译器/174
9.2Linux进程及命令管理/176
9.2.1Linux系统中的进程/176
9.2.2Linux进程管理命令/178
9.2.3Linux守护进程/180
9.3Linux系统调用及编程实例/181
9.3.1进程管理的API实例分析/181
9.3.2进程通信的API实例分析/186
9.3.3内存管理的API实例分析/190
9.3.4文件管理的API实例分析/193
本章小结/195
习题/195第10章Windows 2000/XP操作系统案例分析/197
10.1Windows 2000/XP操作系统简介/197
10.2Windows 2000/XP体系结构/197
10.3Windows 2000/XP线程调度/198
10.4Windows 2000/XP虚拟存储管理/200
10.5Windows 2000/XP文件系统/201
10.6Windows 2000/XP I/O设备管理/204
10.7Windows 2000/XP实例分析/206
10.7.1GUI应用程序/206
10.7.2进程对象/207
10.7.3进程创建/208
10.7.4虚拟内存机制/210
10.7.5文件输入输出/211
本章小结/214
习题/214第11章操作系统算法模拟实例/215
11.1单处理机系统进程调度/215
11.2避免死锁的银行家算法/219
11.3存储器分配与回收/227
11.4页面置换算法/232
11.5简单文件系统的设计/236
11.6SPOOLing系统模拟设计/239
本章小结/244
习题/244参考文献/246
第1章认识Web应用程序/3
1.1什么是Web应用程序/3
1.1.1客户端和服务端/4
1.1.2ASP.NET Web应用程序简介/4
1.2发布Web应用程序/5
1.2.1安装.NET Framework4.0/5
1.2.2安装IIS/5
1.2.3确定要发布的Web应用程序/7
1.2.4设置参数发布Web应用程序/8
1.3第一个ASP.NET应用程序/13
1.3.1新建ASP.NET网站/13
1.3.2分析第一个ASP.NET应用程序/16
1.3.3控件与事件/20
1.4本章小结/22
1.5本章习题/22
1.5.1理论练习/22
1.5.2实践操作/23第2章Web服务器控件/24
2.1Web服务器控件简介/24
2.1.1HTML控件与服务器控件/24
2.1.2Web服务器控件工作原理/25
2.2标准Web服务器控件/25
2.2.1Label控件/26
2.2.2Button/27
2.2.3TextBox控件/27
2.2.4RadioButton/27
2.2.5CheckBox/28
2.2.6DropDownList/29
2.2.7Image/30
2.2.8HyperLink/30
2.2.9综合练习/31
2.3ASP.NET验证控件/33
2.3.1RequiredFieldValidator控件/33
2.3.2CompareValidator/35
2.3.3RangeValidator/36
2.3.4RegularExpressionValidator/37
2.3.5ValidationSummary/38
2.4本章小结/39
2.5本章习题/40
2.5.1理论练习/40
2.5.2实践操作/40第3章C#语言与面向对象编程/41
3.1变量与常量/41
3.1.1变量/41
3.1.2常量/42
3.1.3数据类型转换/42
3.2运算符/43
3.3数组/44
3.4方法/45
3.5程序控制语句/46
3.5.1选择语句/46
3.5.2循环语句/48
3.5.3跳转语句/52
3.6对象和类/53
3.6.1创建类和对象/53
3.6.2属性/55
3.6.3构造方法和析构方法/57
3.6.4方法重载/58
3.7本章小结/59
3.8本章习题/59
3.8.1理论练习/59
3.8.2实践操作/60第4章Web页面的数据库访问技术/61
4.1ADO.NET数据库访问模型/61
4.1.1SQL语句/62
4.1.2SqlConnection对象/63
4.1.3SqlCommand对象/64
4.1.4DataSet和DataTable/64
4.1.5SqlDataAdapter对象/65
4.2ADO.NET操作数据库/65
4.2.1从数据库中查询数据/66
4.2.2修改数据库表中的数据/69
4.2.3往数据库表中添加一行数据/71
4.2.4删除数据库表中的数据/73
4.3编写数据库操作类/75
4.3.1配置数据库连接字符串/75
4.3.2创建数据库操作类/76
4.3.3使用DataBase类/79
4.4本章小结/81
4.5本章习题/81
4.5.1理论练习/81
4.5.2实践操作/82第5章ASP.NET内置对象/83
5.1Response对象/83
5.2Request对象/85
5.3Cookie对象/88
5.4Session对象/89
5.5Application对象/91
5.6Server对象/92
5.7本章小结/94
5.8本章习题/94
5.8.1理论练习/94
5.8.2实践操作/95第二篇实战篇第6章简易网上书店总体设计/99
6.1简易网上书店页面组成/99
6.1.1系统页面组成/99
6.1.2系统主要页面界面/100
6.2数据库设计/105
6.3CSS+div布局网站首页/108
6.3.1CSS概述/109
6.3.2CSS盒子模型/114
6.3.3网站首页布局/115
6.4本章小结/120
6.5本章习题/121
6.5.1理论练习/121
6.5.2实践操作/121第7章首页设计/122
7.1首页中的母版页/122
7.1.1创建和使用母版页/123
7.1.2在母版页中布局/125
7.1.3#head区设计/127
7.2菜单的设计/128
7.2.1Menu控件概述/128
7.2.2首页中菜单设计/129
7.3Repeater控件显示图书分类/130
7.3.1Repeater控件概述/130
7.3.2实现图书分类/131
7.4DataList控件显示图书/132
7.5搜索功能实现/134
7.6站点导航/135
7.7登录功能实现/137
7.8本章小结/138
7.9本章习题/139
7.9.1理论练习/139
7.9.2实践操作/139第8章实现购物流程/140
8.1实现注册页面/140
8.1.1注册页面设计/140
8.1.2注册代码设计/141
8.1.3注册页面测试/142
8.2实现我的信息/143
8.2.1页面设计/143
8.2.2代码实现/144
8.2.3测试/146
8.3图书详细页面/147
8.3.1页面设计/148
8.3.2代码实现/150
8.4我的购物车/151
8.4.1购物车业务流程/151
8.4.2页面设计/155
8.4.3代码实现/158
8.5我的订单/169
8.6本章小结/172
8.7本章习题/172
8.7.1理论练习/172
8.7.2实践操作/173第9章后台管理/174
9.1后台管理母版/174
9.1.1TreeView控件管理后台页面/174
9.1.2后台管理员登录/175
9.2管理员信息编辑/176
9.3图书类别管理/178
9.3.1添加类别/178
9.3.2编辑类别/181
9.4图书管理/184
9.4.1添加图书/184
9.4.2编辑图书/187
9.5订单管理/191
9.5.1页面设计/191
9.5.2代码实现/193
9.6本章小结/195
9.7本章习题/195
9.7.1理论练习/195
9.7.2实践操作/196
参考文献/197
5,6,9