《深入理解计算机系统》笔记一

写在前面:

这本书是在微博上经由别人介绍的,到手后简单的翻了几页,发现内容确实和程序员的工作比较贴近,去除了繁冗复杂的无关程序的技术,让作为程序员的我更有兴趣去研读。

第一章

1.编译过程

编译过程可以分为预处理,编译,汇编,链接四个过程。比如当我们在shell中输入gcc -o hello hello.c 命令时,首先对#include ...等进行预处理,插入到程序文本中,最终生成后缀名为.i的文本文件;其次编译器将该文本文件翻译成hello.s,同样时文本文件,但其中包含汇编语言程序;再然后汇编器将hello.s翻译成机器语言指令,得到二进制文件hello.o;最后链接器将相关的.o文件(比如程序中用到了printf就会链接printf.o)合并到最终的hello文件中,这个文件是一个可执行文件了,可以加载到内存中,由系统执行。

2.计算机体系图

备注

(1) cpu与外界交互主要在寄存器文件,ALU(运算单元)和内存之间进行,寄存器文件是由多个1字长的寄存器组成,每个寄存器都有名字(例:esp(指向栈顶的指针),ebp(指向栈尾的指针))。

(2) 32位机器1字长=32位=4Byte

64位机器1字长=64bit=8Byte

3.进程虚拟地址空间

备注:(1) 地址是从下到上增大。

(2) 栈和堆都是动态变化的。

4.时钟周期

cpu时钟周期(单位:ns),公式=1/频率*10的9次方,比如主频为2GHz的cpu,其时钟周期为1/(2*1000*1000000)*10的9次方=0.5ns

内存时钟周期计算方式不太一样,因为不太确定,所以就不把公式写在这里了。


ps:错误之处,望请斧正!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值