[GP] Unix Thread์˜ ๊ธฐ๋ณธ์„ ๋‹ค์ ธ๋ณด์ž

๋ฐ˜์‘ํ˜•

์ด ๊ธ€์€ ์ €์˜ Github Page์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ฐœ๋ฐœ ๊ธ€์„ ์จ์˜จ์ง€ ๋ฒŒ์จ 4๊ฐœ์›”์ด ์ง€๋‚ฌ์ง€๋งŒ, ํ•™๊ต ์ƒํ™œ๊ณผ ์„ฑ์  ๊ด€๋ฆฌ ๋“ฑ์œผ๋กœ ์ธํ•ด ์ปจํ…์ธ ๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜์—ฌ ์ด๋ฆฌ์ €๋ฆฌ ์ƒ๊ฐํ•ด ๋ณธ ๊ฒฐ๊ณผ, ์ด ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ์— ์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ ์ง€์‹๋“ค์„ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฉ๋„๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ฃผ ์šฉ๋„๋Š” ์‚ฌ๋žŒ์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์„ฑ์ธ ๋ง๊ฐ ํŠน์„ฑ ๋•Œ๋ฌธ์ด๊ฒ ์ฃ ? ใ…Žใ…Ž


์˜ค๋Š˜์€ Unix Programming์— ๋Œ€ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ, pthread๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์™œ ์“ฐ๋ ˆ๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ƒ๊ณ ์š”? ๊ทธ๋ ‡๊ตฐ์š”. ์˜ฌํ•ด๋Š” ์œ ๋‚œํžˆ ์ œ ํ”„๋กœ์ ํŠธ, ๊ณผ์ œ ๋“ฑ์—์„œ ๋ชจ๋‘ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋–„๋ฌธ์ด๋ผ๊ณ  ์ด์•ผ๊ธฐ ํ•˜๊ณ  ์‹ถ๋„ค์š”..


์ด ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ์ „์—, Thread์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์ด ์ˆ™์ง€๋œ ์ƒํ™ฉ์—์„œ ์ฝ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.




Typical Thread

Typical Thread๋Š” Unix, System V ์˜ ์“ฐ๋ ˆ๋“œ๋กœ, POSIX Thread์˜ ๋ชจํƒœ๊ฐ€ ๋œ ์“ฐ๋ ˆ๋“œ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ ์ง€๊ธˆ์€ pthread๋ผ๊ณ  ๋ถˆ๋ฆฌ์šฐ๋Š” ๊ฒƒ์ด ์ œ๊ฐ€ ๋ณด๊ธฐ์—” ์ด ์“ฐ๋ ˆ๋“œ์ด์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 



POSIX Thread

์“ฐ๋ ˆ๋“œ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Windows ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” WindowThread, Mac OS X ์—์„œ ์‚ฌ์šฉํ•˜๋Š” NSThread ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ๊ทธ ์ค‘์—์„œ POSIX Thread์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.


POSIX Thread๋Š” ๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ธฐ ์œ„ํ•œ C ์˜ ํ‘œ์ค€ API ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ Unix ๊ณ„์—ด ์šด์˜์ฒด์ œ์—์„œ ์“ฐ๋˜ ์“ฐ๋ ˆ๋“œ ํ•จ์ˆ˜์ด๋ฉฐ ์ด๋ฅผ ํ‘œ์ค€ ์“ฐ๋ ˆ๋“œ API๋กœ ์‚ผ์€ ๊ฒƒ์ด์ฃ . ์ด๋Š” Mac OS X๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. Mac OS X ์—๋Š” NSThread๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, Objective C ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด pthread์™€ ๋ณ‘ํ–‰ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Unix ์‹œ์Šคํ…œ๊ณผ ์ „ํ˜€ ๋‹ค๋ฅธ Windows ์—์„œ๋„ pthread๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.





์ด์–ด์„œ ์ฝ์œผ์‹œ๋ ค๋ฉด ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.


... ๊ณ„์† ์ฝ๊ธฐ


๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments