执行管理负责系统执行管理的各个方面,包括平台初始化和应用程序的启动与关闭。执行管理与操作系统协同工作,以执行应用程序的运行时调度。
当系统启动时,操作系统首先初始化,然后执行管理作为操作系统的第一个模块被启动。其他的功能集群( functional clusters)和平台级应用(platform-level Applications)通过执行管理模块启动。Adaptive Platform Foundation启动后,其他的AP应用程序( Adaptive Applications)再通过执行管理模块启动。平台级应用程序和AP应用程序的启动顺序由EM模块通过Machine Manifest和Execution manifest确定。
执行管理模块负责自适应平台执行管理和应用程序执行管理的各个方面,包括:
1. 平台生命周期管理
执行管理模块作为自适应平台启动阶段的一部分,负责初始化自适应平台和部署的应用程序。
2. 应用程序生命周期管理
执行管理模块负责已部署应用程序的有序启动和关闭。执行管理根据Machine Manifest和Execution manifests中的信息确定部署的应用程序集,并根据声明的应用程序依赖性派生启动/关闭顺序。根据机器状态和功能组状态,部署的应用程序在自适应平台启动期间或者之后启动,由于许多应用程序将向其他应用程序提供服务,因此并不期望所有这些应用程序都立即开始工作,因此需要等待并“侦听”传入的服务请求。
执行管理模块不负责应用程序的运行时调度,因为这是操作系统的责任。但是,执行管理负责操作系统的初始化/配置,使其能够根据执行管理从Machine Manifest和Execution Manifests中提取的信息执行必要的运行时调度。
确定性执行提供了一种机制,使得使用给定输入数据集的计算总是在限定时间内产生一致的输出。执行管理分为时间确定性和数据确定性。前者(时间确定性)是指计算输出总是在截止时间前产生,后者(数据确定性)是指从相同的输入数据集和内部状态能够产生相同的输出。
执行管理模块提供的支持侧重于数据确定性,因为它假定时间确定性通过提供足够的资源来处理。对于数据确定性,执行管理模块提供DeterministicClinetAPI支持对进程内部周期、确定性工作池、激活时间戳和随机数的控制。在软件锁步的情况下,DeterministicClinet与可选的软件锁步框架交互,以确保冗余执行的进程的行为相同。DeterministicClient与CM(Communication Management)交互,以使数据处理与循环激活同步。
AP平台允许在同一台机器上执行多个AP应用程序(Adaptive Applications),因此确保系统不受干扰是系统的一个特性。所以,行为不正确的AP应用程序应限制其影响其他的应用程序,例如,应该阻止应用程序消耗比指定的更多的CPU运行时间,因为这可能会对其他应用程序的正确运行造成影响。执行管理模块通过给应用程序进程分配一个或多个资源组来实现互不受干扰。然后可以为每个资源组分配CPU运行时间或内存限制,以限制应用程序的可用资源。
执行管理负责进程启动/停止的状态相关管理,因此它必须拥有启动和停止进程的特殊权利。平台健康管理模块监视进程,并在任何进程的行为不在指定参数范围内时触发恢复操作。恢复操作基于软件架构需求在平台健康管理模块定义,并在Execution Manifest中进行配置。