cFE Executive Services

We're working on a video! In the meantime, we hope the text below helps.

 

Motivation

Every system (including our brains) has some core component within them that keeps the lights on. It keeps the heart pumping, watches to make sure everything else is working, and helps higher-level components succeed. One of the benefits of adopting an architecture like cFS instead of a "Super Loop" that cascades from function to function is you get access to that "Executive Function". It's the "Core" that manages the whole system.

 

The Executive System

This is the bureaucrat that keeps things running in cFS. If your computer restarts, this system handles starting the whole Executive Layer, then the whole Flight Software ecosystem. It can tell you what happened along the way so, if you need to access a log of performance and errors, this is the system that manages that. 

Critically, it's also the system that starts and manages all of your higher-level apps. It reserves and controls the resources your apps need like memory and boot order. It can also pause, stop, and restart apps for you.

For memory, you can give it a pool to share across functions. It will monitor what's using what blocks. And, for critical data, it can store information in ways that protect it even if the computer restarts. 

 

Quick Notes

- In the code, Executive Services is abbreviated to "ES".

- Learn early how to effectively use the Critical Data Store (CDS) system. Not all data should be marked critical but there are things (like TIME parameters) that you should stash safely.

- Although you don't have to, it's recommended that your apps register with the Executive Services when they start up so their behavior is captured in the logs. (What's the point of having a great logging system if you're not going to use it?)