计算机系统漫游

c或者c++几乎没有边界检查

1
2
3
4
5
6
7
8
9
10
11
12
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;
return s.d;
}

fun(0)—– 3.14

fun(1)—– 3.14

fun(2)—– 3.1399998664856

fun(3)—– 2.00000061035156

……

运行到fun(6)程序崩溃

由于内存中数组越界相应的d内存的位置的值被数组的赋值给取代了

连续访问内存的读取速度远大于随机读取

操作系统

1.进程

进行一个程序的一种抽象

1)上下文

相当于计算机读取某一步骤的进行状态

2.线程

一个进程可以由多个线程组成

多线程的速率高于多进程

3.虚拟内存

进程的虚拟地址