书籍详情

操作系统现代观点:实验更新版

操作系统现代观点:实验更新版

作者:(美)Gary Nutt著;孟祥山,晏益慧译

出版社:机械工业出版社

出版时间:2004-02-01

ISBN:9787111135302

定价:¥49.00

购买这本书可以去
内容简介
  本书通过各种实例来说明核心的操作系统概念,从而强调理论与实践之间的平衡。本书的特色在于对操作系统基本原理进行了完整的讨论,并补充有代码、算法和实现工具,并有实验练习来帮助加深全面理解。本书可适用于高等院校计算机专业教材,也可作为专业技术人员参考用书。“本书的写作采取了我所能想像到的最好的方式:提供了现代观点以及基于实用操作系统进行编程的清晰思路。”——DavidBinger教授,CentreCollege“我非常喜欢本书所用的方法、表达风格,以及它的可读性.深度和广度。——RichardGuy教授,加利福尼亚大学洛杉矾分校。本书通过各种实例来说明核心的操作系统概念,从而强调理论与实践之间的平衡。本书的特色在于对操作系统基本原理进行了完整的讨论,包括许多代码、算法和实现工具并配有实验练习来加深全面理解。具体内容包括:更新的Linux和Windows2000的相关材料表述了所有操作系统设计中的基本原理在“示例”部分中,通过Linux/UNIX和Windows2000操作系统,阐述了原理是如何在实践中得以应用的在“性能改善”部分的讨论中,解释了系统设计者们是如何利用基本原理来获得高性能系统的实验练习部分通过使用Linux、UNIX以及Windows2000,让学生体验实际的操作系统。
作者简介
  Gary Nutt于1972年获得科罗拉多大学博士学位。之后,曾在施乐公司及贝尔实验室等多家公司工作过。1986年重回科罗拉多大学从事研发与教学。目前是该校计算机科学系教授以及Inktomi公司的首席科学家。他的研究领域主要集中在分布式系统,包括:操作系统、分布式程序设计、分布式虚拟机、存储系统、小型无线局域网络等。曾著有《Kernel Projects for Linux》。
目录
出版者的话
专家指导委员会
译者序
前言
第1章  导言  1
   1.1  计算机与软件  1
   1.1.1  通常的系统软件  2
   1.1.2  资源抽象  2
  示例:磁盘设备抽象  3
   1.1.3  资源共享  4
   1.1.4  没有系统软件的计算机  6
   1.2  操作系统策略  6
  性能改善:多道程序系统  7
   1.2.1  批处理系统  7
  示例:批处理文件  9
   1.2.2  分时系统  10
   1.2.3  个人计算机和工作站  12
   1.2.4  过程控制和实时系统  13
   1.2.5  网络  14
   1.2.6  当代操作系统的起源  14
  示例:Linux的发展  15
  示例:微软Windows家族操作系统  17
   1.3  小结  18
   1.4  习题  19
第2章  使用操作系统  21
  2.1  计算的抽象模型  21
  2.2  资源  21
    2.2.1  文件  22
  示例:POSIX文件  22
  示例:Windows 文件  23
    2.2.2  其他资源  26
  2.3  进程  26
    2.3.1  创建进程  28
  示例:使用FORK. JOIN和 QUIT  29
  示例:UNIX中创建进程  30
  示例:Windows中创建进程  32
  2.4  线程  33
  示例:C线程  35
  2.5  对象  35
  2.6  小结  36
  2.7  习题  36
  实验:Shell程序  37
  实验:一个多线程的Windows控制台
  应用程序  42
第3章  操作系统的组织结构  51
  3.1  OS设计中的要素  51
    3.1.1  性能  51
    3.1.2  保护和安全  52
    3.1.3  正确性  52
    3.1.4  可维护性  53
    3.1.5  商业化因素对操作系统的影响  53
    3.1.6  标准和开放系统  54
  3.2  基本功能  54
    3.2.1  设备管理  55
    3.2.2  进程和资源管理  55
    3.2.3  存储管理  55
    3.2.4  文件管理  56
    3.2.5  功能模块组织结构  56
  3.3  基本实现需考虑的因素  57
    3.3.1  处理机模式  57
    3.3.2  内核  58
    3.3.3  请求获得操作系统服务  58
  3.4  小结  60
  3.5  习题  60
