当前位置:首页 > 内存 > 正文

内存管理有哪几种方式

  • 内存
  • 2024-06-07 20:50:29
  • 2168

一、内存有几种管理方式?3种:
段管理(每个分配的大小不固定)
页管理(每个分配的大小固定)
段页管理(整个段、段内分页等).)整体分页,页内分段)
页管理:将主存一页一页地划分,每一页的空间远小于一个块的空间利用率。速率远高于块管理。
段管理:将主存划分为段,每个段的空间远小于一页的空间。这种方法在空间利用方面效率更高,但也有另一个缺点。一个程序片段可以分为几十个段,因此大量的时间浪费在计算每个段的物理地址上(大家都知道计算机最耗时的部分是I/O)。
段和页管理:结合了段管理和页管理的优点。主存分为若干页,每一页又分为若干段。


二、常用的内存管理机制有哪几种嵌入式系统中使用的内存管理机制主要有两种:
1、虚拟内存管理机制:有些嵌入式处理器提供了MMU,它具有设置内存地址和地址的功能,使操作系统的内存管理更加方便。如果存在MMU,操作系统就会利用它来完成虚拟地址到物理地址的转换,所有的应用程序只需要使用虚拟地址来处理数据。这种利用虚拟地址对整个系统的主、辅存进行寻址的方法在现代操作系统中称为虚拟内存。MMU是实现虚拟内存的必要条件。
虚拟内存管理方式可以让系统运行大于物理内存的应用程序,还可以实现“按需分页”策略,既满足了程序的运行速度,又节省了物理内存空间。
在Linux系统中,虚拟内存机制的实现为我们提供了一个典型的例子:在不同的架构下,采用三级或两级页面管理,利用MMU来完成从内存到内存的操作。地址之间传输的虚拟地址。基于内存的虚拟内存管理的最大好处是,由于不同的进程有自己独立的进空间,因此非常有效地提高了系统的可靠性和安全性。
2、非虚拟内存管理机制:
在实时性要求比较高的情况下,很多嵌入式系统不需要虚拟内存机制:因为虚拟内存机制会导致不确定的I/操作O使得Blockingtime程序运行时间不可预测,这是实时嵌入式系统的致命缺点。此外,考虑到嵌入式处理器的成本,大多数嵌入式微处理器都采用不带MMU的方式。因此,大多数嵌入式系统都采用真正的内存管理策略。因此,内存访问是直接的,不需要经过MMU,而是直接送到地址线输出。所有程序访问的地址都是实际的物理地址;操作系统不保护内存空间,每个进程物理上共享操作空间。在执行操作之前,系统必须为其分配足够的持久地址空间,然后将其全部加载到主存的持久空间中。
可见,嵌入式系统开发人员必须参与系统内存管理。从编译内核开始,开发者在开发应用程序时就必须告诉系统开发板上有多少内存,并且必须考虑内存分配并注意应用程序运行需要多少空间。另外,由于真正的内存管理策略,用户程序与内核和其他用户程序处于同一地址空间,在开发程序时必须保证不侵犯其他程序的地址空间。以便软件不破坏系统的正常运行或导致其他程序运行异常,因此嵌入式系统开发人员必须特别小心软件中的一些内存操作。
UCOS是UCOS中采用非虚拟内存管理的一个例子,所有任务共享整个物理内存,并且任务之间没有内存保护机制,这样可以提高系统响应时间,但是任务内存并不大适合导致系统崩溃。