图书介绍
计算机科学丛书 计算机系统 系统架构与操作系统的高度集成PDF|Epub|txt|kindle电子书版本下载
- (美)拉姆阿堪德兰,(美)莱希著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111506362
- 出版时间:2015
- 标注页数:530页
- 文件大小:105MB
- 文件页数:550页
- 主题词:计算机系统
PDF下载
下载说明
计算机科学丛书 计算机系统 系统架构与操作系统的高度集成PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1盒子里有什么1
1.2计算机系统中的抽象层次1
1.3操作系统的作用3
1.4盒子里正在发生什么事5
1.4.1在计算机上启动应用程序7
1.5计算机硬件的演化7
1.6操作系统的演化9
1.7本书导读9
练习题10
参考文献注释和扩展阅读10
第2章 处理器体系结构12
2.1处理器设计涉及什么12
2.2如何设计指令集13
2.3常见的高级语言功能集13
2.4表达式和赋值语句14
2.4.1操作数放在哪里14
2.4.2在指令中如何指定内存地址17
2.4.3每个操作数应该有多宽18
2.4.4字节序19
2.4.5操作数打包以及字操作数的对齐21
2.5高级数据抽象22
2.5.1结构23
2.5.2数组23
2.6条件语句和循环24
2.6.1 if-then-else语句25
2.6.2 switch语句26
2.6.3循环语句27
2.7检查点27
2.8编译函数调用27
2.8.1调用者的状态28
2.8.2过程调用剩余的工作30
2.8.3软件惯例31
2.8.4活动记录35
2.8.5递归36
2.8.6帧指针36
2.9指令集体系结构选择38
2.9.1额外的指令38
2.9.2额外的寻址模式39
2.9.3体系结构类型39
2.9.4指令格式39
2.10 LC-2200指令集42
2.10.1指令格式42
2.10.2 LC-2200寄存器组43
2.11影响处理器设计的问题44
2.11.1指令集44
2.11.2应用程序对指令集设计的影响45
2.11.3其他驱动处理器设计的问题46
小结47
练习题47
参考文献注释和扩展阅读49
第3章 处理器实现51
3.1体系结构与实现51
3.2处理器实现涉及什么51
3.3重要的硬件概念52
3.3.1电路52
3.3.2数据通路的硬件资源52
3.3.3边沿沿触发逻辑53
3.3.4连接数据通路元件54
3.3.5基于总线的设计57
3.3.6有限状态机59
3.4数据通路设计60
3.4.1 ISA与数据通路宽度61
3.4.2时钟脉冲宽度62
3.4.3检查点62
3.5控制单元设计62
3.5.1 ROM加状态寄存器63
3.5.2 FETCH宏状态65
3.5.3 DECODE宏状态68
3.5.4 EXECUTE宏状态:ADD指令(R型指令部分)68
3.5.5 EXECUTE宏状态:NAND指令(R型指令部分)71
3.5.6 EXECUTE宏状态:JALR指令(J型指令部分)71
3.5.7 EXECUTE宏状态:LW指令(I型指令部分)72
3.5.8 EXECUTE宏状态:SW和ADDI指令(I型指令部分)75
3.5.9 EXECUTE宏状态:BEQ指令(I型指令部分)75
3.5.10设计微程序中的条件分支78
3.5.11再谈DECODE宏状态79
3.6控制单元设计的另一种选择80
3.6.1微程序控制80
3.6.2硬连线控制81
3.6.3在两种控制设计风格中选择82
小结82
历史回顾83
练习题84
参考文献注释和扩展阅读86
第4章 中断、陷入及异常87
4.1程序执行中的不连续性88
4.2处理程序不连续性89
4.3处理程序不连续性的体系结构改进91
4.3.1修改FSM91
4.3.2一个简单的中断处理过程92
4.3.3处理级联中断92
4.3.4从处理过程中返回95
4.3.5检查点95
4.4处理程序不连续性的硬件细节96
4.4.1中断的数据通路细节96
4.4.2获得处理过程地址的细节97
4.4.3保存/恢复栈99
4.5信息汇总100
4.5.1体系结构和硬件改进总结100
4.5.2工作中的中断机制100
小结102
练习题103
参考文献注释和扩展阅读104
第5章 处理器性能与流水线处理器的设计105
5.1时间和空间性能指标105
5.2指令频率107
5.3基准测试程序108
5.4提升处理器的性能111
5.5加速比112
5.6提升处理器的吞吐量114
5.7流水线简介115
5.8指令处理流水线115
5.9简单指令流水线的问题117
5.10修正指令流水线里的问题118
5.11指令流水线的数据通路元件120
5.12针对流水线的体系结构与实现121
5.12.1指令穿过流水线的过程详解122
5.12.2流水线寄存器的设计124
5.12.3各个阶段的实现125
5.13冒险125
5.13.1结构性冒险126
5.13.2数据冒险126
5.13.3控制冒险135
5.13.4冒险总结141
5.14在流水线处理器里处理程序不连续性142
5.15处理器设计的高级话题144
5.15.1指令级并行144
5.15.2更深的流水线145
5.15.3在乱序执行下再次讨论程序不连续性147
5.15.4管理共享资源148
5.15.5功耗149
5.15.6多核处理器设计149
5.15.7 Intel Core微架构:一个流水线150
小结151
历史回顾152
练习题152
参考文献注释和扩展阅读156
第6章 处理器调度157
6.1引言157
6.2程序和进程158
6.3调度环境161
6.4调度基础162
6.5性能指标165
6.6非抢占式调度算法167
6.6.1先到先服务167
6.6.2最短作业优先170
6.6.3优先级171
6.7抢占式调度算法172
6.7.1轮转调度器175
6.8结合优先级和抢占178
6.9元调度器178
6.10评价179
6.11调度对处理器体系结构的影响180
小结和展望181
Linux调度器——一个案例研究181
历史回顾183
练习题185
参考文献注释和扩展阅读186
第7章 内存管理技术187
7.1内存管理器提供的功能187
7.2内存管理的简单方案189
7.3内存分配方案192
7.3.1固定尺寸分区192
7.3.2变长分区193
7.3.3缩并195
7.4分页虚拟内存196
7.4.1页表197
7.4.2支持分页的硬件199
7.4.3页表的建立199
7.4.4虚拟和物理内存的相对大小200
7.5分段虚拟内存200
7.5.1支持分段的硬件204
7.6分页和分段的比较204
7.6.1解读CPU生成的地址206
小结207
历史回顾208
MULTICS209
Intel的内存体系结构210
练习题211
参考文献注释和扩展阅读212
第8章 页式内存管理213
8.1按需分页213
8.1.1按需分页的硬件213
8.1.2页错误处理程序214
8.1.3按需分页内存管理的数据结构214
8.1.4页错误解析215
8.2进程调度器和内存管理器间交互217
8.3页替换策略218
8.3.1 Belady的Min算法219
8.3.2随机替换219
8.3.3先进先出策略219
8.3.4最近最少使用策略221
8.3.5第二次机会页替换算法223
8.3.6页替换算法回顾225
8.4优化内存管理225
8.4.1空闲页帧池225
8.4.2颠簸226
8.4.3工作集228
8.4.4颠簸控制229
8.5其他考虑229
8.6旁路转换缓存230
8.6.1 TLB的地址转换231
8.7内存管理的高级话题232
8.7.1多级页表232
8.7.2局部页表项的访问权限234
8.7.3反向页表234
小结234
练习题234
参考文献注释和扩展阅读236
第9章 分级存储体系237
9.1缓存的概念238
9.2局部性原理238
9.3基本术语238
9.4多级存储层次239
9.5缓存结构241
9.6直接映射缓存结构241
9.6.1缓存查找243
9.6.2缓存项中的字段244
9.6.3用于直接映射缓存的硬件245
9.7流水线处理器设计的影响247
9.8缓存读/写算法247
9.8.1 CPU对缓存的读访问248
9.8.2 CPU对缓存的写访问248
9.9处理器流水线中的缓存缺失处理251
9.9.1在流水线性能上缓存缺失对内存延迟的影响252
9.10利用空间局部性提高缓存性能253
9.10.1增加块大小对性能的影响256
9.11灵活的布局策略257
9.11.1全相关缓存258
9.11.2组相关缓存259
9.11.3组相关的极端情况261
9.12指令和数据缓存263
9.13降低缺失损失264
9.14缓存替换策略264
9.15缺失类型简要说明266
9.16 TLB和缓存整合268
9.17缓存控制器269
9.18虚拟索引物理标记的缓存270
9.19缓存设计因素概述271
9.20主存的设计因素272
9.20.1简单的主存272
9.20.2与缓存块大小相匹配的主存和总线273
9.20.3交错式内存273
9.21现代主存系统分析274
9.21.1页式DRAM278
9.22分级存储体系的性能影响279
小结280
现代处理器的分级存储体系(一个例子)281
练习题281
参考文献注释和扩展阅读283
第10章 输入/输出和稳定性存储284
10.1 CPU和I/O设备间的通信284
10.1.1设备控制器284
10.1.2内存映射I/O285
10.2程控I/O287
10.3 DMA288
10.4总线290
10.5 I/O处理器291
10.6设备驱动292
10.6.1例子293
10.7外围设备295
10.8磁盘存储器296
10.8.1磁盘技术的传奇故事302
10.9磁盘调度算法304
10.9.1先到先服务305
10.9.2最短寻道时间优先305
10.9.3 SCAN305
10.9.4 C-SCAN306
10.9.5 LOOK和C-LOOK307
10.9.6磁盘调度总结307
10.9.7算法比较308
10.10固态硬盘309
10.11 I/O总线和设备驱动的演化310
10.11.1设备驱动的动态负载311
10.11.2信息汇总312
小结314
练习题314
参考文献注释和扩展阅读315
第11章 文件系统317
11.1属性317
11.2在磁盘子系统上实现文件系统的设计选择321
11.2.1连续分配322
11.2.2带有溢出区域的连续分配324
11.2.3链接分配324
11.2.4文件分配表325
11.2.5索引分配327
11.2.6多级索引分配328
11.2.7混合索引分配328
11.2.8不同分配策略的比较331
11.3信息汇总331
11.3.1索引节点336
11.4文件系统的组件336
11.4.1创建、写入文件的剖析337
11.5各种子系统的交互337
11.6文件系统在物理媒介上的布局340
11.6.1内存中的数据结构342
11.7处理系统崩溃343
11.8其他物理媒介上的文件系统343
11.9现代文件系统一览344
11.9.1 Linux344
11.9.2 Microsoft Windows348
小结349
练习题350
参考文献注释和扩展阅读352
第12章 多线程编程与多处理器353
12.1为什么需要多线程353
12.2线程所需的编程支持354
12.2.1线程创建和终止354
12.2.2线程之间的通信356
12.2.3读/写冲突、竞争条件及不确定性357
12.2.4线程之间的同步361
12.2.5线程库中数据类型的内部表示365
12.2.6简单的编程示例366
12.2.7死锁和活锁369
12.2.8条件变量370
12.2.9视频处理示例的完整解决方案373
12.2.10解决方案的讨论374
12.2.11重新检查条件375
12.3线程函数调用和多线程编程概念总结377
12.4线程编程的一些注意事项379
12.5使用线程作为软件结构抽象379
12.6 POSIX pthread库调用总结379
12.7操作系统对线程的支持382
12.7.1用户级线程383
12.7.2内核级线程385
12.7.3 Solaris线程:一个内核级线程例子386
12.7.4线程和库387
12.8在单处理器上的多线程的硬件支持388
12.8.1线程创建、终止以及线程间的通信388
12.8.2线程之间的同步388
12.8.3原子的Test-and-Set指令388
12.8.4使用Test-and-Set指令的Lock算法390
12.9多处理器391
12.9.1页表391
12.9.2分级存储体系391
12.9.3保证原子性393
12.10高级话题393
12.10.1操作系统话题393
12.10.2架构话题403
12.10.3未来之路:多核与众核架构412
小结413
历史回顾414
练习题415
参考文献注释和扩展阅读417
第13章 网络与网络协议基础知识419
13.1预备知识419
13.2基本术语419
13.3网络软件423
13.4协议栈424
13.4.1因特网协议栈424
13.4.2 OSI模型426
13.4.3分层的实际问题427
13.5应用层427
13.6传输层428
13.6.1停止并等待协议429
13.6.2流水线协议431
13.6.3可靠的流水线协议432
13.6.4处理传输错误436
13.6.5因特网上的传输协议437
13.6.6传输层总结438
13.7网络层439
13.7.1路由算法439
13.7.2因特网寻址444
13.7.3网络服务模式446
13.7.4网络路由与转发449
13.7.5网络层总结450
13.8链路层和局域网450
13.8.1以太网451
13.8.2 CSMA/CD451
13.8.3 IEEE 802.3453
13.8.4无线局域网与IEEE 802.11453
13.8.5令牌环454
13.8.6其他链路层协议456
13.9网络硬件456
13.10协议栈各层之间的关系460
13.11用于数据包传输的数据结构460
13.11.1 TCP/IP包头461
13.12消息传输时间462
13.13协议层功能总结466
13.14网络软件与操作系统466
13.14.1套接字库467
13.14.2在操作系统中实现协议栈468
13.14.3网络设备驱动程序468
13.15 使用UNIX套接字进行网络编程469
13.16网络服务与高层协议474
小结475
历史回顾475
练习题480
参考文献注释和扩展阅读482
第14章 尾声:旅途回顾483
14.1处理器设计483
14.2进程483
14.3虚拟内存系统和内存管理483
14.4分级存储体系484
14.5并行系统484
14.6输入/输出系统484
14.7永久性存储484
14.8网络485
结束语485
附录A 使用UNIX套接字进行网络编程486
参考文献495
索引500