process μ£Όμ†Œ 곡간

ν”„λ‘œμ„ΈμŠ€ μ£Όμ†Œ 곡간 (Heap, Data, Code, Stack)

1. Code μ˜μ—­

  • ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ”λ° μžˆμ–΄μ„œ, CPUκ°€ 해석 κ°€λŠ₯ν•œ 기계어 μ½”λ“œκ°€ μ €μž₯λ˜μ–΄ 있음

    • μˆ˜μ •λ˜λ©΄ μ•ˆλ˜λ―€λ‘œ Read Only μƒνƒœλ‘œ μ €μž₯

  • 말 κ·ΈλŒ€λ‘œ μ‹€ν–‰ν•΄μ•Ό ν•  μ½”λ“œκ°€ λ“€μ–΄κ°€λŠ” μ˜μ—­

    • ex) ret = num1 + num2

2. Data μ˜μ—­

  • μ „μ—­ λ³€μˆ˜λ‚˜ static λ³€μˆ˜, λ°°μ—΄ λ“± ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” 데이터λ₯Ό μ €μž₯ν•˜λŠ” 곡간

    • ex) int[] arr; -> μ§€μ—­λ³€μˆ˜ 배열은 stack에 ν• λ‹Ήλœλ‹€.

  • μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ— μ „μ—­/static λ³€μˆ˜κ°€ μžˆλ‹€λ©΄, 컴파일 ν›„ data μ˜μ—­μ„ κ°€λ₯΄(μ°Έμ‘°)킨닀.

  • ν”„λ‘œκ·Έλž¨ μ‹œμž‘μ— ν• λ‹Ήλ˜κ³  μ’…λ₯˜ ν›„ μ†Œλ©Έν•œλ‹€. β†’ μ΄ˆκΈ°ν™” λ˜μ§€ μ•Šμ€ λ³€μˆ˜λŠ” BSS μ˜μ—­μ— μ €μž₯

μŠ€νƒκ³Ό νž™μ€ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행될 λ•Œ ν• λ‹Ήλ˜λŠ” λ©”λͺ¨λ¦¬μ΄λ‹€.

3. Heap μ˜μ—­

  • λŸ°νƒ€μž„μ— 크기가 κ²°μ •λ˜λŠ” μ˜μ—­

  • κ°œλ°œμžμ— μ˜ν•΄ 곡간이 λ™μ μœΌλ‘œ ν• λ‹Ή 및 ν•΄μ œλœλ‹€. μžλ°”μ—μ„œλŠ” 객체가 GC에 μ˜ν•΄ μ •λ¦¬λœλ‹€.

  • μ°Έμ‘°ν˜• 데이터가 ν• λ‹Ήλœλ‹€.

4. Stack μ˜μ—­

  • 컴파일 μ‹œ Stack μ˜μ—­ 크기가 κ²°μ •λœλ‹€.

  • ν•¨μˆ˜μ˜ 볡귀 μ£Όμ†Œ(PC)κ°€ μ €μž₯λ˜μ–΄ μžˆλ‹€.

  • ν•¨μˆ˜μ™€ κ΄€λ ¨λœ 데이터(μ§€μ—­λ³€μˆ˜, λ§€κ°œλ³€μˆ˜, 리턴 κ°’ λ“±)κ°€ μž„μ‹œλ‘œ μ €μž₯λ˜λŠ” 곡간

  • 값은 ν•¨μˆ˜ 호좜 μ‹œ ν• λ‹Ήλ˜λ©° λλ‚˜λ©΄ μ†Œλ©Έν•œλ‹€.

Last updated