第一章

  • 操作系统

  • 软件硬件相配合

  • 例子

    • 整型,浮点数都有内存溢出可能
      • 有符号→第一位变1→负数
    • 结合律:浮点数不一定成立(?我知道python里好像精度不同浮点数会出问题,但这个例子不是这个原因)
    • 内存有限-硬件寄存器速度match-cache高速缓存
      • cpu-寄存器-disk-mainmemory-cache硬件,前者一部分
      • cache没有去mainmemory取
    • 内存访问次数导致的区别
      alt text
    • memory referencing bug example
      • 访问内存越界(数组访问无限制)
        • 数组在内存中存放是连续的,存储起始位置就是指针
typedef struct {
int a[2];
double d;
} struct_t;

double fun(int i) {
volatile struct_t s;
s.d = 3.14;
s.a[i] = 1073741824; /* Possibly out of bounds */
return s.d;
}

alt text
alt text

Bits,Bytes and Integers

  • each bit is 0 or 1
  • 电压不同决定的
    (第一次视频结束)