计算机系统的物理存储和虚拟内存

计算机系统的物理存储和虚拟内存_第1张图片
来自书籍:深入理解计算机系统(第三版)
计算机系统的物理存储和虚拟内存_第2张图片
多级高速缓存
  1. CPU中的寄存器能存几百字节。
  2. CPU中增加的高速缓存器cache能存几万字节(几十MB)以上
  3. 内存RAM能存几亿字节(几GB)
  4. 硬盘磁盘能存几百GB几个TB甚至更多
  5. 云存储,利用网络传输数据

虚拟内存

  • 是将内存RAM作为每个进程分配虚拟内存的基础。使得每个进程看起来都在独占内存。
计算机系统的物理存储和虚拟内存_第3张图片
来自书籍:深入理解计算机系统第三版
  • 类似的描述虚拟内存分布情况


    计算机系统的物理存储和虚拟内存_第4张图片
    image.png
  • 从低地址到高地址,可分为下面几段:
  • 0、预留内存地址
    (操作系统维护的内存地址,不可访问) ;对应上上一张图蓝色0区域。
  • 1、程序代码区
    (只读,存代码和一些其他的东西);
  • 2、数据区
    》2.1 存初始化的全局变量和static变量,另外还有字符串常量区,常量字符串就是放在这里,程序全部结束后由系统释放;
    》2.2 bss段,存未初始化的全局变量和static变量,并被初始化为0,程序全部结束后由系统释放;
  • 3、堆区heap
    (由低地址向高地址增长,类似链表,与数据结构中的堆不同,一般new和malloc分配,由程序员分配释放);
  • 4、共享库文件
    (调用的库文件,位于堆和栈之间);
  • 5、栈区stack
    (由高地址向低地址增长,和堆的增长方式相对,与数据结构中的stack类似,对不同的OS来说,栈的初始大小有规定,可以修改,目前默认一般为2M,由编译器自动分配和释放,局部变量的内存函数调用结束就释放);

再上面存的都是操作系统和内核调用的一些内存地址。

你可能感兴趣的:(计算机系统的物理存储和虚拟内存)