现在的位置: 首页 > 综合 > 正文

进程 虚拟空间

2017年12月25日 ⁄ 综合 ⁄ 共 755字 ⁄ 字号 评论关闭

系统每个进程都有自己的内存页表,页表内保存了进程的物理内存页和虚拟内存页之间的对应关系。

页表中每个页表项对应于一个虚拟内存页,包含了对应的物理内存页标号、页表项的有效标志以及相应的物理页访问控制属性。

进程虚拟地址包括两方面信息,一个是虚拟页帧编号,作为访问进程页表的索引;另一个是偏移量。当进程访问某虚拟地址时,CPU根据虚拟页帧编号从进程的页表中获取相应的物理页帧编号,物理页帧编号乘以4k(内存页的大小)就是线性物理地址的基地址,再加上虚拟地址的偏移量就是实际的物理地址。

//////////////////////////////////////////////////

swap分区 解决虚拟内存大于物理内存的问题。swap分区作为虚拟内存和物理内存的缓存

虚拟内存是使用磁盘当作RAM的扩展。 

内存映射使一个磁盘文件与存储空间中的一个缓存相映射

/////////////////////////////////////////////////

利用虚拟内存,不同进程的虚拟内存页可以映射到同一个物理内存页。如不同进程要写入同一物理内存时,OS捕捉这一情况,并分配一个新的内存页,复制原有内容,在继续写入操作,这就是“写时复制”技术

 

linux可用内存地址空间3G,从0x00000000到0xC0000000,

从0xC0000000到0xFFFFFFFF的1G内存区间映射到了内核的代码和数据,进程不能访问

 

windows中0x00001000到0x7FFFFFFF的2G空间是进程的私有地址空间,当win32进程装入时,它要求访问的DLL,包括KERNEL32.DLL, USER32.DLL, GDI32.DLL均装入这里.

0x8000000到0xFFFFFFFF是windows NT 内核区域,进程不能访问

抱歉!评论已关闭.