thread๋ ํ process ๋ด์์ ์คํ๋๋ ๋์์ ๋จ์๋ฅผ ๋งํ๋ค.
MultiThread๋ ํ๋์ process๊ฐ ๋์์ ์ฌ๋ฌ๊ฐ์ ์ผ์ ์ํํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ
ํ process๋ด์ ์ฌ๋ฌ ๊ฐ์ thread ๊ฐ ์๊ณ , ๊ฐ thread๋ค์ Stack๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง(Code, Data, Heap) ์์ญ์ ๊ณต์ ํ๊ฒ ๋๋ค.
thread๋ process๋ด์์ ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๋ค. ์ฆ, ๋ ๋ฆฝ์ ์ผ๋ก ํจ์๋ฅผ ํธ์ถํจ์ ์๋ฏธํ๊ณ ์ด๋ฅผ ์ํด ๋ ๋ฆฝ์ ์ธ stack memory์ PC Register๊ฐ ํ์ํ๋ค.
(thread๋ผ๋ฆฌ๋ context switch๊ฐ ์ผ์ด๋๊ฒ ๋๋๋ฐ, PC register์ code address๊ฐ ์ ์ฅ๋์ด ์์ด์ผ ์คํํ ์ ์๊ธฐ ๋๋ฌธ)
Q. thread๋ ์ ๋
๋ฆฝ์ ์ธ stack memory ์์ญ์ด ํ์ํ ๊น?
stack์์ญ์ ํจ์ ํธ์ถ ์ ์ ๋ฌ๋๋ ์ธ์, ํจ์์ Return Address, ํจ์ ๋ด ์ง์ญ๋ณ์ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํ memory์์ญ์ด๋ค. thread๊ฐ process๋ด์์ "๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ์คํ"ํ ๋ค๋ ๊ฒ์ "๋ ๋ฆฝ์ ์ผ๋ก ํจ์๋ฅผ ํธ์ถ"ํจ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๊ฐ thread๊ฐ ๋ ๋ฆฝ์ ์ธ ๋์์ ์คํํ๊ธฐ ์ํด์๋ ๊ฐ thread์ stack memory ์์ญ์ด ๋ ๋ฆฝ์ ์ด์ฌ์ผ ํ๋ค.
Q.process์ thread ๋น๊ต
process๋ OS๋ก ๋ถํฐ ์์์ ํ ๋น๋ฐ๋ ์์ ์ ๋จ์
thread๋ process๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ์ ๋จ์
process๋ memory๊ณต๊ฐ์ code,data,heap,stack ์์ญ์ด ์กด์ฌ
thread๋ process๋ด์์ code,data,heap์์ญ์ ๊ณต์ ํ๊ณ ๊ฐ๊ฐ์ด ๋ ๋ฆฝ์ ์ธ stack์์ญ์ ๊ฐ์ง