欢迎来到天天文库
浏览记录
ID:16513711
大小:35.80 KB
页数:6页
时间:2018-08-13
《《深入理解计算机系统》读后感》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《深入理解计算机系统》读后感第一次听到这本书还是我们的导师袁志斌老师介绍的。在这之前我是对它毫无概念可言。袁老师对这本书可谓是推崇备至,因此就介绍给我们全班,并希望说让我们能够静下心好好的去看它、了解它。于是我开始了阅读"深入"的征程。之所以说是"征程"是因为这本说的内容确实是很难。至少是对于我来说。很多东西之前都没有接触过。除了那点少的可怜的C语言底子之外就剩下数字电路的东西了。其他的基本上是听都没听过。毕竟这本书要求先修的课程有很多,神马《计算机组成原理》,《汇编程序设计》。这些都没有学过。但是,就算是这样,凭着被袁老师鼓起的热情,硬着头皮买了它,开始了啃"深入"的日子。
2、在这里先简单的介绍一下"深入"的基本章节内容。第一章ATourofComputerSystem对计算机系统总体的做了一个简单的介绍,第二章RepresentingandManipulatingInformation主要说的是信息在计算机中的表示形式。包括整数和浮点数的表示形式。第三章Machine-LevelRepresentationofProgram汇编语言的复习。过程调用,尤其是过程调用(包括递归调用)中堆栈的使用情况是经常会考到的。数据在内存中的"对齐"方式,也是经常出现在考题中的。比如定义一个结构体数组,打印出其中一个元素的地址,问这个地址相对数组起始地址有多少个字
3、节的距离。第四章ProcessorArchitecture计算机体系结构的内容。处理器结构,各种逻辑门、功能单元,指令集,指令的执行,指令执行的流水线等。第五章OptimizingProgramPerformance如何优化程序的执行效率,包括代码的优化,编译器的优化,及CPU级别的优化。CPU级别的优化,微指令的概念,功能单元上微指令的并行,程序分支的预测等。第六章TheMemoryHierarchy详细介绍了计算机系统中的存储结构。6.1介绍了不同种类的存储设备以及对应的存取数据的方式。6.2-6.5介绍了存储设备的组织形式,着重介绍了Cache及其工作方式。6.6-6.
4、7介绍了程序如何和cache打交道,不同的循环嵌套顺序、遍历方向等对cache命中的影响。第七章Linking顾名思义,详细讲解了程序的链接过程,主要分为静态链接和动态链接,以及链接过程中使用到的技术。第八章ExceptionalControlFlow顾名思义,本章主要讲解异常控制,不过这里的"异常"并不是Java或者C++里的狭义的异常,而是一个广义的"Exceptions"的概念,包括中断(Interrupt,硬件层面,主要是I/O中断),陷阱(Trap,主动产生的异常,主要用于用户程序和系统内核间的交互,如系统调用),错误(Falut,如除0错误;页错误:在虚拟内存中,
5、所请求页面并不在内存中,需要从硬盘读取等。错误可能恢复),中止(Abort,致命错误,无法恢复,如硬件问题等)。在介绍异常处理的同时,引入了进程的概念,对进程控制也进行了详细介绍,以及进程级别的Exception:信号(signal),这个级别的异常处理由操作系统完成,通常叫做上下文切换(contextswitch)。第九章MeasuringProgramExecutionTime本章介绍了如何尽可能准确的测量程序执行的时间。第十章VirtualMemory非常重要的一章,虚拟存储机制是计算机实现多任务的一项重要技术。计算机正是通过时间片技术使得每个进程在执行时仿佛独占CPU
6、,进而又通过虚拟存储机制使得每一个进程在执行时,仿佛独占内存。10.1介绍了虚拟地址和物理地址,CPU进行寻址操作产生的是虚拟地址,通过存储管理单元(memorymanagementunit)转换为实际的物理内存地址。10.3~10.5讲述了虚拟存储机制的优点:使得内存可以作为硬盘的cache;能够更方便的管理内存;能更好的提供内存保护机制。10.6介绍了虚拟地址如何转换为物理地址。10.7很精彩的一节,通过IntelPentium和Linux的实例讲述了整个存储管理机制。记得以前上操作系统课的时候,各种理论、机制学了一大堆,但是就是不知道实际的操作系统到底用的哪套方法。而本
7、节内容正是通过实例让你对刚学的理论机制有一个直观的了解。10.8~10.10讲述了存储映射(MemoryMapping)、动态内存分配和垃圾回收机制。10.11很实用的一节,列举了一些C编程中容易犯的内存引用错误。第十一章System-LevelI/O介绍类Unix系统下的I/O读写,主要介绍系统层面的I/O接口。由于我们日常编程所用的I/O接口都是各种高级语言提供的经过封装的标准接口,故而如果不进行嵌入式编程的话这部分知识不是必须的,我跳过没读。第十二章NetworkProgranmming简单介绍了
此文档下载收益归作者所有