System stack: Difference between revisions

Content added Content deleted
(Stack frame added, stack use in high-integrity systems, cases when multiple stacks used)
m (on->of)
Line 9: Line 9:
* In [[concurrent programming]] each [[task]] has a ''stack'' of its own. Differently to the [[heap]] ''stack'' need not to be shared between the [[task]]s and thus no interlocking is required;
* In [[concurrent programming]] each [[task]] has a ''stack'' of its own. Differently to the [[heap]] ''stack'' need not to be shared between the [[task]]s and thus no interlocking is required;
* The language run-time environment may maintain multiple ''stacks'' for one [[task]]. For example, the arguments and the local variables of a subprogram may be allocated on a stack different from the stack used for the return. When the subprograms may return variable size values this prevents copying of those. Upon return stacks are swapped;
* The language run-time environment may maintain multiple ''stacks'' for one [[task]]. For example, the arguments and the local variables of a subprogram may be allocated on a stack different from the stack used for the return. When the subprograms may return variable size values this prevents copying of those. Upon return stacks are swapped;
* Secondary ''stacks'' may be used for allocation on non-contiguous objects, typically strings.
* Secondary ''stacks'' may be used for allocation of non-contiguous objects, typically strings.