安全关键 Java 的内存管理与安全保障
1. SCJ 内存回收机制
在安全关键 Java(SCJ)中,不同类型的内存区域有着不同的对象回收规则。在任务内存(MissionMemory)中分配的对象,会在任务终止、所有注册的可调度对象处于非活动状态且任务的 cleanUp() 方法返回后被回收。而在私有内存(PrivateMemory)中分配的对象,会在 enterPrivateMemory() 方法返回时被回收;如果这是顶级私有内存,那么在 handleAsyncEvent() 方法返回时回收。
executeInArea(runnable) 方法可用于临时将分配上下文更改为另一个作用域,并在该上下文中执行 runnable 参数的 run() 方法。该调用的目标可以是不朽内存(ImmortalMemory)、任务内存或私有内存的实例,并且必须是父作用域。不过,调用 executeInArea() 后,就不能再使用 enterPrivateMemory() 了。
作用域内存的后备存储来自其可调度对象的后备存储预留。后备存储通过预留来管理,供可调度对象使用。初始的可调度对象会将其后备存储预留的部分划分出来,传递给在其控制线程中创建的可调度对象。后备存储大小的预留通过 StorageParameters 对象进行管理。
任务的 initialize() 方法调用可以在任务内存
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



