Thread์ ๋ํด์ ์์๋ณธ๋ค.
์ฐ๋ ๋(Thread)
์ฐ๋ ๋๋ ํ๋ก๊ทธ๋จ **๋ด๋ถ์ ํ๋ฆ(๋งฅ)**์ด๋ค.
์ด๋ฐ ์ฝ๋๋ ํ๋์ ํ๋ฆ์ ๊ฐ์ง๊ณ ์๊ณ ์ด๊ฒ์ ์ฐ๋ ๋๋ผ ๋ถ๋ฅธ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ํ๋ก๊ทธ๋จ์ ํ๋์ ์ฐ๋ ๋๋ฅผ ๊ฐ๋๋ค.
๋ค์ค ์ฐ๋ ๋(Mulitithreads)
ํ๋์ ํ๋ก๊ทธ๋จ์ ์ฐ๋ ๋๊ฐ 2๊ฐ ์ด์ ์กด์ฌํ๋ ๊ฒ์ ๋ค์ค ์ฐ๋ ๋๋ผ๊ณ ํ๋ค. ์ด๋ ๊ฒ ํ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋ ์ฆ, ํ๋ฆ์ด ์์ ์ ์๋ ์ด์ ๋ ์ฐ๋ ๋๊ฐ ๋น ๋ฅธ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์ค์์นญ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฌํ ๋์์ผ๋ก ์ฌ์ฉ์๋ ์ฌ๋ฌ ์ฐ๋ ๋๊ฐ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค.
์ด ๋, ๋์์ ์ํ๋๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ concurrent, ์ค์ ๋์์ ์ํ๋๋ ๊ฒ์ simultaneous๋ผ๊ณ ํ๋ค.
- concurrent
- CPU๊ฐ ํ๋์ธ ํ๊ฒฝ์์ ์ค์์นญ์ ์ํด ๋์์ ์ํ
- simultaneous
- ์ฌ๋ฌ๊ฐ์ CPU ํ๊ฒฝ์์ ์ค์ ๋ก ๋์์ ์ํ๋๋ ๊ฒฝ์ฐ
์์
๋ค์ค ์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์๋ Web browser ์ด๋ค. ํ๋ฉด์ ์ถ๋ ฅํ๋ ์ฐ๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์ฐ๋ ๋๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ๋ก ์ํํ๊ณ ์๋ค. ๊ทธ ์ธ์๋ Word processor, Media player ๋ฑ ํ์ฌ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์ ๋ค์ค ์ฐ๋ ๋๋ก ๋์ํ๋ค.
ํ๋ ์ด์์ฒด์ ์ Switching ๋จ์
์ด์ ์ CPU ์ค์ผ์ค๋ง์์ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ํํ๋ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋์ด๊ฐ๋ค๊ณ ํ์๋๋ฐ, ์ด๋ ์์ ์ ๋ฐฉ์์ด๋ค. ํ์ฌ ์ด์์ฒด์ ์์๋ ๋๋ถ๋ถ ๋ค์ค ์ฐ๋ ๋๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํ๋์ ํ๋ก์ธ์ค ์์์ ์ฌ๋ฌ ์ฐ๋ ๋๋ฅผ ์ํํ๋ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋์ด๊ฐ์ ๊ทธ ํ๋ก์ธ์ค์ ์ฐ๋ ๋๋ฅผ ์ํํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ๋ ์ด์์ฒด์ ์ context switching ๋จ์๋ ํ๋ก์ธ์ค๊ฐ ์๋ ์ฐ๋ ๋ ๋จ์์ด๋ค.
Thread VS Precess
์ด ๋ถ๋ถ์ ์ ๋๋ก ์ดํดํ๊ธฐ ์ํด process๋ฅผ ๋ณด๊ณ ์ค์.
๊ฐ๋ณ๊ฒ ์ดํดํ๋ ์ปดํจํฐ 07: ์ด์ ์ฒด์ ๊ฐ ํ๋ ์ผ
์ด์์ฒด์ ์ ๋ฆฌ 05: ํ๋ก์ธ์ค ๊ด๋ฆฌ
ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์ ํ ๋ ๋ฆฝ์ ์ด๋ค. ํด๋น ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ก๋ Code, Data, Heap, Stack์ด ์๋ค. ์ด ๋ ์ฐ๋ ๋๋ ์๊ธฐ๊ฐ ์ํ ํ๋ก์ธ์ค์ ์ผ๋ถ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ค. ์ง์ด๋ผ๋ฉด ๊ฐ ๊ฐ์ธ ๊ตฌ์ฑ์์ด ๊ฑฐ์ค์ ๊ณต์ ํ๋ ์ ์ด๋ค.
|๊ณต์ |๋ ๋ฆฝ| |::----|::----| |Code|Stack| |Data|PC(program counter)| |Heap|SP(stack pointer)| ||Registers|
Thread๊ฐ ๋ ๋ฆฝ์ ์์๋ฅผ ๊ฐ์ ธ์ผ ํ๋ ์ด์
ํ๋ ์ด์์ฒด์ ๋ ๊ฒฐ๊ตญ Context Switching์ ์ต์๋จ์๋ฅผ thread๋ก ์ก๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฒฐ๊ตญ CPU๊ฐ ์ฒ๋ฆฌํ๋ ๊ฒ์ thread์ด๊ณ , ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์ฌ ์คํ ํ๋ฆ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ธฐ๋กํ ํ์๊ฐ ์๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz