
计算机系统
yhl_sophia
这个作者很懒,什么都没留下…
展开
-
《深入理解计算机系统》读书笔记(三)程序的机器语言
Intel处理器系列 IA32 (Intel 32位体系结构) Intel 64,IA32的64位扩展,称为x86-64,简称x86 GCC C编译器是Linux上默认的编译器,通过命令gcc启动—Og 、—O1、—O2表示编译器生成机器代码时的优化等级,越高级别的优化会使代码严重变形,以至于产生的机器代码和初始源代码之间的关系难以理解 机器级编程的两种重要抽象:...原创 2018-12-28 14:11:54 · 308 阅读 · 0 评论 -
《深入理解计算机系统》读书笔记(一)计算机系统的基本概念与组成
编译系统作用:将源文件转化为可执行目标文件阶段:预处理器 —— 编译器 —— 汇编器 —— 链接器预处理器 —— 将#后的命令直接插入到程序文本中,得到.i文件编译器 —— 将.i文件翻译成文本文件.s。用汇编语言表示内容汇编器 —— 将.s汇编文件翻译成机器语言指令,并将指令打包成可重定位目标程序“的格式”,保存在目标文件.o中链接器 —— 将需...原创 2018-12-26 10:01:50 · 190 阅读 · 0 评论 -
《深入理解计算机系统》读书笔记(二)不同数据类型的表示和计算
计算机的字长决定了虚拟地址空间的最大大小,对于一个字长为n位的机器而言,虚拟地址的范围则为0~-1,程序最多可访问个字节(每个字节对应一个地址)为了避免由于依赖“典型”大小和不用编译器设置带来的差错,增强程序的可移植性,ISO C99引入了一类数据大小固定的数据类型,例如int32_t和int64_t 数据在内存的存储方式大端方式:高位存储在低地址,低位存储在高地址小端方式:低...原创 2018-12-27 11:07:47 · 313 阅读 · 0 评论 -
《深入理解计算机系统》读书笔记(七)在系统上运行程序
链接 —— 将各种代码和数据片段收集并组合成为一个单一文件的过程,此文件能够被加载到内存中并执行。链接可发生的阶段:编译时、加载时以及运行时 源文件到可执行目标文件的转化1、翻译器:预处理(cpp)、编译(ccl)、汇编(as)2、链接器(ld)3、加载器:将可执行文件中的代码和数据复制到内存,然后将控制转移到这个程序的开头 静态链接器输入:一组可重定位目标...原创 2019-01-08 10:21:08 · 221 阅读 · 0 评论 -
《深入理解计算机系统》读书笔记(五)优化程序性能
妨碍程序优化的因素1、两个指针可能指向同一个位置,因此不能进行简单的优化,否则会产生和原程序不一样的结果2、函数调用,当函数调用次数对某个全局变量的值有影响的时候就不能简单地进行优化 可行的优化:内联函数替换,但会导致调试和代码剖析无法达到预期的效果 衡量程序性能的参数 每元素的周期数(Cycles Per Element,CPE) 适当消除妨碍程序优化...原创 2019-01-15 09:31:08 · 224 阅读 · 1 评论 -
《深入理解计算机系统》读书笔记(四)处理器体系结构
指令集体系结构(Instruction-Set Architecture,ISA):一个处理器支持的指令和指令字节级编码 指令的字节编码 第一个字节表明指令的类型:高4位是代码部分,低4位是功能部分 时序电路 时钟寄存器(寄存器) —— 存储单个位或字,时钟信号控制寄存器加载输入值 随机访问存储器(内存) —— 存储多个字 将处理组织成阶段...原创 2019-01-15 09:31:36 · 241 阅读 · 0 评论