linux下32位虚拟地址空间是多少

linux下32位虚拟地址空间是多少,第1张

64位的linux采用4级页表,支持的最大物理内存为64T。 对于虚拟地址空间的划分,将0x0000,0000,0000,0000 – 0x0000,7fff,ffff,f000这128T地址用于用户空间;而0xffff,8000,0000,0000以上的128T为系统空间地址。 具体的不是一两句能说清楚了。

一、具体分布如图所示:

二、关于堆和栈

(1)分配方式:

栈:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

堆: 一般由程序员分配释放,它的分配方式类似于链表。

(2)申请后系统的响应:

栈:只要所申请的空间小于栈的剩余空间,则系统为程序分配内存,否则栈溢出。

堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,遍历该链表,找出第一个大于所申请空间的节点,然后将其从链表中删除并分配,如果没用完,则系统会把多余的重新放回到链表中。

(3)申请大小的限制:

栈:栈是高地址向低地址扩展的连续内存,栈的大小一般是2M;

堆:堆是低地址向高地址扩展的不连续内存,堆的大小与计算机有效的虚拟内存有关系。

(4)申请效率:

栈:由系统自动分配,速度较快;

堆:速度慢,容易产生内存碎片;

关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/136478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存