首页 理论教育 嵌入式系统内存管理-嵌入式系统原理与应用

嵌入式系统内存管理-嵌入式系统原理与应用

时间:2023-11-23 理论教育 版权反馈
【摘要】:为了让有限的物理内存满足应用程序对内存的大需量求,Linux 采用了称为“虚拟内存”的内存管理方式。所谓分页,即是将实际的存储器分割为大小相等的页,称为页面。标准Linux 是针对有内存管理单元的处理器设计的。在这种处理器上,虚拟地址被送到内存管理单元,将虚拟地址映射成物理地址。⑧提供内存保护。总之,内存管理活动占用了相当一部分CPU 时间。

嵌入式系统内存管理-嵌入式系统原理与应用

对任何一台计算机而言,其内存及其他资源都是有限的。 为了让有限的物理内存满足应用程序对内存的大需量求,Linux 采用了称为“虚拟内存”的内存管理方式。 Linux 将内存划分为容易处理的“内存页”,在系统运行过程中,应用程序对内存的需求大于物理内存时,Linux可将暂时不用的内存页交换到硬盘上。 这样,空闲的内存页可以满足应用程序的内存需求,而应用程序却不会注意到内存交换的发生。

Linux 系统使用虚拟内存技术来管理内存,以提供比实际物理内存大得多的内存空间,使用者感觉好像程序可以直接使用的存储空间是整个内存和外存空间之和,从而使得编程人员在写程序时不用考虑计算机中的物理内存的实际容量。 同时,采用MMU 来完成内存管理的地址映射,并采用TLB(translation lookaside buffers,转换后缓存储器)来加快映射的速度。

为了支持虚拟存储管理技术,Linux 系统采用分页的方式来调入进程。 所谓分页,即是将实际的存储器分割为大小相等的页,称为页面。 例如每个页1 024 B。

虚拟存储器由存储器管理机制及一个大容量的快速硬盘存储器支持,它是通过基于局部性原理实现的。 当一个程序在运行之前,没有必要全部将之装入内存,而是仅将那些当前要运行的部分页装入内存运行,其余暂时留在硬盘上。 程序运行时,如果它所要访问的页已存在,则程序继续运行;如果发现不存在,操作系统将产生一个缺页错误。 这个错误导致操作系统将需要运行的部分加载到内存中,必要时操作系统还可以将不需要的内存页(段)交换到磁盘上。 利用这样的方式管理存储器,便可将一个进程所要用到的存储器以化整为零的方式视需求分批载入,而核心程序则凭借属于每个页面的页码来完成寻址各个存储器区段的工作。

标准Linux 是针对有内存管理单元的处理器设计的。 在这种处理器上,虚拟地址被送到内存管理单元(MMU),将虚拟地址映射成物理地址。

通过赋予每个任务不同的虚拟——物理地址转换映射,支持不同任务之间的保护。 地址转换函数在每一个任务中定义,在一个任务中的虚拟地址空间映射为物理内存的一个部分,而另一个任务的虚拟地址空间映射到物理存储器中的其余区域。 计算机的存储管理单元(MMU)一般用一组寄存器来存储当前运行的进程的转换表。 当前进程将CPU 放弃给另一个进程时(一次上下文切换)时,内核通过指向新进程地址转换表的指针加载这些寄存器。MMU 寄存器是有特权的,只能在内核态才能访问。 这就保证了一个进程只能访问自己用户空间内的地址,而不会访问和修改其他进程的空间。 当可执行文件被加载时,加载器根据缺省的ld 文件,将程序加载到虚拟内存的一个空间,基于这个原因实际上很多程序的虚拟地址空间是相同的,但是由于转换函数不同,所以实际所处的内存区域也不同。 而对于多进程管理,当处理器进行进程切换并执行一个新任务时,一个重要的部分就是为新任务切换任务转换表。 可以看到Linux 系统的内存管理至少实现了以下功能:

①可以运行比内存还要大的程序,理想情况下应该还可以运行任意大小的程序。

②可以运行只加载了部分的程序,缩短了程序启动的时间。(www.xing528.com)

③可以使多个程序同时驻留在内存中,提高CPU 的利用率。

④可以运行重定位程序,即程序可以放于内存中的任何一处,而且可以在执行过程中移动。

⑤写与机器无关的代码,程序不必事先约定机器的配置情况。

⑥减轻程序员分配和管理内存资源的负担。

⑦可以进行共享。 例如,如果两个进程运行同一个程序,它们应该可以共享程序代码的同一个副本。

⑧提供内存保护。 进程不能以非授权方式访问或修改页面,内核保护单个进程的数据和代码,以防止其他进程修改它们;否则,用户程序可能会偶然(或恶意)地破坏内核或其他用户程序。

虚存系统的实现并不是没有代价的,内存管理需要地址转换表和其他一些数据结构,留给程序的内存减少了,地址转换增加了每一条指令的执行时间,而且对于有额外内存操作的指令会更严重。 当进程访问不在内存的页面时,系统发生缺页中断。 系统处理中断,并将页面加载到内存中,这需要占用磁盘I/O 操作时间。 总之,内存管理活动占用了相当一部分CPU 时间(在较忙的系统中大约占10%)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