ํฌ์ŠคํŠธ

Memory Heap/Stack

Memory Heap/Stack

๐Ÿ’ซ Heap


์ฃผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋™์  ํ• ๋‹น
i.e. malloc, calloc, realloc

  • Heap => Use CLRโ€™s Garbage Collector
    • ํž™์— ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด, ๊ทธ ๊ฐ์ฒด๋ฅผ ์“ฐ๋ ˆ๊ธฐ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ˆ˜๊ฑฐ
    • ์™œ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌํ„ด์„ ํ•ด์ฃผ๋Š” ์Šคํƒ ๋Œ€์‹  ํž™์„ ์“ฐ๋Š”๊ฐ€?
    • Because ์ฝ”๋“œ๋ธ”๋Ÿญ์ด ๋๋‚˜๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    • So ํ”„๋กœ๊ทธ๋จธ๊ฐ€ ์›ํ•œ๋‹ค๋ฉด ์–ธ์ œ๊นŒ์ง€๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ Heap์„ CLR์ด ์ œ๊ณต

๐Ÿ’ซ ๊ด€๊ณ„


Heap๊ณผ Stack์€ ๊ฐ™์€ ์˜์—ญ์˜ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•จ.

Heap: ๋ฉ”๋ชจ๋ฆฌ ์œ„์ชฝ ์ฃผ์†Œ๋ถ€ํ„ฐ ํ• ๋‹น.
Stack: ๋ฉ”๋ชจ๋ฆฌ ์•„๋ž˜์ชฝ ์ฃผ์†Œ๋ถ€ํ„ฐ ํ• ๋‹น.

Heap Overflow, Stack Overflow.

๐Ÿ’ซ Stack


@@ Assembly

Assembly๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ, ์ €์žฅ๋˜๋Š” ๊ฐ’ ์ €์žฅ, Subroutine, Procedure ๋“ฑ
Stack ์ž๋ฃŒ ๊ตฌ์กฐ
BasePointer ์‹œ์ž‘ ์œ„์น˜๋ฅผ BP ๋ ˆ์ง€์Šคํ„ฐ, StackPointer ์ œ์ผ ์œ„ ์œ„์น˜๋ฅผ SP ๋ ˆ์ง€์Šคํ„ฐ
Glow Down, ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ๋‹ฌ๋ฆฌ ๊ฑฐ๊พธ๋กœ ์ž๋ž€๋‹ค

  • Stack => ์Œ“์˜€๋‹ค๊ฐ€, ์ฝ”๋“œ ๋ธ”๋Ÿญ์ด ๋๋‚˜๋ฉด ์ฐจ๋ก€๋Œ€๋กœ ํ’€๋ฆผ (๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ)
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.