书馨卡帮你省薪 2024个人购书报告 2024中图网年度报告
欢迎光临中图网 请 | 注册
> >
操作系统设计原理(第二版)

操作系统设计原理(第二版)

出版社:科学出版社出版时间:2021-09-01
开本: 其他 页数: 272
中 图 价:¥49.6(8.3折) 定价  ¥59.8 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

操作系统设计原理(第二版) 版权信息

  • ISBN:9787030694379
  • 条形码:9787030694379 ; 978-7-03-069437-9
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 所属分类:>

操作系统设计原理(第二版) 内容简介

本书系统地讲述了操作系统的基本概念、原理和方法,主要内容包括:操作系统概述、进程与线程、互斥与同步、处理机调度、内存管理、输入/输出管理、文件管理、计算机系统安全、新型操作系统、操作系统设计与实现等。在各个章的基本原理和方法介绍后,均以当代很流行的操作系统linux、unix和windows为例,讲述当代操作系统的实现原理和特点,同时简介研究开发新进展。很后二章章专门介绍了嵌入式操作系统、分布式操作系统和虚拟技术等当代新型的操作系统以及操作系统设计与实现应考虑的问题。

操作系统设计原理(第二版) 目录

目录
第1章 操作系统概述 1
1.1 操作系统的定义 1
1.1.1 基本概念 1
1.1.2 计算机系统的视图 2
1.1.3 操作系统的基本功能 2
1.2 操作系统的形成和发展 4
1.3 操作系统的分类 5
1.4 操作系统的运行环境 8
1.5 操作系统的结构 9
1.6 现代操作系统 11
1.6.1 现代操作系统技术特性 11
1.6.2 UNIX技术特性 12
1.6.3 Linux技术特性 14
1.6.4 Windows Server技术特性 14
本章小结 15
习题1 16
第2章 进程与线程 17
2.1 多道程序与并发执行 17
2.1.1 单道程序的顺序执行 17
2.1.2 多道程序的并发执行 18
2.2 进程模型 20
2.2.1 进程的概念 20
2.2.2 进程的实体 22
2.2.3 进程状态和转换 24
2.2.4 进程控制 25
2.3 线程模型 27
2.3.1 线程的概念 27
2.3.2 线程与进程的比较 28
2.3.3 线程的实现 30
2.3.4 线程调度激发 32
2.4 多核、多线程与超线程 32
2.5 进程、线程管理实例 34
本章小结 35
习题2 35
第3章 互斥与同步 37
3.1 进程互斥 37
3.1.1 并发原理 37
3.1.2 临界资源与临界区 40
3.1.3 互斥的软、硬件实现方法 41
3.1.4 信号量和P、V操作 44
3.2 进程同步 47
3.2.1 进程同步概念 47
3.2.2 用P、V操作实现同步 48
3.3 进程通信 50
3.3.1 进程通信的类型 50
3.3.2 进程通信中的问题 51
3.3.3 消息传递 52
3.4 死锁 55
3.4.1 死锁的概念 55
3.4.2 死锁的必要条件 56
3.4.3 死锁的防止 57
3.4.4 死锁的避免 58
3.4.5 死锁检测与恢复 59
3.4.6 两阶段加锁 61
3.4.7 活锁 61
3.4.8 饥饿 62
3.5 经典问题 63
3.5.1 读者-写者问题 63
3.5.2 哲学家进餐问题 65
3.5.3 打瞌睡的理发师问题 66
3.6 多核环境下的进程同步 67
3.7 进程同步与通信实例 69
本章小结 69
习题3 69
第4章 处理机调度 72
4.1 处理机调度类型 72
4.1.1 长程调度 73
4.1.2 中程调度 73
4.1.3 短程调度 73
4.2 单处理机调度算法 74
4.2.1 处理机调度功能与标准 74
4.2.2 常用的处理机调度算法 75
4.3 多处理机调度 79
4.3.1 多处理机调度考虑的问题 79
4.3.2 多处理机的进程调度 81
4.3.3 多处理机的线程调度 82
4.4 实时调度 84
4.4.1 实时调度特点 84
4.4.2 常用的实时调度算法 85
4.5 处理机调度实例 87
4.6 处理机调度新进展 87
本章小结 90
习题4 91
第5章 内存管理 93
5.1 存储管理的功能 93
5.1.1 计算机系统的多级存储结构 93
5.1.2 存储管理的任务和功能 94
5.2 存储分配的几种形式与重定位 95
5.2.1 存储分配的几种形式 95
5.2.2 重定位 96
5.2.3 覆盖与交换 98
5.3 单道环境下的存储管理 99
5.4 分区存储管理 100
5.4.1 固定分区法 100
5.4.2 动态分区法 101
5.5 页式存储管理 106
5.5.1 概述 106
5.5.2 静态分页管理 107
5.5.3 虚拟页式存储管理 112
5.5.4 分页存储管理的优缺点 123
5.6 段式及段页式存储管理 123
5.6.1 段式存储管理 123
5.6.2 段式虚拟存储管理 125
5.6.3 段页式虚拟存储管理 128
5.7 内存管理实例 130
5.8 内存管理设计与实现问题 131
5.8.1 内存管理设计问题 131
5.8.2 内存管理实现问题 133
本章小结 135
习题5 136
第6章 文件管理 138
6.1 文件 138
6.1.1 文件命名 138
6.1.2 文件类型 139
6.1.3 文件属性 139
6.1.4 文件的存取方法 141
6.1.5 文件操作 141
6.1.6 文件的逻辑结构 141
6.1.7 文件系统的布局 145
6.2 文件目录 145
6.2.1 文件目录内容 146
6.2.2 文件目录结构 147
6.3 文件共享与保护 151
6.3.1 文件共享 151
6.3.2 文件保护 154
6.4 文件恢复 154
6.4.1 文件系统的一致性 154
6.4.2 日志文件系统 155
6.5 文件存储空间的管理 156
6.5.1 空闲表法 156
6.5.2 空闲链表法 157
6.5.3 位示图法 157
6.5.4 链接索引表法 158
6.6 文件分配 158
6.6.1 连续分配 159
6.6.2 链接分配 159
6.6.3 索引链接分配 161
6.7 文件系统性能 162
6.7.1 高速缓存 162
6.7.2 预读取与异步写 163
6.8 文件管理实例 164
本章小结 164
习题6 164
第7章 I/O管理 167
7.1 I/O管理概述 167
7.1.1 I/O管理目标与功能 167
7.1.2 I/O系统组成 168
7.2 I/O控制方式 173
7.2.1 程序直接控制方式 173
7.2.2 中断控制方式 174
7.2.3 DMA控制方式 175
7.2.4 通道控制方式 176
7.3 I/O缓冲 179
7.3.1 单缓冲 179
7.3.2 双缓冲 180
7.3.3 循环缓冲 180
7.3.4 缓冲池 181
7.3.5 缓冲的作用 182
7.4 设备驱动程序 182
7.5 设备分配 184
7.5.1 设备分配原则与分配方式 184
7.5.2 设备分配时应考虑的因素 185
7.5.3 设备分配中的数据结构 187
7.5.4 I/O设备分配的基本流程 188
7.5.5 SPOOLing技术 188
7.6 磁盘存储器的管理 190
7.6.1 磁盘性能参数 191
7.6.2 磁盘调度 192
7.6.3 磁盘阵列 195
7.7 时钟管理和电源管理 199
7.7.1 时钟管理 199
7.7.2 电源管理 202
7.8 I/O管理实例 205
本章小结 205
习题7 206
第8章 操作系统安全 208
8.1 概述 208
8.1.1 计算机系统安全性 208
8.1.2 操作系统安全性 210
8.1.3 基本概念 211
8.2 安全评估与标准 212
8.2.1 TCSEC 213
8.2.2 国标GB 17859—1999 214
8.2.3 CC标准 216
8.3 安全机制 216
8.3.1 标识与鉴别机制 217
8.3.2 访问控制 219
8.3.3 可信通路 221
8.3.4 安全审计机制 222
8.3.5 存储保护、运行保护和I/O保护 222
8.3.6 加密技术 223
8.3.7 恶意代码 224
8.3.8 备份与容错 227
8.3.9 隐通道分析与处理 227
8.4 安全模型 228
8.4.1 Bell-LaPadula模型 228
8.4.2 Biba模型 229
8.4.3 Clark-Wilson完整性模型 229
8.4.4 中国墙模型 230
8.4.5 RBAC模型 230
8.5 Flask体系结构 231
8.6 安全操作系统简介 232
8.7 操作系统安全研究 232
本章小结 232
习题8 232
第9章 新型操作系统简介 233
9.1 嵌入式操作系统 233
9.1.1 EOS简介 234
9.1.2 微软的嵌入式操作系统 234
9.1.3 嵌入式Linux与安卓 235
9.1.4 TinyOS 237
9.1.5 VxWorks 238
9.1.6 嵌入式操作系统的发展方向 239
9.2 多媒体操作系统 240
9.2.1 多媒体进程的调度 240
9.2.2 多媒体的文件系统 242
9.2.3 多媒体数据的存储 242
9.2.4 多媒体数据的高速缓存 243
9.2.5 多媒体数据的磁盘调度 243
9.3 分布式操作系统 244
9.3.1 客户机/服务器计算模型 244
9.3.2 集群系统 245
9.3.3 MapReduce计算模型 246
9.4 虚拟化技术 249
本章小结 253
习题9 253
第10章 操作系统设计问题 254
10.1 操作系统设计目标 254
10.2 界面设计 255
10.3 操作系统设计实现 256
10.4 性能优化 259
10.5 项目管理 260
本章小结 262
习题10 262
参考文献 264
展开全部