第4章  计算机组织结构  61
  4.1  冯·诺依曼体系结构  61
  4.2  中央处理器  63
    4.2.1  算术逻辑功能单元  63
    4.2.2  控制单元  64
  4.3  存储器  66
  性能改善:机器加速  67
  性能改善:并行处理机  67
  4.4  设备  68
    4.4.1  一般设备特征  69
    4.4.2  设备控制器  69
  示例: 异步串行设备  70
    4.4.3  设备驱动器  71
  4.5  中断  72
  4.6  模式转换:自陷指令  74
  4.7  小结  75
  4.8  习题  76
  实验:内核计数器  78
第5章  设备管理  87
  5.1  设备管理方法  87
    5.1.1  I/O系统的组织结构  87
    5.1.2  使用轮询的直接I/O  88
    5.1.3  中断驱动I/O  89
  性能改善:中断与轮询  91
    5.1.4  存储映射I/O  92
    5.1.5  直接内存访问(DMA)  93
  性能改善:I/O与处理机的并行  94
  5.2  缓冲  95
  5.3  设备驱动程序  97
    5.3.1  设备驱动程序接口  98
    5.3.2  CPU与设备的交互作用  99
    5.3.3  I/O性能优化  100
  5.4  一些设备管理方法  100
    5.4.1  串行通信  101
  示例:UNIX的设备驱动程序  101
    5.4.2  顺序访问的存储设备  102
    5.4.3  随机存取设备  103
  性能改善:旋转设备的访问优化  104
  5.5  小结  108
  5.6  习题  108
  实验:软盘驱动器  109
第6章  进程管理  117
  6.1  进程和资源的系统观点  117
    6.1.1  进程模型实现  117
    6.1.2  资源模型实现  119
  6.2  初始化操作系统  119
  6.3  进程地址空间  121
    6.3.1  生成地址空间  121
    6.3.2  载入程序  122
    6.3.3  地址空间中一致性维护  122
  6.4  进程抽象  123
    6.4.1  进程控制块  124
    6.4.2  进程状态图  124
  6.5  资源抽象  125
  6.6  进程层次结构  127
    6.6.1  精炼化进程管理器  127
    6.6.2  专用的资源分配策略  128
  6.7  小结  129
  6.8  习题  129
  实验:观察OS的运行操作  130
第7章  调度  137
  7.1  调度机制  137
    7.1.1  进程调度机制  137
    7.1.2  保存进程的上下文  138
    7.1.3  自愿的CPU共享  139
    7.1.4  非自愿的CPU共享  141
    7.1.5  性能  141
  7.2  策略选择  142
    7.2.1  分解一个进程成多个小进程  144
  7.3  非剥夺式策略  145
    7.3.1  先来先服务  145
  性能改善:系统负载的近似表示  146
    7.3.2  最短作业优先  147
  性能改善:预测FCFS的等待时间  148
    7.3.3  优先级调度  148
    7.3.4  期限调度  150
  7.4  剥夺式策略  150
    7.4.1  轮转  151
    7.4.2  多级队列  153
  7.5  小结  154
  7.6  习题  155
第8章  同步基本原理  159
  8.1  进程的相互作用  159
  示例:线性方程系统的解  160
    8.1.1  临界区  161
    8.1.2  死锁  164
  8.2  进程协同  165
  8.3  信号量  167
    8.3.1  信号量操作的原理  168
  示例:使用信号量的例子  169
    8.3.2  应用中要考虑的因素  174
  8.4  共享存储器的多处理机  177
  8.5  小结  177
  8.6  习题  177
  实验:有限缓冲区问题  181
第9章  高级同步技术  187
  9.1  可选的同步原语  187
    9.1.1  AND同步  187
    9.1.2  事件  188
  示例:使用事件  189
  示例:UNIX信号  190
  示例:Windows 2000中的分派对象  191
  9.2  管程  192
    9.2.1  操作原理  192
    9.2.2  条件变量  193
  示例:使用管程的例子  195
    9.2.3  应用管程的一些实际状况  198
  9.3  进程间通信  199
    9.3.1  信箱  200
    9.3.2  消息传输协议  201
    9.3.3  使用send和receive操作  201
  示例:同步的IPC  202
    9.3.4  延迟的消息拷贝  203
  9.4  严格排序事件执行  203
  9.5  小结  205
  9.6  习题  205
  实验:精炼Shell程序  207
