linux中进程的页表如何映射

我一开以为页表就是简单的一一映射的关系

但是想想,算一个内存2^32 * (4(物理内存) + 4(虚拟内存) + 2(权限,凑个整2字节)),相当于40GB,哥们一个进程要开40GB空间,有点开玩笑了!所以肯定不是!

可以算一下占用多少内存:

2^20bit(叶框的起始地址) 约等于3字节,权限就当 1字节,相当于二级页表占4字节 * 1024个,就是4kb,4kb*1024个也目录数量 + 1字节*1024 约等于4MB。其实4MB也不算小了,所以创建一个进程的代价还是能大的,进程不进要创建页表,还有其他东西,占比比较大的还是进程创建时,要在cpu的cache寄存器中缓存该进程的热数据:

相关推荐
七七powerful41 分钟前
sealos 方式安装k8s5节点集群
linux·运维·服务器
lunz_fly199243 分钟前
手动编译安装 MongoDB
linux
*愿风载尘*2 小时前
SecureCRT连接密钥交换失败
linux·macos
basketball6162 小时前
Linux C 进程间高级通信
linux·运维·服务器
##echo3 小时前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件
Reggie_L4 小时前
RabbiteMQ安装-ubuntu
linux·ubuntu·ruby
AIGC_北苏4 小时前
让UV管理一切!!!
linux·人工智能·uv
YCY^v^6 小时前
centos 7 开启80,443端口,怎么弄?
linux·运维·centos
北南京海6 小时前
[Linux]进程地址空间
linux·运维·服务器
db_murphy8 小时前
Oracle数据块8KB、OS默认认块管理4KB,是否需调整大小为一致?
linux