平常总说cpu的位数,其实说的是cpu一次能运算的最长整数的宽度,既ALU(算术逻辑单元)的宽度。
cpu的位数也是数据总线的条数
数据总线:数据线的总和,数据线就是cpu与内存进行数据传递的通道,一条数据线,一次可以传送1位二进制数,8条数据线一次就可以传8位(1个字节)
地址总线:CPU是通过地址总线来指定存储单元的,地址总线决定了cpu能访问的最大内存大小,比如,10位的地址线能访问的内存为1024位(1B)二进制数据
操作系统为了屏蔽I/O底层的差异,创建了VFS(虚拟文件系统),为了屏蔽I/O层与内存之间的差异,产生了虚拟内存。为了屏蔽cpu与内存之间的差异,创建了进程。每个程序运行起来都会拥有一个自己的虚拟地址空间,32位cpu的操作系统,其地址线也为32位,所以虚拟地址空间为2^32 -1= 4G
一个进程在运行时不可能会用如此大的虚拟地址空间,它们只会用到其中的一部分,而且并不一定连成一片,可能会被分割成几块,每一块连续的虚拟内存块被称为虚拟内存段。
Linux虚拟内存空间布局如下:
Linux虚拟内存空间分布
最新推荐文章于 2024-09-26 06:46:22 发布
本文介绍了Linux系统的虚拟内存空间布局,包括预留段、代码段、数据段、BSS段、堆和栈,以及共享库的概念。32位系统中,虚拟地址空间为4GB,各个段分别承担不同的功能,如.text段存放只读指令,.data和.bss段存储全局变量,堆用于动态内存分配,栈记录函数调用信息。通过`cat /proc/pid/maps`可以查看进程的虚拟地址空间布局。
摘要由CSDN通过智能技术生成