第10章  死锁  211
  10.1  背景  211
    10.1.1  死锁预防  213
    10.1.2  死锁避免  213
    10.1.3  死锁检测和恢复  213
    10.1.4  人工死锁管理  214
  10.2  一个系统死锁模型  214
  示例:单个资源类型  215
  10.3  死锁预防  216
    10.3.1  占有并等待  216
    10.3.2  循环等待  218
    10.3.3  允许剥夺  218
  10.4  死锁避免  220
    10.4.1  银行家算法  221
  示例:使用银行家算法  222
  10.5  死锁检测和恢复  224
    10.5.1  连续可重用资源  224
    10.5.2  可消费资源  228
    10.5.3  一般资源系统  231
    10.5.4  恢复  231
  10.6  小结  232
  10.7  习题  232
第11章  存储管理  235
  11.1  基本知识  235
    11.1.1  请求主存  235
    11.1.2  将地址空间映射到内存  236
  性能改善:使用存储层次结构减少访问
  时间  237
  示例:地址绑定过程  238
    11.1.3  用于数据结构的动态存储  241
  11.2  内存分配  241
    11.2.1  固定分区存储分配策略  242
    11.2.2  可变分区存储分配策略  243
    11.2.3  现代存储分配策略  245
  性能改善:移动程序的开销  246
  11.3  动态地址重定位  246
    11.3.1  运行时界限检查  250
  示例:扩充小地址空间  250
  11.4  存储管理器策略  251
    11.4.1  交换  251
    11.4.2  虚拟内存  253
  性能改善:使用高速缓存存储器  254
    11.4.3  共享存储器的多处理机  255
  11.5  小结  257
  11.6  习题  257
第12章  虚拟内存  261
  12.1  地址转换  261
    12.1.1  地址空间映射  261
    12.1.2  段式和页式  263
  12.2  页式  263
    12.2.1  虚拟地址转换  265
  性能改善:页表实现  267
  12.3  静态页面调度算法  268
    12.3.1  取策略  268
    12.3.2  请求调页算法  269
    12.3.3  栈算法  272
    12.3.4  实现LRU  273
  性能改善:页面调度性能  274
  12.4  动态页面调度算法  275
    12.4.1  驻留集算法  275
  示例:驻留集算法  示例  277
    12.4.2  驻留集算法实现  278
  性能改善:利用分页实现IPC  279
  示例:Windows 2000 虚拟存储器  280
  示例:Linux 虚拟存储器  283
  12.5  段式  284
    12.5.1  地址转换  284
    12.5.2  实现  286
  示例:多段系统  288
  12.6  小结  290
  12.7  习题  291
第13章  文件管理  293
  13.1  文件  293
    13.1.1  低级文件  295
    13.1.2  结构化文件  297
    13.1.3  数据库管理系统  301
    13.1.4  多媒体存储  302
  13.2  低级文件实现  302
    13.2.1  open和close操作  303
  示例:UNIX中的open和close操作  303
    13.2.2  块管理  305
  示例:UNIX文件结构  307
    13.2.3  读. 写字节流  309
  13.3  支持其他的存储抽象  311
    13.3.1  结构化顺序文件  311
    13.3.2  索引顺序文件  312
    13.3.3  数据库管理系统  312
    13.3.4  多媒体文档  312
  13.4  存储映射(Memory-mapped)文件  313
  示例:Windows 2000中的存储映射文件  313
  13.5  目录  314
    13.5.1  目录结构  315
  示例:几个目录例子  316
  13.6  目录实现  317
    13.6.1  设备目录  317
    13.6.2  文件目录  318
    13.6.3  在层次目录中打开一个文件  318
    13.6.4  安装可移动的文件系统  319
  13.7  小结  319
  13.8  习题  320
  实验:一个简单的文件管理器  321
第14章  保护和安全  327
  14.1  基本原理  327
    14.1.1  策略和机制  328
    14.1.2  策略和机制实现  328
    14.1.3  认证机制  329
    14.1.4  授权机制  329
    14.1.5  加密  330
  14.2  认证  331
    14.2.1  用户认证  331
    14.2.2  网上认证  331
  示例:Kerberos网络认证方法  332
  14.3  内部访问授权  334
    14.3.1  一个资源保护的模型  334
    14.3.2  改变保护状态  336
    14.3.3  保护机制的开销  338
  14.4  实现内部授权  338
    14.4.1  保护域  338
    14.4.2  实现访问矩阵  340
  14.5  密码技术  343
  14.6  小结  344
  14.7  习题  345
