位置:励普教育 > 计算机设计类>linux云计算> Linux内存管理介绍  正文

Linux内存管理介绍

发布时间:2022-02-22 10:31:56来源:励普教育综合

Linux内存管理是什么?Linux是一种自由、开源的类Unix操作系统,可以安装在各种硬件设备上,包括企业级服务器、Android手机、平板电脑、路由器、台式机、超级计算机等,尤其以在服务器领域的应用较为突出。只有使用Linux才能实现云计算,云计算的核心知识是Linux。

Linux内存管理介绍:

1、不涉及linux内核的汇编知识,仅C语言层面解析

回答:汇编主要处理的是寄存器地址(包括内容)的计算,进行一部分的地址转换工作(当然,它是重要的);C语言处理了极大部分的系统内存管理工作。

2、虚拟地址、线性地址、物理地址三者映射关系

虚拟地址:程序员(在缩小范围估计是:应用程序员)直接看到的

线性地址:操作系统控制

物理地址:CPU内存地址(或者外部内存)

总结一点:虚拟地址通过段管理机制首先变换成一种中间地址形式--cpu32位的线性地址,然后使用分页管理机制将此地址映射到物理地址。

例子解析:

一个变量定义在一个进程里面,在程序中使用&操作符获取的地址(估计是偏移地址),将怎么映射呢?(或者它是什么地址,在进程中的位置如何)

1. 回答:因为,程序使用的都是虚拟地址,所以程序员拿到的变量地址是虚拟地址(它是经过编译器处理过的,并由系统指映射线性地址,分配物理内存的)。

2. 同时,一个变量的地址(虚拟地址)是不会改变的(只要程序代码不改变,或者不在编译),但是,改变运行(不同的时间,相隔一段时间在运行的话),物理地址是会改变的。正是因为操作系统的内存管理作用(线性地址映射到物理地址,是一个动态的过程)。

malloc函数从调用、分配到返回的过程是?

1. 回答:函数调用系统函数,系统函数进入了内核态,引起中断(或其他,异常处理等工作),操作系统得知需要额外的增长空间以提供使用,所以使用分页机制来映射到可以使用的物理地址(没有有用数据,或不被映射),从而使得虚拟地址有了真实的物理地址映射管理,可以正常使用了。

2. malloc实际上,并不是用户调用malloc后马上对物理地址与虚拟地址之间进行映射,只有在用户对申请的内存空间进行读写异常操作才会发生映射。总结一句:在实际需要时才加载执行文件中页面的方式。

哈尔滨有专业的linux云计算培训机构吗?
怎样养成较好的Linux操作习惯?
洛阳好的linux云计算培训机构推荐
郑州达内linux云计算培训班怎样?
Linux云计算是什么?有什么用?
怎么选到靠谱的Linux培训机构?

相关内容: Linux内存管理 Linux云计算培训 厦门达内培训

同类文章