发布时间: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培训机构?