图书介绍

计算机科学丛书 计算机系统 系统架构与操作系统的高度集成PDF|Epub|txt|kindle电子书版本下载

计算机科学丛书 计算机系统 系统架构与操作系统的高度集成
  • (美)拉姆阿堪德兰,(美)莱希著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111506362
  • 出版时间:2015
  • 标注页数:530页
  • 文件大小:105MB
  • 文件页数:550页
  • 主题词:计算机系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

计算机科学丛书 计算机系统 系统架构与操作系统的高度集成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

热门推荐