这是我看《Operating Systems: Three Easy Pieces》的学习记录
地址空间(address space)
物理内存抽象叫作地址空间,是运行的程序看到的系统中的内存。
一个进程的地址空间包含运行的程序的所有内存状态。
当然,还有很多东西,
这里只说三个部分
- 程序的代码(code)
- 堆(head)
- 栈(stack)
我这样画只是一种约定,实际情况有可能不同
内存类型
说malloc为什么引入地址空间呢,因为在运行一个c程序时,会分配两种类型的内存。
- 栈内存,它的申请和释放是编译器隐式管理,也被称为自动(automatic)内存。
c中申请栈内存很容易。比如,在func()函数申请一个整形年龄变量age。
void func(void)
{
int age; // stack
..