网站色彩搭配技巧立创电子元器件商城官网
网站色彩搭配技巧,立创电子元器件商城官网,最专业微网站建设价格,域名解析目录 1. Linux下各种资源的内存分布2. 物理地址与虚拟(线性)地址3. 程序地址空间的区域划分4. 地址映射与页表5. 缺页中断 1. Linux下各种资源的内存分布 2. 物理地址与虚拟(线性)地址 在有关进程创建的初步学习中#xff0c;我们了解了fork函数创建子进程的方式。此种进程的创… 目录 1. Linux下各种资源的内存分布2. 物理地址与虚拟(线性)地址3. 程序地址空间的区域划分4. 地址映射与页表5. 缺页中断 1. Linux下各种资源的内存分布 2. 物理地址与虚拟(线性)地址 在有关进程创建的初步学习中我们了解了fork函数创建子进程的方式。此种进程的创建方式使得同一个变量在不同的进程可以有不同的值我们初步了解的原因为子进程进行了写时拷贝重新开辟了一块空间来存放值。那么既然是不同的地址空间那么父子进程中的同名变量的地址一定是不同可事实是这样我们接下来我们进行相关验证。 int main()
{pid_t id fork();int i 0;if(id){i 10;while(1){printf(this is father process i%di%p\n, i, i); sleep(2);}}else{i 20;while(1){printf(this is children process i%di%p\n, i, i);sleep(2);}}return 0;
}运行结果如上父子进程中的同名变量居然是同一块地址空间一块地址空间是绝对无法存储两个数据的可为什么这里却又显示它们的地址空间相同呢。事实上我们使用取地址操作得到的地址并非是真实的物理地址而是虚拟的程序地址空间中的地址。Linux操作系统中会在真实物理地址空间与每个程序之间生成一块虚拟的地址空间每一个程序都有一块独属于自己的程序虚拟地址空间。我们取地址操作所获得的资源地址只是其在这块虚拟地址空间上的地址这些虚拟地址只是真正物理地址在这块空间上的映射。 3. 程序地址空间的区域划分 Linux32位操作系统下程序地址空间的大小都为4GB与指针的物理地址空间大小相同。程序地址空间也是一种数据结构对象操作系统对计算机软硬件资源的管理方式都是信息管理先描述对应事物的信息然后再将其组织起来。程序地址空间的信息属性 1 程序地址空间要做到的就是模拟一份与物理地址空间大小相同的虚拟空间。 2 其次要能够对整块区域进行区域划分来区分存储不同程序资源。 3 在这一过程中也要能够做到对越界资源的检测。 //大致的数据结构
struct area
{int code_start;int code_end;int init_start;int init_end;int uninit_start;int uninit_end;//.......
}通过如上此种数据结构对数据越界的检测也就编程了对数据区域的比对而扩大与缩小区域也就变成了结构内成员数据的增大与缩小。程序地址空间不具有数据存储的能力数据是存储在物理内存中的。 4. 地址映射与页表 前面我们已经提及虚拟地址只是物理地址映射可是映射方式具体是什么呢在实现上是怎么做从而达成了这一目的的呢。在虚拟地址与物理地址之间有一张记录它们映射关系的记录表我们称之为页表。在程序被执行的过程中CPU获取对应进程真实地址空间的方式为通过MMU硬件模块中的CR3寄存器中记录的页表地址以虚拟地址空间为key值从而直接通过页表找到映射的真实物理地址。 虚拟地址空间与地址映射存在的意义 1 使得原本因进程众多切换调度而无序的物理地址空间变成了有序的虚拟地址空间让所有进程都可以以统一的视角看待内存大大提高了进程运行的效率。 2 使得物理地址存储数据的实现与虚拟地址程序运行的实现区分开来互不干涉达到了方便设计与解耦合的效果。 5. 缺页中断 有了程序地址空间我们再来了解一下动态空间管理的相关操作malloc/new。我们使用malloc/new申请款空间后空间真的被开辟出来了吗当我们程序地址空间的堆区上申请了空间之后物理空间上我们所需的空间并不一定立刻会被开辟出来在我们未对这段空间进行写入操作时这段空间并不会被申请出来。只有在我们尝试进行写入时操作系统才会为我们将这段空间真正开辟出来并在页表中创建映射关系。上述在对动态开辟空间进行写入的操作中因为空间没有被指针开辟页表上映射关系的缺失导致的操作短暂中断我们称之为缺页中断。操作系统为什么要进行这样写时拷贝的操作呢操作系统是计算机资源的管理这它为计算机的效率与资源使用率负责如果在我们申请空间后直接将进行开辟与权限开放当我们只是申请而不使用的时候就会浪费掉这块空间资源。操作系统为了杜绝防止这种资源浪费的风险由此添加了写实拷贝的步骤。写实拷贝的方式也能够提高我们内存申请的速度虽然在总的时间上与申请开辟一体化的耗时相同但单独对于申请的速度是有明显提升的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89292.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!