์ด ๊ธ์ '๊ทธ๋ฆผ์ผ๋ก ๋ฐฐ์ฐ๋ ๊ตฌ์กฐ์ ์๋ฆฌ ์ด์์ฒด์ ' ๊ฐ์ 3ํ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์์ต๋๋ค. ์ฒจ๋ถ๋ ์ด๋ฏธ์ง๋ ์ฑ ์ ๊ธฐ๋ฐ์ผ๋ก ์ง์ ์ ์ํ์ต๋๋ค.
๋ชฉ์ฐจ
1. ์ค๋ ๋์ ๊ฐ๋ ๊ณผ ์ํ ๋ณํ
- ๊ฐ๋
- ์ค๋ ๋์ ์ฃผ์ ๊ณต๊ฐ
- ๋จ์ผ ์ค๋ ๋์ ๋ค์ค ์ค๋ ๋
- ์ค๋ ๋์ ์ํ ๋ณํ
- ์ค๋ ๋์ ์ ์ด ๋ธ๋ก
2. ์ค๋ ๋์ ๊ตฌํ
- ์ฌ์ฉ์ ์์ค ์ค๋ ๋
- ์ปค๋ ์์ค ์ค๋ ๋
- ํผํฉํ ์ค๋ ๋
1. ์ค๋ ๋์ ๊ฐ๋ ๊ณผ ์ํ ๋ณํ
๊ฐ๋
์ง๊ธ๊น์ง ์ดํด๋ณธ ํ๋ก์ธ์ค๋ ๋ ๊ฐ์ง ํน์ฑ์ธ ์์๊ณผ ์ ์ด๋ก ๊ตฌ๋ถํ ์ ์๋ค. ์ด ์ค ์ ์ด๋ง ๋ถ๋ฆฌํ ์คํ ๋จ์๋ฅผ ์ค๋ ๋(thread)๋ผ๊ณ ํ๋๋ฐ, ํ๋ก์ธ์ค ํ๋๋ ์ค๋ ๋ ํ ๊ฐ ์ด์์ผ๋ก ๋๋ ์ ์๋ค.
์ค๋ ๋๋ค์ ํ๋ก์ธ์ค์ ์ง์ ์คํ ์ ๋ณด๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ก์ธ์ค ๊ด๋ฆฌ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ค.
ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC)์ ์คํ ํฌ์ธํฐ(SP)๋ฑ์ ๋น๋กฏํ ์ค๋ ๋ '์คํ ํ๊ฒฝ ์ ๋ณด(๋ฌธ๋งฅ ์ ๋ณด), ์ง์ญ ๋ฐ์ดํฐ,์คํ'์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๋ฉด์ '์ฝ๋, ์ ์ญ ๋ฐ์ดํฐ, ํ'์ ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต์ ํ๋ค.
- SP(Stack Pointer) : ์คํ ํฌ์ธํฐ
- SR(Sequence Register) : ์์์ด ๋ ์ง์คํฐ
- PC(Program Counter) : ํ๋ก๊ทธ๋จ ์นด์ดํฐ
์ค๋ ๋ ์ค์์ ํ๋ก์ธ์ค์ ์์ฑ ์ค ์ผ๋ถ๊ฐ ๋ค์ด์๋ ๊ฒ์ ๊ฒฝ๋ ํ๋ก์ธ์ค(LWP, Light Weight Process)๋ผ๊ณ ํ๋ฉฐ, ๋ฐ๋๋ก ์ค๋ ๋ ํ๋์ ํ๋ก์ธ์ค ํ๋์ธ ์ ํต์ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ค๋ ํ๋ก์ธ์ค(HWP, Heavy Weight Process)๋ผ๊ณ ํ๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์๋ ์ ์ด๋ ํ๋ก์ธ์ค๊ฐ ํ๋ ์๊ณ , ํ๋ก์ธ์ค์๋ ์ค๋ ๋ ํ ๊ฐ ์ด์ ์๋ค.
์ค๋ ๋์ ์ฃผ์ ๊ณต๊ฐ
๊ฐ์ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋์ผํ ์ฃผ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค.
ํ๋ก์ธ์ค ํ๋์ ํฌํจ๋ ์ค๋ ๋๋ค์ ๊ณต๋์ ๋ชฉ์ ์ ๋ฌ์ฑํ๋ ค๊ณ ๋ณ๋ ฌ๋ก ์ํํ๋ค. ์ฆ, ํ๋ก์ธ์ค๊ฐ ํ๋์ธ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์์์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋์์ ์คํํ ์ ์๋๋ฐ, ์ค๋ ๋๋ฅผ ์ด์ฉํ๋ฉด ๋ค์ ์ด์ ์ด ์๋ค.
- ์ฌ์ฉ์ ์๋ต์ฑ ์ฆ๊ฐ
๋ค์ค ์ค๋ ๋๋ฅผ ์ ์ฉํ ์น ๋ธ๋ผ์ฐ์ ๋ ์ค๋ ๋ ํ ๊ฐ๊ฐ ํ์ผ์ ๋ก๋ฉํ๋ ๋์ ๋ค๋ฅธ ์ค๋ ๋๋ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ ์ ์๋ค. - ํ๋ก์ธ์ค์ ์์๊ณผ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๊ฐ๋ฅ
์ค๋ ๋๋ค์ด ํ๋ก์ธ์ค ์์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ฏ๋ก ์์ฉ ํ๋ก๊ทธ๋จ ํ๋๊ฐ ๋์ผํ ์ฃผ์ ๊ณต๊ฐ์์ ์ค๋ ๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์คํํ์ฌ ์์คํ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค. - ๊ฒฝ์ ์ฑ์ด ์ข์
ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ์ค๋ ๋๋ฅผ ์์ฑํ์ฌ ๋ฌธ๋งฅ ๊ตํํ๋ฉด ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค. - ๋ค์ค ์ฒ๋ฆฌ(๋ฉํฐ ํ๋ก์ธ์ฑ)๋ก ์ฑ๋ฅ๊ณผ ํจ์จ ํฅ์
๊ฐ ์ค๋ ๋๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์์์ ๋ณ๋ ฌ๋ก ์คํํ์ฌ ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค.
๋จ์ผ ์ค๋ ๋์ ๋ค์ค ์ค๋ ๋
์ค๋ ๋๊ฐ ํ ๊ฐ์ธ ๋จ์ผ ์ค๋ ๋์ ์ค๋ ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๋ค์ค ์ค๋ ๋๋ก ๊ตฌ๋ถํ๋ค.
ํ๋ ์ด์์ฒด์ ๋ ๋๋ถ๋ถ ๋ค์ค ์ค๋ ๋์ด๋ค. ๋ค์ค ์ค๋ ๋๋ ํ๋ก๊ทธ๋จ ํ๋๋ฅผ ์ฌ๋ฌ ์คํ ๋จ์๋ก ์ชผ๊ฐ์ด ์คํํ๋ค๋ ์ธก๋ฉด์์ ๋ค์ถฉ ์ฒ๋ฆฌ(๋ฉํฐ ํ๋ก์ธ์ฑ)์ ์๋ฏธ๊ฐ ๋น์ทํ๋ค. ํ์ง๋ง ๋์ผ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ ์์์ ๊ณต์ ํ๋ฏ๋ก ์์ ์์ฑ๊ณผ ๊ด๋ฆฌ์ ์ค๋ณต์ฑ์ ์ต์ํํ์ฌ ์คํ ๋ฅ๋ ฅ์ ํฅ์์ํฌ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ์ค๋ ๋๋ ์ปค๋์ด ๊ฐ์ ํ์ง ์๊ณ ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์คํํ ์ ์์ด ์๋ฒ์์ ๋ง์ ์์ฒญ์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
์ค๋ ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ
์ค๋ ๋๋ฅผ ์ฌ์ฉ์ ์์ค์์ ์ ์ฉํ ์ ์๊ณ , ํ๋ก๊ทธ๋จ ๋น๋๊ธฐ์ ์์๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉํ ์๋ ์๋ค. ์คํ ์ค์ธ ์ค๋ ๋๋ฅผ ๋๊ธฐ ์ํ๋ก ๋ฐ๊พธ๊ณ ์ ์ด๋ฅผ ๋ค๋ฅธ ์ค๋ ๋๋ก ์ฎ๊ธฐ๋ ์ํ ๋ณํ๋ฅผ ์ด์ฉํ์ฌ ๋ง์ ์์ฒญ์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์๋ ์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์๋ ์ค๋ ๋๋ฅผ ํ์ฉํ ์ ์๋ค.
์ค๋ ๋์ ์ํ ๋ณํ
์ค๋ ๋์ ํ๋ก์ธ์ค๋ ๊ณตํต์ ์ด ์๋นํ ๋ง๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค์ฒ๋ผ ์ค๋น, ์คํ, ๋๊ธฐ(๋ณด๋ฅ), ์ข ๋ฃ ์ํ๋ก ๊ตฌ๋ถํ๋ค.
์ค๋ ๋๋ ํ๋ก์ธ์๋ฅผ ํจ๊ป ์ฌ์ฉํ๊ณ ํญ์ ํ๋๋ง ์คํํ๋ค. ํ ํ๋ก์ธ์ค์ ์๋ ์ค๋ ๋๋ ์์ฐจ์ ์ผ๋ก ์คํํ๋ฉฐ, ํด๋น ์ค๋ ๋์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ์ ์คํ์ด ์๋ค.
๋ณดํต ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํด๋น ํ๋ก์ธ์ค์ ์ค๋ ๋๋ ํจ๊ป ์์ฑํ๋ค. ๋จ, ์ค๋ ๋ ์์ฑ์์๋ ์ด์์ฒด์ ๊ฐ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๊ณต์ ํ ์์์ ์ด๊ธฐํํ ํ์๊ฐ ์๋ค. ํด๋น ํ๋ก์ธ์ค๊ฐ ์คํ๊ณผ ๋ ์ง์คํฐ๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ์ข ๋ฃ๋ณด๋ค๋ ์ค๋ฒํค๋๊ฐ ํจ์ฌ ์ ๋ค.
์ค๋ ๋์ ์ ์ด ๋ธ๋ก(Thread Control Block)
ํ๋ก์ธ์ค๊ฐ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ฏ์ด ์ค๋ ๋๋ ์ค๋ ๋ ์ ์ด ๋ธ๋ก(TCB)์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ๊ทธ๋ฐ๋ฐ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ฅผ ํ ๊ฐ ์ด์ ๊ฐ์ง ์ ์์ผ๋ฏ๋ก, ๊ฒฐ๊ตญ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก์ ์ค๋ ๋ ์ ์ด ๋ธ๋ก์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์ค๋ ๋ ์ ์ด ๋ธ๋ก์ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก๊ณผ ๊ฐ์ ๋ ์ง์คํฐ ๊ฐ, ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ์คํ ํฌ์ธํฐ, ์ค์ผ์ค๋ง ์ํ ์ธ์๋ ์ค๋ ๋ ID์ ํด๋น ์ค๋ ๋๋ฅผ ํฌํจํ๋ ํ๋ก์ธ์ค ํฌ์ธํฐ ๊ฐ์ ํน์ ๊ฐ๋ ์ ์ฅํ๋ค.
- ์คํ ์ํ : ํ๋ก์ธ์ ๋ ์ง์คํฐ, ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ์คํ ํฌ์ธํฐ
- ์ค์ผ์ค๋ง ์ ๋ณด : ์ํ(์คํ, ์ค๋น, ๋๊ธฐ), ์ฐ์ ์์, ํ๋ก์ธ์ ์๊ฐ
- ๊ณ์ ์ ๋ณด
- ์ค์ผ์ค๋ง ํ์ฉ ๋ค์ํ ํฌ์ธํฐ
- ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)์ ํฌํจํ๋ ํฌ์ธํฐ
2. ์ค๋ ๋์ ๊ตฌํ
- ์ฌ์ฉ์ ์์ค ์ค๋ ๋ : ๋ค๋์ผ(n:1) ๋งคํ
- ์ปค๋ ์์ค ์ค๋ ๋ : ์ผ๋์ผ(1:1) ๋งคํ
- ํผํฉํ ์ค๋ ๋ : ๋ค๋๋ค(n:m) ๋งคํ
์ฌ์ฉ์ ์์ค ์ค๋ ๋
์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Pthread, Win32 ์ค๋ ๋, ์๋ฐ ์ค๋ ๋ API ๋ฑ)๋ฅผ ์ด์ฉํ์ฌ ์๋ํ๊ณ , ์ฌ์ฉ์ ์์ญ์ ์๋ ์ค๋ ๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์ปค๋ ์์ญ์ ์ค๋ ๋ ํ ๊ฐ์ ๋ค๋์ผ(n:1)๋ก ๋งคํ๋๋ค.
- ์ค๋ ๋์ ๊ด๋ จ๋ ๋ชจ๋ ํ์๋ฅผ ์ฌ์ฉ์ ์์ญ์์ ํ๋ฏ๋ก ์ปค๋์ด ์ค๋ ๋์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅธ๋ค.
- ์ค๋ ๋ ๊ตํ์ ์ปค๋์ด ๊ฐ์ ํ์ง ์์ ์ปค๋์์ ์ฌ์ฉ์ ์์ญ์ผ๋ก ์ ํํ ํ์๊ฐ ์๋ค.
- ์ปค๋์ ์ค๋ ๋๊ฐ ์๋ ํ๋ก์ธ์ค๋ฅผ ํ ๋จ์๋ก ์ธ์ํ๊ณ ํ๋ก์ธ์๋ฅผ ํ ๋นํ๋ค(ํ๋ก์ธ์ค ํ ์ด๋ธ ์ ์ง) : ๋ค๋์ผ ๋งคํ
์ฅ์
์ฌ์ฉ์ ์์ญ์์ ์ค๋ ๋๋ฅผ ๊ตฌํํ๋ฉด ์ปค๋์์ ์ค๋ ๋๋ฅผ ์ง์ํ ํ์๊ฐ ์์ด ๋ค์ ์ฅ์ ์ด ์๋ค.
- ์ด์์ฑ์ด ๋์ : ์ปค๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์ค์ผ์ค๋ง์ ํ ์ ์์ด ๋ชจ๋ ์ด์์ฒด์ ์ ์ ์ฉํ ์ ์๋ค.
- ์ค๋ฒํค๋๊ฐ ์ ์ : ์ค์ผ์ค๋ง์ด๋ ๋๊ธฐํ๋ฅผ ํ๋ ค๊ณ ์ปค๋์ ํธ์ถํ์ง ์์ผ๋ฏ๋ก ์ปค๋ ์์ญ์ผ๋ก ์ ํํ๋ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ ๋ค.
- ์ ์ฐํ ์ค์ผ์ค๋ง์ด ๊ฐ๋ฅ : ์ปค๋์ด ์๋ ์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ ๋ ์ค์ผ์ค๋ง์ ์ ์ดํ๋ฏ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๊ฒ ์ค์ผ์ค๋ง์ ํ ์ ์๋ค.
๋จ์
- ์์คํ
์ ๋์์ฑ์ ์ง์ํ์ง ์์ : ์ค๋ ๋๊ฐ ์๋ ํ๋ก์ธ์ค ๋จ์๋ก ํ๋ก์ธ์๋ฅผ ํ ๋นํ์ฌ ๋ค์ค ์ฒ๋ฆฌ ํ๊ฒฝ์ ๊ฐ์ถฐ๋ ์ค๋ ๋ ๋จ์๋ก ๋ค์ค ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ค. ๋์ผํ ํ๋ก์ธ์ค์ ์ค๋ ๋ ํ ๊ฐ๊ฐ ๋๊ธฐ ์ํ๊ฐ ๋๋ฉด ์ด ์ค ์ด๋ค ์ค๋ ๋๋ ์คํํ์ง ๋ชปํ๋ค.
์ฌ์ฉ์ ์์ค ์ค๋ ๋๋ ์ปค๋ ์์ฒด๊ฐ ์ค๋ ๋ ํ ๊ฐ๋ก ๊ตฌ์ฑ๋์ด ์ค๋ ๋์์ ์์คํ ํธ์ถ์ ์คํํ๋ฉด ์ ์ฒด ์์ ์ด ์ด ์์คํ ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ๋จ์ ์ด ์๋ค. - ํ์ฅ์ ์ ์ฝ์ด ๋ฐ๋ฆ : ์ปค๋์ด ํ ํ๋ก์ธ์ค์ ์ํ ์ฌ๋ฌ ์ค๋ ๋์ ํ๋ก์ธ์๋ฅผ ๋์์ ํ ๋นํ ์ ์์ด ๋ค์ค ์ฒ๋ฆฌ ์์คํ ์์ ๊ท๋ชจ๋ฅผ ํ์ฅํ๊ธฐ ์ด๋ ต๋ค.
- ์ค๋ ๋ ๊ฐ ๋ณดํธ ๋ถ๊ฐ๋ฅ : ์ค๋ ๋ ๊ฐ ๋ณดํธ์ ์ปค๋์ ๋ณดํธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค. ์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ ๋ ๊ฐ ๋ณดํธ๋ฅผ ์ ๊ณตํด์ผ ํ๋ก์ธ์ค ์์ค์์ ๋ณดํธ๊ฐ ๊ฐ๋ฅํ๋ค.
์ปค๋ ์์ค ์ค๋ ๋
์ปค๋(์ด์์ฒด์ )์์ ์ง์ํ๊ณ , ์ฌ์ฉ์ ์์ญ ์ค๋ ๋๋ณ๋ก ์ปค๋ ์์ญ ์ค๋ ๋๊ฐ ์ผ๋์ผ(1:1)๋ก ๋งคํ๋๋ค. ์๋์ฐ NT, XP, 2000, ๋ฆฌ๋ ์ค, ์๋ผ๋ฆฌ์ค 9 ์ด์ ๋ฒ์ ์ ์ด์์ฒด์ ๊ฐ ์ปค๋ ์์ค ์ค๋ ๋๋ฅผ ๊ตฌํํ๋ค.
์ปค๋์ด ์ค๋ ๋์ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ๊ด๋ฆฌํ๋ค(PCB์ TCB ์ ์ง). ์ปค๋์ด ๊ฐ์ ํ๋ฏ๋ก ์ฌ์ฉ์ ์์ญ์์ ์ปค๋ ์์ญ์ผ๋ก ์ ํ์ด ํ์ํ๋ค.
์ฅ์
- ์ปค๋ ์ง์ ๋ถ์กฑ ๋ฌธ์ ํด๊ฒฐ : ์ปค๋์ด ์ง์ ์ค์ผ์ค๋งํ๊ณ ์คํํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ์์ค์ ์ค๋ ๋ ์ปค๋ ์ง์์ด ๋ถ์กฑํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์์
- ์ค๋ ๋ ๋ณํ ์ํ ๊ฐ๋ฅ : ์ปค๋์ด ๊ฐ ์ค๋ ๋๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด ๋์ผํ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ฅผ ๋ณํ์ผ๋ก ์ํํ ์ ์๋ค.
๋์ผํ ํ๋ก์ธ์ค์ ์๋ ์ค๋ ๋ ์ค ํ ๊ฐ๊ฐ ๋๊ธฐ ์ํ๊ฐ ๋๋๋ผ๋ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์คํํ ์ ์๋ค.
๋จ์
- ์ค๋ฒํค๋๊ฐ ์ปค์ง : ์ปค๋์ด ์ ์ฒด ํ๋ก์ธ์ค์ ์ค๋ ๋ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋๊ฐ ์ปค์ง๋ค.
- ๋ง์ ์์์ด ํ์ : ์ค์ผ์ค๋ง๊ณผ ๋๊ธฐํ๋ฅผ ์ํด ๋ ๋ง์ ์์์ด ํ์ํ๋ค.
ํผํฉํ ์ค๋ ๋
์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์ปค๋ ์์ค ์ค๋ ๋๋ฅผ ํผํฉํ ํํ๋ก ์ฌ์ฉ์ ์์ญ์์ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ , ๋ค์์ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ๋ค์์ ์ปค๋ ์ค๋ ๋๊ฐ ๋ค๋๋ค(n:m)๋ก ๋งคํ๋๋ค.
์์คํ
ํธ์ถ์ ํ ๋ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์ค๋จํ๋ ๋ค๋์ผ ๋งคํ์ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์ค๋ ๋ ์๋ฅผ ์ ํํ๋ ์ผ๋์ผ ๋งคํ์ ์ปค๋ ์์ค ์ค๋ ๋ ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฆ, ์ฌ์ฉ์ ์์ค ์ค๋ ๋๋ ์ปค๋ ์์ค ์ค๋ ๋์ ๋น์ทํ ๊ฒฝ๋ ํ๋ก์ธ์ค(LWP)์ ๋ค๋๋ค(n:m)๋ก ๋งคํ๋๊ณ , ๊ฒฝ๋ ํ๋ก์ธ์ค๋ ์ปค๋ ์์ค ์ค๋ ๋์ ์ผ๋์ผ(1:1)๋ก ๋งคํ๋๋ค.
ํผํฉํ ์ค๋ ๋๋ ์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ต์ ์ ์ฑ๋ฅ์ ์ง์ํ๋๋ก ์ปค๋์ด ๊ฒฝ๋ ํ๋ก์ธ์ค ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ์ฌ ์ฌ์ฉ์ฌ ์์ค ์ค๋ ๋์ ์ปค๋ ์์ค ์ค๋ ๋๊ฐ ๋ค๋๋ค(n:m)๋ก ๋งคํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค๋ ์์ญ์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ ๋๋ฅผ ์ด ๋งคํ์ด ๊ฒฐ์ ํ ์ ์์ด ๋ณํ ์คํ์ ์๋ฏธ๊ฐ ์์ ๋๋ ๋ค๋์ผ(n:1)๋งคํ๋ ๊ฐ๋ฅํ๋ค.
๋ํ, ์ค๋ ๋ ํ๋ง์ ์ด์ฉํ์ฌ ์ผ๋์ผ(1:1) ๋งคํ์ผ๋ก ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์๋ค. ์๋ผ๋ฆฌ์ค 9 ์ด์ ๋ฒ์ ๊ณผ ThreadFiber ํจํค์ง๊ฐ ์๋ ์๋์ฐ NT, 2000 ๋ฑ ์ด์์ฒด์ ๊ฐ ํผํฉํ ์ค๋ ๋๋ฅผ ๊ตฌํํ๋ค.
์ค๋ ํ๋ก์ธ์ค์ ํน์ง์ด ๋์ผํ๋ฉด์๋ ๋งค์ฐ ํจ์จ์ ์ด๋ค.
๐์ค๋ ๋ ํ๋ง(thread pooling)
์์คํ ์ด ๊ด๋ฆฌํ๋ ์ค๋ ๋ ํ(pool)์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๊ณตํ์ฌ ์ค๋ ๋๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฆ, ๋ฏธ๋ฆฌ ์์ฑํ ์ค๋ ๋๋ฅผ ์ฌ์ฌ์ฉํ๋๋ก ํ์ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๋ ์๊ฐ์ ์ค์ฌ์ ์์คํ ์ ๋ถ๋ด์ ๋์ด ์ค๋ค. ๋ ๋์์ ์์ฑํ ์ ์๋ ์ค๋ ๋ ์๋ฅผ ์ ํํ์ฌ ์์คํ ์ ์์ ์๋น๋ฅผ ์ค์ฌ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ฒด ์ฑ๋ฅ์ ์ผ์ ์์ค์ผ๋ก ์ ์งํ๋ค.
'๐CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ์ค์ผ์ค๋ฌ์ ์ข ๋ฅ: ์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ ์ค์ผ์ค๋ฌ (0) | 2021.08.04 |
---|---|
[OS] ๋ธ๋ญ/๋ ผ๋ธ๋ญ, ๋๊ธฐ/๋น๋๊ธฐ (0) | 2021.07.28 |
[OS] ์ํธ๋ฐฐ์ ๋ฐฉ๋ฒ : ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ (0) | 2021.05.02 |
[OS] ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฐฉ๋ฒ(Inter Process Communication, IPC) (1) | 2021.05.02 |
[OS] ํ๋ก์ธ์ค (0) | 2021.04.02 |
๋๊ธ