IntervalZero RTX64 4.x 帮助文档

⌘K
  1. 主页
  2. 文档
  3. IntervalZero RTX64 4.x 帮助...
  4. RTSS 实时子系统
  5. RTX64 内存管理

RTX64 内存管理

通过配置 RTX64 默认内存分配方式,可以使用本地内存或从 Windows 请求内存资源。当使用本地内存(Use local memory)时,子系统,网络组件和每个 RTSS 进程都有两个内存分配空间 (MSpace):一个用于内部子系统对象和 bookkeeping 的内部 MSpace,和一个用于显式进程内存分配的可配置外部 MSpace。

在每个分配空间内,都有一个本地池和一个池缓存用来满足多种内存请求。本地池用于确定性地满足池缓存的内存请求,或者在应用程序需要更大内存量时,直接满足其请求。池缓存是用于加速小量内存请求分配/释放的内存块。它从本地池中分配,用做分配器的缓存,具有可配置的内存块粒度。

进程启动时,可以提前在外部分配空间中为进程分配(保留)初始内存量。否则,内存将在应用程序第一次调用内存分配时分配。只要本地池有足够的可用内存,从本地池或池缓存分配内存的 RTSS 应用程序就会确定得到内存。通常情况下,本地池会为非确定性函数提供确定性保障,在系统崩溃(蓝屏)后提供更大的灵活性和功能。

使用 RTX64 控制面板配置默认内存分配方式:

  • 使用本地内存(Use local memory) 确定性(deterministic)。所有的内存请求都使用本地内存。您可以为子系统,网络组件和 RTSS 进程配置 MSpace 默认值;
  • 使用 Windows 内存(Use Windows memory)非确定性(non-deterministic。所有内存请求都配置为使用 Windows 内存,除非进程专门调用了 RtAllocateLocalMemory