Process vs Thread

  • Processλž€ κ°„λ‹¨νžˆ λ§ν•΄μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄λ‹€

    • ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ©΄, OSλ‘œλΆ€ν„° 싀행에 ν•„μš”ν•œ μžμ› (memory)λ₯Ό ν• λ‹Ήλ°›μ•„ processκ°€ λœλ‹€

    • 즉, processλŠ” 싀행쀑인 ν”„λ‘œκ·Έλž¨μœΌλ‘œ Diskλ‘œλΆ€ν„° memory에 μ μž¬λ˜μ–΄, CPU의 할당을 받을 수 μžˆλŠ” 것을 λ§ν•œλ‹€.

  • ProcessλŠ” ν”„λ‘œκ·Έλž¨μ„ μˆ˜ν–‰ν•˜λŠ”λ° ν•„μš”ν•œ μ£Όμ†Œ 곡간, file, memory λ“±μ˜ μžμ›, 그리고 thread둜 κ΅¬μ„±λ˜μ–΄ 있으며,

    • Process의 μžμ›μ„ μ΄μš©ν•΄μ„œ μ‹€μ œλ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 것이 λ°”λ‘œ thread이닀

  • ProcessλŠ” ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜, 볡귀 μ£Όμ†Œ, 둜컬 λ³€μˆ˜μ™€ 같은 μž„μ‹œ 자료λ₯Ό κ°–λŠ” ν”„λ‘œμ„ΈμŠ€ μŠ€νƒκ³Ό μ „μ—­ λ³€μˆ˜λ₯Ό μˆ˜λ‘ν•˜λŠ” 데이터 μ„Ήμ…˜μ„ ν¬ν•¨ν•œλ‹€

    • λ˜ν•œ, processλŠ” μ‹€ν–‰ 쀑에 λ™μ μœΌλ‘œ ν• λ‹Ήλ˜λŠ” λ©”λͺ¨λ¦¬μΈ Heap을 ν¬ν•¨ν•œλ‹€

  • λͺ¨λ“  processμ—λŠ” μ΅œμ†Œν•œ ν•˜λ‚˜ μ΄μƒμ˜ threadκ°€ μ‘΄μž¬ν•˜λ©°, λ‘˜ μ΄μƒμ˜ threadλ₯Ό 가진 processλ₯Ό multi-threaded process라고 ν•œλ‹€

    • Tip) Threadλ₯Ό processλΌλŠ” μž‘μ—… 곡간 (곡μž₯)μ—μ„œ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 일꾼 (worker)둜 μƒκ°ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° 쉽닀!

  • ν•˜λ‚˜μ˜ processκ°€ κ°€μ§ˆ 수 μžˆλŠ” thread의 κ°œμˆ˜λŠ” μ œν•œλ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ‚˜, threadκ°€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ”λ° κ°œλ³„μ μΈ λ©”λͺ¨λ¦¬ 곡간 (호좜 μŠ€νƒ)을 ν•„μš”λ‘œ ν•˜κΈ° λ•Œλ¬Έμ— process의 memory ν•œκ³„μ— 따라 생성할 수 μžˆλŠ” thread의 μˆ˜κ°€ κ²°μ •λœλ‹€

Last updated