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 |
* Secondary ''stacks'' may be used for allocation of non-contiguous objects, typically strings. |