You can use adaptive partitioning to make it easier to debug an embedded system by providing emergency access to it:
In either case, if you don't need to use this partition, the thread scheduler allocates its budget among the other partitions. This provides you with emergency access to the system without compromising performance.
A different approach is to create a separate partition in which to run any questionable applications; if they run wild, the rest of the system should continue to work normally.