深入理解计算机系统学习笔记
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服务器或者其他能力
Bits、Bytes and Integer
一切皆比特
实际上,只有ENIAC使用的是十进制算数表示
比特之所以伟大,是因为在数字世界中可以采取其他方式的模拟信号对其量化
1
20-低电压;1-高电压
0和1是逻辑中最基础的值存储一位信息或者一个数字值比存储一个模拟值容易
编码比特值
十六进制转二进制
0
9 AFc语言中的数据表示
虚拟地址空间是由机器字长决定的