第15章  网络  347
  15.1  从计算机通信到网络  347
    15.1.1  通信子网  348
    15.1.2  网络通信协议  349
  15.2  ISO的OSI网络体系结构模型  350
    15.2.1  网络协议的演变  350
    15.2.2  ISO的OSI模型  351
  15.3  低层协议  353
    15.3.1  物理层  354
  性能改善:快速物理层  354
    15.3.2  数据链路层  355
    15.3.3  当代网络  356
  15.4  网络层  358
    15.4.1  寻址  359
    15.4.2  路由  360
    15.4.3  网络层的使用  361
  15.5  传输层  361
    15.5.1  通信端口  362
    15.5.2  数据类型  362
    15.5.3  可靠的通信  363
  性能改善:数据报和虚电路  364
  15.6  使用传输层  364
    15.6.1  命名  364
  示例:域名系统  366
    15.6.2  客户-服务器模式  367
  15.7  小结  369
  15.8  习题  369
  实验:使用TCP/IP协议  370
第16章  远程文件  379
  16.1  通过网络共享信息  379
    16.1.1  显式的文件复制系统  380
    16.1.2  隐含的文件共享  381
    16.1.3  远程辅存接口  382
    16.1.4  工作分布  383
  16.2  远程磁盘系统  384
    16.2.1  远程磁盘操作  386
    16.2.2  性能因素  386
    16.2.3  可靠性  387
    16.2.4  远程磁盘的未来  389
  16.3  远程文件系统  390
    16.3.1  通用的体系结构  390
    16.3.2  块高速缓存  392
    16.3.3  失效后的恢复  393
  16.4  文件级高速缓存  397
  示例:Andrew文件系统  397
  示例:LOCUS文件系统  398
  16.5  目录系统及其实现  400
    16.5.1  文件名字  400
    16.5.2  打开一个文件  401
  16.6  小结  402
  16.7  习题  403
第17章  分布式计算  405
  17.1  分布的进程管理  405
    17.1.1  分解工作  405
    17.1.2  支持分解的计算  407
    17.1.3  一般的进程管理  408
    17.1.4  调度  408
  性能改善:进程迁移和负载平衡  409
    17.1.5  进程协同  409
  17.2  消息传递  412
    17.2.1  消息传递接口  413
    17.2.2  计算范例  414
  17.3  远程过程调用  415
    17.3.1  RPC如何工作  416
    17.3.2  实现RPC  416
  17.4  分布式存储器管理  420
    17.4.1  远程存储器  423
  示例:分布式存储器的实例  423
    17.4.2  分布式虚拟存储器  425
    17.4.3  分布式对象  426
  17.5  小结  427
  17.6  习题  428
第18章  策略与实例  429
  18.1  操作系统的组成及相互关系  429
  18.2  一般性结构问题  430
    18.2.1  软件的组织结构  431
    18.2.2  管理分布式硬件  435
  18.3  传统的UNIX内核  437
    18.3.1  内核  437
    18.3.2  一体化结构  438
    18.3.3  结论  438
  18.4  Linux内核  439
    18.4.1  内核结构  439
    18.4.2  进程和资源管理  442
    18.4.3  存储管理器  446
    18.4.4  文件管理  447
  18.5  Choices:面向对象的操作系统  449
    18.5.1  框架  449
    18.5.2  使用框架实现存储管理器  449
    18.5.3  结论  450
  18.6  微软Windows操作系统  451
    18.6.1  一般性体系结构  451
    18.6.2  硬件抽象层(HAL)  453
    18.6.3  NT内核  453
    18.6.4  NT执行体  455
    18.6.5  NT子系统  459
  18.7  Mach操作系统  459
    18.7.1  进程管理  460
    18.7.2  消息传递  462
    18.7.3  内存管理  464
    18.7.4  结论  466
  18.8  CHORUS操作系统  466
    18.8.1  进程管理  467
    18.8.2  进程间通信  468
    18.8.3  内存管理  468
    18.8.4  结论  468
  18.9  小结  468
  18.10  习题  469
术语表  471
参考文献  483
索引  487
猜您喜欢

读书导航