Go内存管理

发布时间 2023-10-19 19:13:38作者: 小桔子1024

1. 存储基础知识

1.1 计算机的存储体系

从上至下依次是:CPU寄存器、Cache、内存、硬盘等辅助存储设备、鼠标等外接设备

说明:从上至下,访问速度越来越慢,访问时间越来越长

1.2 内存

1)物理内存

通过物理内存条而获得的内存空间,这种存储是没有写入硬盘的,在计算机关机后就会丢失

2)虚拟内存(物理内存 + 磁盘)

为每个进程提供一个连续的、私有的地址空间,使得每个进程都可以认为它拥有整个系统的内存(远超物理内存大小)

1.3 内存的工作流程

一个进程访问资源寻找数据时,操作系统会首先检查页表,如果该数据所在的页面已经在物理内存中,则可以直接从物理内存中读取数据,如果发现页面没有加载到物理内存,就会发生缺页异常

缺页异常:操作系统立即阻塞该进程,并将硬盘里对应的页换入物理内存,如果物理内存已经满了,没有空地方了,那就找一个页覆盖

 

说明:页表上有一个有效位表示虚拟页面是否在物理内存中,有效位为1,表示虚拟页面已经加载到物理内存中;有效位为0,表示虚拟页面不在物理内存中,需要从磁盘上加载。