深入理解计算机系统学习笔记
Overview(CMU-15-213)
程序如何运行,机器如何执行程序
数字在计算机中如何表示(用有限的位组合形式表示在数域中无限扩张的数)
int
类型(乘法和加法都有溢出的风险,但符合交换律)
1
2计算机中表示50000*50000是负值
计算300* 400 * 500 * 600是错误结果float
类型(浮点数取值范围极端以至于有些数字会消失)
1
取一个很大的数-他本身+3.14=3.14
- 改变计算顺序:
1
1e20 + (-1e20+3.14)=0
机器级代码的实现
- 代码如何编程机器码
- 如何在机器上执行
分层存储系统
- 数据在内存中如何布局,内存是如何访问的
从程序角度增加其性能(低级优化)
- 什么让程序运行更好
- 什么会导致程序运行更差
实现web服务器或者其他能力