1. A method of allocating memory for a first task and a second task in a computer-implemented system, where the tasks are executed by an operating system residing on the computer-implemented system, comprising the steps of: providing predefined memory requirements for the first and second tasks, the predefined memory requirements include a permanent memory component and a transient memory component, wherein the memory requirements are a function of the respective tasks and are determined at compile time; allocating a memory space for the first task according to the predefined memory requirements associated with the first task, the transient memory component being accessible to the first task only during execution of the first task; executing the first task only when the memory space available to the first task at least meets the predefined memory requirements for the first task and preventing the first task from receiving an additional memory space that exceeds the predefined memory requirements for the first task; allocating additional memory to the second task without exceeding its predefined memory requirements by: transmitting, by the first task, a portion of the transient memory component to the second task; and upon transmission of the portion, releasing access to the portion by the first task wherein the second task receives additional components without performing an allocation of additional memory.