C语言中函数定义时内存分配过程
1个回答
关注
展开全部
咨询记录 · 回答于2022-12-10
C语言中函数定义时内存分配过程
您好亲, 第一阶段——程序直接操作物理内存。某台计算机总的内存大小汪冲是128M,现在同时运行两个程序A和B,A需占用内存10M,B需占用内存100。计算机在给程序分配内存时会采取备兄这样的方法:先将内存中的前10M分配给程序A,接着再从内存中剩余的118M中划分出100M分配给程序B第二阶段——分段(解决了第一阶段的第1和第3个问题)在进程和物理内存增加一个中间层,利用一种间接的地址访问方法访问物理内存。程序中访问的内存地址不再是实际的物理内存地址,而是一个虚拟地址,然后由操作系统将这个虚拟地址映射到适当的物理内存地址上。这样,只要操作系统处理好虚拟地址到物理内存仿陵袭地址的映射,就可以保证不同的程序最终访问的内存地址位于不同的区域,彼此没有重叠,就可以达到内存地址空间隔离的效果。第三阶段——分页(解决了第一阶段的第2个问题)将地址空间分成许多的页。每页的大小由CPU决定,然后由操作系统选择页的大小。目前Inter系列的CPU支持4KB或4MB的页大小,而PC上目前都选择使用4KB希望我的回答对您有帮助,谢谢,祝您生活愉快!