From d707b710770ddb94c49660f604f4fe956d32ade2 Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Sat, 20 Apr 2024 13:20:05 +0100 Subject: [PATCH] Autosave: 2024-04-20 13:20:05 --- .zk/notebook.db | Bin 3244032 -> 3244032 bytes zk/Heap_memory.md | 10 ++++++++++ zk/Stack_memory.md | 40 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 zk/Heap_memory.md diff --git a/.zk/notebook.db b/.zk/notebook.db index 53d16bd2aaf9810018e2028073be8bc9ee44da68..d2fc3c1ef7e31a111eee0a6fbcd4475fac472354 100644 GIT binary patch delta 12909 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 delta 1886 zcmb`IZEPIH8GvVI=Wh2t_VzAkpJT_49oJ4sd^ykV-RFBF5za{pz;)$*AYll-5b_WT5T^Vb7-ri7aG>k}Zw$i!?Df(2-h?ee>**6e zI6nQBQmMj96;-NSrHU(6&ofo;3T9J}yV<|<4RE%tVIy4~hnV*LgTFzmd%6Vb=g5uQ z{zWJ8r9b=y|8M`wSJ!*oMGrw76;JWRT@^@}r$a{K{EwtMHuKKf9V7I_Ki9R=?6$zw zm-mx5|9_D@oFDbjq|}k6XY-yq`bsOQr?1TMTfDikk@g3VU#Rjp?1lU);8zzS^B?f| zjQCB_<^ReHh!zjPZU6J*Y$n(FALV<{x1>z19=<&17wL{+q$opDGmrDf6? z-Oy~sggvgL{2QQwQvkPfzvIqv_i_Sy4V;pGDHY(yQWtG23Ww;UMWOF5wwA9W zMb)&Vl}kD#l`=HP)-_^Ss-@c*7R4lnp=UH*)`(72hMmi$(`j2Fs*}#BrY0Lxu?d0U zWB3^XH#QOc^ARoyKcxIha8DEb&~w70;Z^(`&fyK*Z@I_0dpLxCg~r^WmEiXvz8g=7 zQy*OqGDP>I>!HROZU|K=e^i>JGe@Ow!AtJ%k4kStT0bK-xYdG`YWXh%NK0j2s?3Kg z^O4H@y2^a?!h9XhK8qLm@FcFE#IZ@-a1O7Z>2(w%WgF>SCTW?rZ7GIorA@XjB}1&V ztlGBW=(e8I^c+!4MNZ1LscN>9GVGkHISzbka(Vsaa^vK3)8z7omzSIG?}JaeTOMe} zjj(wtK31cJv60crXk%<*w7c=Kue|dot_eTt^8Fnt3BV zOoO}O7gMLL4)?UxIo`)z5%#+LV&@YO?sLz-*7=k-%F-AGbsU=D%N^XB(l~YCjZVg9 z#ummMjIE4qj4t=U8}a9Pf31>XXcq|WVsUqb>dW10pFSRgN{;nB5%rQ|dHU{Qc}o+* zg@IAK^l%WO-i?Wfha0trOAmV?O3`Yc+#N$GUnq?*`yj;Qwoxb*n7)S|en58U-UsEj z28h3F7xJY+0iu#5uxq^!@q^v;$PxLWHXasAqimsTr>9E_bo+x&TQuwwgkT^L7Ah<8 z3oG04`KD%JC#Y4i)D?O^^iyGH=ujvk{#q=HUt=|$Xm_*4#6^DZT2ZTJ$}%0t$yuo! zk=d)F>4st?)0&#mRZUlucG`4QEtfG&TT2o{S5;yr9hO=vsi`*0Y^^F0{r0`#?9}vh z!kwP(EAB+=?_CFH$U0rHmtf0_RV+q}DYdf!3v9ek#z+~K}{kW6#*)pz3|+Me;O zqp$W6AMGC@5!(G$e6QPih-|&x9Yx?7`tkK(miAwZcSq!&bh;-kCsK-{r8G^JY3~?0 xL~mY;2VLAxxa{^?(oVAfqo3ge0DZvh<4oRQywCUpvmayf3S-GlohM7z{sjv(IP?Gj diff --git a/zk/Heap_memory.md b/zk/Heap_memory.md new file mode 100644 index 0000000..c03a6ea --- /dev/null +++ b/zk/Heap_memory.md @@ -0,0 +1,10 @@ +--- +id: 18bl +title: Heap_memory +tags: [] +created: Saturday, April 20, 2024 +--- + +# Heap_memory + +## Related notes diff --git a/zk/Stack_memory.md b/zk/Stack_memory.md index c39abc9..9310fb7 100644 --- a/zk/Stack_memory.md +++ b/zk/Stack_memory.md @@ -7,8 +7,18 @@ created: Tuesday, April 16, 2024 # Stack memory -Along with heap memory, programs make use of _stack memory_ during the runtime -of programs. +## Summary + +- Along with heap memory, programs make use of _stack memory_ during the runtime + of programs. + +- Specifically used to keep track of memory used during function executions + within a given scope: control flow, local variables, returned value. + +- Uses a LIFO data-structure + +- Best suited for small-sized singular values rather than large or complex data + types ## Stack memory @@ -25,6 +35,30 @@ from the top down. A **stack pointer** is used to manage the items in the stack. This value is stored in a [[CPU_architecture#registers|register]] and its value is the memory -address of the item currently on the top of the stack. +address of the item currently on the top of the stack. Note: _not_ the value +itself, the _address_ of the value. + +When a new value is added to the top of the stack, the pointer's value is +adjusted to increase the size of the stack and make room for the new value. So +this will be a new memory address for the latest item. When an item is removed, +the reverse happens. The previously top address is cleared and the pointer +points to the new top item. + +### Role in program execution + +1. Function call management: a stack records the key information pertaining to + the execution of a function: parameters, local variables, the location of the + address for the returned value. + +2. Local variable storage: storing the variables local to a function's scope and + removing them once the function returns, avoiding + [[Memory_leaks|memory leaks]] + +3. Control flow: record from where a function is called and where its return + value should be stored, meaning the right value is always returned no matter + how nested it is. + +4. Recursion: individuating each call of a function that calls itself and its + given step to avoid infinite loops ## Related notes