操作系统设计原理(第二版) 节选

第1章 操作系统概述 知识要点:包括操作系统的定义、操作系统的形成和发展、操作系统的分类、操作系统的运行环境、操作系统的结构和现代操作系统。要求粗略了解支撑操作系统执行的核心硬件以及操作系统的层次结构。初步理解不同类型操作系统之间的异同。熟悉操作系统的发展概况。 预习准备:回想平时接触和使用的不同类型的操作系统,思考这些操作系统之间的共同特征与区别。 兴趣实践:收集整理所接触和了解的操作系统,在后续学习中比较这些不同类型操作系统各方面的异同。 探索思考:思考书中给出的操作系统定义、分类和结构与自己日常认识的差异,思考不同应用领域对操作系统的不同需求。 1.1 操作系统的定义 一个完整的计算机系统,不论大型机、小型机还是微型机,都是由硬件和软件两大部分组成的。通常硬件是指计算机物理装置本身,也就是指计算机的各种处理器(如中央处理器)、存储器、I/O设备和通信装置等。软件是相对硬件而言的,它是指由计算机硬件执行来完成一定任务的程序、数据及有关文档。操作系统正是计算机系统的一种大型系统软件。 本章将讨论操作系统的定义,分析操作系统的功能与类型,介绍操作系统的形成和发展,并对操作系统运行的硬件环境有选择地进行介绍。本章*后介绍UNIX、Linux以及Windows NT操作系统的特点。 1.1.1 基本概念 计算机软件通常分成两大类,即系统软件和应用软件。系统软件用于计算机的管理、维护、控制和运行以及对运行的程序进行翻译、装入等服务工作。系统软件本身又可分成三部分,即操作系统、语言处理系统和常用的例行服务程序。语言处理系统包括各种语言的编译程序、解释程序和汇编程序。服务程序的种类很多,通常包括库管理程序、连接装配程序、诊断排错程序等。应用软件是指那些为了某一类应用需要而设计的程序或用户为解决某个特定问题而编制的程序或程序系统。 操作系统是计算机系统的一种系统软件,它用于管理计算机的资源和控制程序的执行。一个程序只有在通过操作系统获得必需的资源后才能执行。例如,程序在执行前必须获得主存储器资源才能装入,它的执行要依靠处理机,执行中还可能要用外围设备输入或输出数据,或者使用计算机系统中的文件以及调用子程序等。计算机配置了操作系统后可以提高效率,便于使用。现在,操作系统已成为计算机系统中不可缺少的一种系统软件。 1.1.2 计算机系统的视图 一个计算机系统可以认为是由硬件和软件按层次方式构成的。图1-1表示了一个四层结构,每层表示一组功能和一个接口。接口是用于在该层内实现功能的一组可见的约定,我们把接口的这些特性称为计算机系统的一个视图。 图1-1 计算机系统的分层和视图 由图1-1可见,硬件是软件建立与活动的基础,而软件是对硬件功能的扩展。操作系统是核心的系统软件,与硬件的关系尤为密切,它不仅对硬件资源直接实施控制、管理,而且通过与硬件动作的配合来完成很多功能。所以操作系统的运行必须依靠良好的硬件支撑环境。 硬件层表示机器的可见结构,它包括可执行一组指令的处理机、若干个供程序使用的寄存器和用于访问存储器的寻址模式,还包含通道、控制器、处理机和存储器之间的关系。它是操作系统工作的基础,因此,对操作系统的设计者来说,看见的一个系统视图就是硬件层。 操作系统对硬件层做**次功能扩充,以便为编译程序的设计者和应用程序员提供有效的服务。它提供接口以便容易地开发系统程序。操作系统是整个计算机系统的控制管理中心,其中包括对其他各种软件的控制和管理,如编辑程序、编译程序、连接装配程序、数据库系统和各种软件工具等。操作系统对它们既具有支配权力,又为其运行建造环境。操作系统提供的接口并不能完全隐藏硬件特性,因此,一个编译程序的设计者需要掌握某些机器特性的知识。编译程序设计者可使用操作系统接口和硬件指令集合的某些部分。类似地,一个使用汇编语言的程序员能利用操作系统和硬件提供的功能合集设计汇编程序。因此,向编译程序设计者展示的一个系统视图除了操作系统层外,还应加上操作系统未被隐藏的硬件层的特性,它们在图1-1中分别用实线箭头与虚线箭头表示。 同样,应用程序员的视图除了语言处理层外,还有未被隐藏的部分操作系统层和硬件层的特性。而用户的视图除了应用层外,还有未被隐藏的部分语言处理层、操作系统层及硬件层的特性。它们在图1-1中也分别用实线箭头和虚线箭头表示。 用户包括几种不同身份的人:一般用户、操作员和管理员等。一般用户是计算机系统环境中的顾客,他们利用计算机来完成各种有用的任务。操作系统对外提供的功能就是它与一般用户之间的接口。操作员是负责启动系统、监督系统状态、对设备(如磁带、打印机)实施操作的人员,他们是系统的*终控制者。管理员负责制定系统调度政策,确立维修、改进方案。 1.1.3 操作系统的基本功能 前面说明了操作系统的基础地位。使用机器需首先装入操作系统,计算机配置操作系统后可以提高效率,便于使用。可以说,操作系统是计算机系统的一个聪明能干的“大管家”。下面从两方面简要介绍操作系统需提供的基本功能。 1. 人机交互界面 通常操作系统需要提供人机交互界面功能为用户提供各种计算服务。用户可直接使用键盘命令、Shell命令语言或图形用户界面(graphical user interface, GUI)与计算机交互,表达计算要求,由操作系统人机交互界面功能模块分析处理并调用系统内部功能模块(系统调用),*终实现用户的计算任务并反馈结果。这两项是操作系统与用户联系的软接口,通常称为“界面”。它和实用层软件一起提供用户开发和运行应用软件的环境与手段。这是操作系统为用户提供的基本公共服务。 事实上,用户若没有操作系统的支持服务,即使是简单的操作,也显得十分吃力。例如,用户想显示存在磁盘上的一个文件FILE.TXT。借助UNIX操作系统做这项操作,只需键入命令:$cat FILE.TXT↙即可实现,十分简便。然而,若无操作系统支持,则用户需使用难记、难认的机器代码编写4个模块以上的程序,如输入程序、读盘和搜索文件程序、装入内存程序和驱动显示程序。这些程序中涉及内存、外设中若干物理特性和状态参数,并且需要字符库和调试软件的支持。对于一般用户,做到这些是很难的。有了操作系统的服务,用户便可驾驭自如了。如今,大部分操作系统都提供了图形用户界面功能,用户操作计算机是一种所见即所得的方式,使用计算机更加方便。应该说,目前微机系统推广应用得如此之广,和它配置了功能强、使用简便的操作系统人机交互界面有着密切的关系。 2. 资源管理 使用计算机,除方便用户以外,还需使它高效率地运转。为此,需要合理地分配使用各种软、硬件资源。例如,使慢速的外设与高速的CPU相匹配的问题;内存空间紧张、如何提高外部存储器效率的问题;众多的文件信息如何组织、存取的问题。 从资源管理的观点来看,操作系统的功能主要包括处理机与进程管理、存储器管理、文件管理、设备管理和网络管理。 (1)处理机与进程管理。处理机与进程管理功能包括调度、进程控制、进程同步与进程通信等。 调度包括作业调度和进程调度。作业调度是考虑充分利用系统资源的要求,将用户的算题按照一定的策略,为它分配资源,调入内存并创建进程,使之有机会获得系统的服务。通常在大中型操作系统中才提供作业管理的功能。一般微机操作系统以及单用户操作系统不考虑作业管理的功能。进程调度就是考虑何时为进程分配处理机并占有多长时间,让它真正占有处理机处理算题。进程控制就是控制进程的运行状态的变化,让进程有序地时走时停。进程同步就是解决进程之间使用资源的竞争和协作问题。进程通信就是使进程之间能够为算题需要传输相关信息。 (2)存储器管理。存储器管理主要管理主存储器资源。存储器管理根据用户程序的要求给它分配主存储器,并将程序的逻辑地址空间转换为物理地址空间,同时还要考虑内存空间的贡献和保护用户存放在主存储器中的程序和数据不被破坏,此外还要考虑如何用有限的内存运行更多和更大的程序,即主存扩充问题。操作系统的这一部分功能与硬件存储器的组织结构密切相关,操作系统的设计者应根据硬件情况和使用需要,采用各种相应的有效调度策略与保护措施。 (3)文件管理。文件管理支持对文件的存储、检索和修改等操作以及对文件保护的功能。早期的管理程序仅提供一个简单的文件系统,而现代的操作系统一般都提供功能复杂的文件系统,多数还提供数据库系统来实现信息的管理工作。 (4)设备管理。设备管理负责管理各类外围设备,包括分配、启动和故障处理等。为了提高效率,还引入了逻辑(虚拟)设备的概念,以实现预输入和缓输出的功能。 (5)网络管理。目前的多数系统都有联网计算要求,因此操作系统还需提供网络资源管理功能,以实现信息的网络传输、网络资源服务和网络安全防护。 1.2 操作系统的形成和发展 **代计算机运行速度较慢,外围设备较少,因而,编制和运行一个程序也比较简单。那时,程序员往往直接使用机器语言来编制程序,这种“目标程序”被人为地穿在卡片(或纸带)上,并用一个引导程序装入主存储器。程序员通过控制台开关来调试和操作运行程序。在这期间,整个计算机都是被一个程序员占有。因而,不需要专门的操作员,程序员身兼两职——既是操作员,也是程序员。 随着计算机的发展,协助用户使用计算机的软件——原始汇编系统产生了。在这样的系统中,数字操作码被记忆码代替,程序按一个固定格式的汇编语言书写。程序员(或系统程序员)预先编制一个汇编解释程序,它把用汇编语言书写的“源程序”解释成计算机能直接执行的机器语言表达的“目标程序”。因而,在这样的计算机系统中,首先需要把这个汇编解释程序和源程序都穿在卡片或纸带上,然后再装入和执行。如图1-2所示,整个计算分为两个阶段,六个计算步,每步的功能如下: 图1-2 原始汇编和执行过程 (1)通过引导程序把汇编解释程序装入计算机中。 (2)通过汇编解释程序读入源程序,并执行汇编过程。 (3)产生一个目标程序,并输出到卡片或纸带上。 (4)通过引导程序把目标程序装入计算机。 (5)通过目标程序读入卡片数据或纸带数据。 (6)产生计算结果,并输出到卡片或纸带上。 其中(1)~(3)三个计算步是汇编阶段,(4)~(6)三个计算步是执行阶段。 到20世纪60年代,硬件技术取得了两个方面的重大进展:一是通道技术的引进,二是中断技术的发展,再加上存储容量的增长,这就给软件的发展奠定了物质基础。在这期间,先后出现了FORTRAN和ALGOL等程序设计语言与相应的编译程序以及程序库的使用等。同时,出现了对计算机硬件和软件进行管理与调度的软件——管理程序,即初级的操作系统。 管理程序的主要功能是:向用户提供多个共享资源来运行他们的程序;帮助操作员控制用户程序的执行和管理计算机的部分资源。 有了管理程序以后,用户不必亲自上机操作,而是由专业化的操作员代劳。操作员只要通过控制台打字机打入控制命令就可以操纵计算机,操作员打入的命令由管理程序来识别和执行。这样,不仅操作速度快,而且操作员可以方便地进行一些较为复杂的控制。当计算机在运行中发生错误或意外时,管理程序通过计算机从控制台打字机上输出信息向操作员报告。这种输出信息不仅比“亮灯显示”表达的信息更为丰富,操作员也易于理解。总之,用这种半自动方式来控制计算机不仅提高了效率,而且方便使用。 到了第二代计算机后期,特别是进入第三代以后,软件有了很大的发展,它的作用也日益显著。同时,硬件也有了很大的发展,特别是主存储器容量的增加和大容量辅助存储器“磁盘”的出现,给发展更先进的管理程序准备好了物质条件。另外,计算机应用的日益

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服