[RTLIB_AS-RTM]  Bugfix vectors management

This patches a tricky problem probably related to a misused vector instead
of a simples linked list. Indeed, the client code of these vectors is using
push_back calls to put new elements into the vector.

Since elements in the vector are added via a push_back function, the
result of:
   vector.resize(1)
   vector.push_back(element)
will lead to a vector with two elements instead of one as wanted.

If random access is not required on these data structures we should better
switch to a list based implementation. However, for the time being, this
patch should solve some bugs.

More details are tracked in the bosp-devel ML:
https://groups.google.com/d/msg/bosp-devel/7K-tIuC7E10/UmFaK1vRoXUJ

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_RPC] Bugfix typo in CGroups code

This fixes a double typo in the conditional code compilation directives
which permanently disabled the compilation of CGroups support code.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Add PARSEC based profiling scripts

This is a set of scripts to profile the BarbequeRTRM behaviors on
managing an highly congested system and compare Performances/Energy
with respect to a similar workload running on a plain Linux kernel.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Add plot generator script

This is the first implementation of a generic Python script to parse
profiling data and plot a set of comparison graphs, one for each metric.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Generate plots for all threads configurations

The profiling test is executed with different levels of parallelism.
This patch ensure to produce different plots for each parallelism level.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Make logging more useful

This is a dummy patch to display, by default, just the filename of plots
being produced.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Add single graph for each metric

This new graph allows a comparison between relative improvements on each
collected metrics.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Profiling] Cosmetics

Overall code review for improved readability and maintainability.
This new version provides a complete separation among:
1. statistics computation and collection, in a single nested dictionary
2. graphs plotting, with support for two different flavors

All plots are produced by visiting the same nested dictionary.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[BospShell] Discard ATerm errors

Each time aterm is started it try to add an entry to /var/run/utmp, which
requires root permissions. This addition could be inhibited by using the
"-ut" flag, but this seem not working.
Thus, for the time being, we simply discard all warning/error messages
generated by aterm.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM 1/5] Aggregate EXC Management methods

All the methods related to EXC Management has been aggregated into a
consecutive header section.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM 2/5] Aggregate EXC Utilities

All the EXC utility methods have been aggregated and promoted to be
public. Indeed, it makes sense to give both query and limited configuration
control to the EXC spawning thread.
For example, the main application could be interested into configuring
the CPS of a generated thread.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM 3/5] Aggregate State Machine Internals

All the internal methods related to the State Machine defined by the
Abstract Execution Model (AEM) have been grouped into a singe header
subsection.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM 4/5] Aggregate State Machine status

Handlers, status and control flags for the AEM-defined State Machine
have been grouped into pair of dedicated sections.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM 5/5] Add sections headers

Application callbacks and Constraints management methods have been
grouped into a pair of dedicated header sections.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_Plain] Add Initialization description

This adds a little documentation describing how to initialize the RTLib
for use with both the Plain API or the other higher level of abstraction
APIs.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM] Add AEM API overall description

This is an overall view on the Abstract Execution Model and the
corresponding API.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM] Add AEM public API documentation

This provides a documentation of the public API exposed by the AEM.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM] Add the pBbqueEXC_t data type

Each class which is a specialization of the BbqueEXC base class could be
referenced using this shared pointer.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[RTLIB_AEM] Cosmetics

Signed-off-by: Patrick Bellasi <derkling@gmail.com>
[Configure] Move UID-shift to be a configuration option

Internally to the BarbequeRTRM, each application is represented by a UID
which is obtained using this formula:
  UID = PID << N + EXC_ID
where:
-  PID, is the process ID of the RTLib control thread
-  N, is the value represented by this constant
-  EXC_ID, the the ID of the specific application EXC

This patch makes N a configuration option, so that it could be exposed to
the RTLib code as well.

Signed-off-by: Patrick Bellasi <derkling@gmail.com>