์ด์ ์ฒด์ ์๊ฐ
ํค์ด ํ๋ธ๋ฅด! ์ ์๊ฐ์๋ ํฅ๋ฏธ๋ก์ด ๋ฌธํ ์ธ OSTEP์ ๋ํ ์ผ๋ จ์ ๊ธฐ์ฌ ๋ฒ์ญ์ ์ฌ๋ฌ๋ถ์ ๊ด์ฌ์ ๋๊ณ ์ถ์ต๋๋ค. ์ด ์๋ฃ๋ ์ ๋์ค ๊ณ์ด ์ด์ ์ฒด์ ์ ์์
, ์ฆ ํ๋ก์ธ์ค, ๋ค์ํ ์ค์ผ์ค๋ฌ, ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ต์ OS๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐํ ์ ์ฌํ ๊ตฌ์ฑ ์์ ์์
์ ๋ํด ๋งค์ฐ ๊น์ด ๋
ผ์ํฉ๋๋ค. ์ฌ๊ธฐ์์ ๋ชจ๋ ์๋ฃ์ ์๋ณธ์ ๋ณผ ์ ์์ต๋๋ค.
์ด ์ฃผ์ ์ ๋ํ ์ฐ๊ตฌ์ค ์์ ์ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค.
- ๊ธฐ๋ฐํ:
ํ์ด์ง.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html - ๊ธฐ๋ฐํ:
github.com/remzi-arpacidusseau/ostep-code - ๋ด ๊ฐ์ธ์ ์ธ ์ ์:
github.com/bykvaadm/OS/tree/master/ostep
์์ ๋ด ์ฑ๋์ ํ์ธํ ์๋ ์์ต๋๋ค.
ํ๋ก๊ทธ๋จ ์ด์
ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ผ ๋ ์ด๋ค ์ผ์ด ๋ฐ์ํฉ๋๊น? ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ํ ๊ฐ์ง ๊ฐ๋จํ ์์ ์ ์ํํฉ๋๋ค. ๋ฐ๋ก ๋ช ๋ น์ ์คํํ๋ ๊ฒ์ ๋๋ค. ํ๋ก์ธ์๋ ๋งค ์ด๋ง๋ค ์๋ฐฑ๋ง, ์ฌ์ง์ด ์์ญ์ต ๊ฐ์ ๋ช ๋ น์ RAM์์ ๊ฒ์ํ ๋ค์ ์ด๋ฅผ ํด๋ ํ๊ณ (์๋ฅผ ๋ค์ด, ์ด๋ฌํ ๋ช ๋ น์ด ์ํ ์ ํ์ ์ธ์) ์คํํฉ๋๋ค. ์ด๊ฒ์ ๋ ๊ฐ์ ์ซ์๋ฅผ ์ถ๊ฐํ๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ก์ธ์คํ๊ณ , ์กฐ๊ฑด์ ํ์ธํ๊ณ , ํจ์๋ก ์ด๋ํ๋ ๋ฑ์ ์์ ์ด ๋ ์ ์์ต๋๋ค. ํ๋์ ๋ช ๋ น์ ์คํํ ํ ํ๋ก์ธ์๋ ๋ค๋ฅธ ๋ช ๋ น์ ์คํํฉ๋๋ค. ๋ฐ๋ผ์ ๋ช ๋ น ํ ๋ช ๋ น์ ํ๋ก๊ทธ๋จ์ด ๋๋ ๋๊น์ง ์คํ๋ฉ๋๋ค.
์ด ์๋ ๋น์ฐํ ๋จ์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ฌ์ค ํ๋ก์ธ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ต์ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์์ด ๋ช ๋ น์ ์คํํ๊ณ , ๊ฐ๋ฅํ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํ๊ณ , ๋์์ ๋ช ๋ น์ ์คํํ๋ ๋ฑ์ ํธ๋ฆญ์ ์ํํ ์ ์์ต๋๋ค.
Von Neumann ๊ณ์ฐ ๋ชจ๋ธ
์ฐ๋ฆฌ๊ฐ ์ค๋ช ํ๋ ๋จ์ํ๋ ํํ์ ์์ ์ Von Neumann ๊ณ์ฐ ๋ชจ๋ธ๊ณผ ์ ์ฌํฉ๋๋ค. ํฐ ๋ ธ์ด๋ง์ ์ปดํจํฐ ์์คํ ์ ์ ๊ตฌ์ ์ค ํ ๋ช ์ด๋ฉฐ ๊ฒ์ ์ด๋ก ์ ์ ์์ด๊ธฐ๋ ํฉ๋๋ค.. ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ๋ง์ ๋ค๋ฅธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ ๋ค๋ฅธ ๋ง์ ํ๋ก์ธ์ค์ ํ์ฌ ๋ ผ๋ฆฌ๊ฐ ์๋ํ๋ฉฐ ๊ทธ ์ฃผ์ ๋ชฉ์ ์ ์์คํ ์ ์์, ์๋ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์คํํ ์ ์๋๋ก(๋๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋๋๋ก ํ์ฉ) ์ฑ ์์ง๊ณ ํ๋ก๊ทธ๋จ์ด ๋์ผํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ณ ๋ค๋ฅธ ์ฅ์น์ ํต์ ํ ์ ์๋๋ก ํ๋ ์ํํธ์จ์ด ์ธํธ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ํํธ์จ์ด(์ํํธ์จ์ด) ์งํฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์ ์ฒด์ ๋ผ๊ณ ํ๋ฉฐ ํด๋น ์์ ์๋ ์์คํ ์ด ์ฌ๋ฐ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์๋ํ๋์ง ๋ชจ๋ํฐ๋งํ๊ณ ์์คํ ์ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋์ง ํ์ธํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค.
์ด์ ์ฒด์
OS๋ก ์ฝ์นญ๋๋ ์ด์ ์ฒด์ ๋ ์ปดํจํฐ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ปดํจํฐ์์ ์ฌ์ฉ์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํ๋๋ก ์ค๊ณ๋ ์ํธ ์ฐ๊ด๋ ํ๋ก๊ทธ๋จ ์งํฉ์ ๋๋ค..
OS๋ ๊ฐ์ฅ ์ค์ํ ๊ธฐ์ ์ธ ๊ธฐ์ ์ ํตํด ์ฒ์๋ถํฐ ํจ์จ์ฑ์ ๋ฌ์ฑํฉ๋๋ค. ๊ฐ์ํ. OS๋ ๋ฌผ๋ฆฌ์ ๋ฆฌ์์ค(ํ๋ก์ธ์, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ๋ฑ)์ ์ํธ ์์ฉํ์ฌ ์ด๋ฅผ ๋ณด๋ค ์ผ๋ฐ์ ์ด๊ณ ๊ฐ๋ ฅํ๋ฉฐ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ํํ๋ก ๋ณํํฉ๋๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ์ดํด๋ฅผ ์ํด ์ด์ ์ฒด์ ๋ฅผ ๊ฐ์ ๋จธ์ ๊ณผ ๋งค์ฐ ๋๋ต์ ์ผ๋ก ๋น๊ตํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์ด์ ์ฒด์ ์ ๋ช ๋ น์ ๋ด๋ฆฌ๊ณ ๊ฐ์ ๋จธ์ ์ ๊ธฐ๋ฅ(์: ํ๋ก๊ทธ๋จ ์คํ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ํ์ผ ์ก์ธ์ค ๋ฑ)์ ์ฌ์ฉํ ์ ์๋๋ก ์ด์ ์ฒด์ ๋ ๋ค์๊ณผ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. API (์์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค) ๋ฐ ํธ์ถ(ํธ์ถ)ํ ์ ์๋ ๋์์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์ด์ ์ฒด์ ์์๋ ์๋ฐฑ ๊ฐ์ ์์คํ ํธ์ถ์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฐ์ํ๋ฅผ ํตํด ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ์คํ(๋ฐ๋ผ์ CPU ๊ณต์ )ํ๊ณ ๋ช ๋ น๊ณผ ๋ฐ์ดํฐ์ ๋์์ ์ก์ธ์ค(๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ )ํ๊ณ ๋์คํฌ์ ์ก์ธ์ค(๋ฐ๋ผ์ I/O ์ฅ์น ๊ณต์ )ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ์ฒด์ ๋ฅผ ์ด์ ์ฒด์ ๋ผ๊ณ ๋ ํฉ๋๋ค. ์์ ๊ด๋ฆฌ์. ๊ฐ ํ๋ก์ธ์, ๋์คํฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ๋ ์์คํ ์ ์์์ด๋ฏ๋ก ์ด์ ์ฒด์ ์ ์ญํ ์ค ํ๋๋ ์ด ์ด์ ์ฒด์ ๊ฐ ์ํํ๋ ์์ ์ ๋ฐ๋ผ ์ด๋ฌํ ์์์ ํจ์จ์ ์ผ๋ก, ์ ์งํ๊ฒ ๋๋ ๊ทธ ๋ฐ๋๋ก ๊ด๋ฆฌํ๋ ์์ ์ด ๋ฉ๋๋ค. ์ค๊ณ๋์์ต๋๋ค.
CPU ๊ฐ์ํ
๋ค์ ํ๋ก๊ทธ๋จ์ ๊ณ ๋ คํ์ญ์์ค.
(https://www.youtube.com/watch?v=zDwT5fUcki4)
ํน๋ณํ ์์
์ ์ํํ์ง ์์ผ๋ฉฐ ์ค์ ๋ก ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ๋ฟ์
๋๋ค. ํ์ (), ๊ทธ์ ์์
์ ์๊ฐ ํ์ธ์ ์ํํ๊ณ XNUMX์ด๊ฐ ์ง๋ ํ์ ๋ฐํํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์ธ์๋ก ์ ๋ฌํ ๋ฌธ์์ด์ ๋ฌดํ์ ๋ฐ๋ณตํฉ๋๋ค.
์ด ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ๋ฌธ์ "A"๋ฅผ ์ธ์๋ก ์ ๋ฌํด ๋ด ์๋ค. ๊ฒฐ๊ณผ๋ ๊ทธ๋ค์ง ํฅ๋ฏธ๋กญ์ง ์์ต๋๋ค. ์์คํ ์ ๋จ์ํ ๋ฌธ์ "A"๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ํ๋ ํ๋ก๊ทธ๋จ์ ์คํํฉ๋๋ค.
์ด์ ๋์ผํ ํ๋ก๊ทธ๋จ์ ๋ง์ ์ธ์คํด์ค๊ฐ ์คํ ์ค์ด์ง๋ง ๋ ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ฌธ์๋ฅผ ์ถ๋ ฅํ ๋ ์ต์ ์ ์ฌ์ฉํด ๋ด ์๋ค. ์ด ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๋ ๋ค์ ๋ค๋ฆ ๋๋ค. ํ๋ก์ธ์๊ฐ ํ๋๋ผ๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํ๋ฉ๋๋ค. ์ด๋ป๊ฒ ๋ฉ๋๊น? ๊ทธ๋ฌ๋ ํ๋์จ์ด ๊ธฐ๋ฅ์ ๋์ ์์ด๋ ์ด์ ์ฒด์ ๊ฐ ํ์์ ๋ง๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์์คํ ์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋ก์ธ์๊ฐ ์์ด ํ๋์ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์๋ฅผ ์ด๋ก ์ ์ผ๋ก ๋ฌดํํ ์๋ก ๋ฐ๊พธ๊ณ ๊ฒ๋ณด๊ธฐ์ ํ๋ก๊ทธ๋จ์ด ๋์์ ์คํ๋ ์ ์๋ค๋ ํ์์ ๋๋ค. ์ด ํ์์ ํธ์ถ CPU ๊ฐ์ํ.
์ด ๊ทธ๋ฆผ์ ์๋ฅผ ๋ค์ด ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ค ํ๋ก๊ทธ๋จ์ ์คํํ ์ง์ ๊ฐ์ ๋ง์ ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค. OS์ "์ ์ฑ "์ด โโ์ด ์ง๋ฌธ์ ๋ํ ์ฑ ์์ด ์์ต๋๋ค. ์ ์ฑ ์ OS์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉ๋๊ณ ์ด์ ๊ฐ์ ์ง๋ฌธ์ ๋ตํ๋ฉฐ OS๊ฐ ๊ตฌํํ๋ ๊ธฐ๋ณธ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฆฌ์์ค ๊ด๋ฆฌ์๋ก์์ OS์ ์ญํ ์ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ
์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ต์ ์์คํ ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ์ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ํ์๋ฉ๋๋ค.. ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ผ๋ ค๋ฉด ๋ค์์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ ์ฃผ์์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ธ ์ ์ ์ฃผ์๋ ์ง์ ํด์ผ ํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ์คํ ์ค์ ์ง์์ ์ผ๋ก ์ก์ธ์ค๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์ ์ ์ฒด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๊ณ ๋ค์ํ ๋ช ๋ น์ ์คํํ์ฌ ์ก์ธ์คํฉ๋๋ค. ํํธ ๋ช ๋ น์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ฏ๋ก ๋ค์ ๋ช ๋ น์ด์ ๋ํ ๊ฐ ์์ฒญ์ ์ก์ธ์คํ ์๋ ์์ต๋๋ค.
malloc() ํธ์ถ
ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋นํ๋ ๋ค์ ํ๋ก๊ทธ๋จ์ ๊ณ ๋ คํ์ญ์์ค. malloc () (https://youtu.be/jnlKRnoT1m0):
์ด ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ง ์ผ์ ํฉ๋๋ค. ๋จผ์ ์ผ๋ถ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ๋ค์(7ํ) ํ ๋น๋ ์
์ ์ฃผ์๋ฅผ ์ธ์ํ๊ณ (9ํ) ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ์ฌ๋กฏ์ XNUMX์ ์๋๋ค. ๋ค์์ผ๋ก ํ๋ก๊ทธ๋จ์ "p" ๋ณ์์ ์ฃผ์์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ ์ฆ๊ฐ์ํค๋ ๋ฃจํ์ ๋ค์ด๊ฐ๋๋ค. ๋ํ ์์ ์ ํ๋ก์ธ์ค ID๋ ์ธ์ํฉ๋๋ค. ํ๋ก์ธ์ค ID๋ ์คํ ์ค์ธ ๊ฐ ํ๋ก์ธ์ค์ ๋ํด ๊ณ ์ ํฉ๋๋ค.. ์ฌ๋ฌ ๋ณต์ฌ๋ณธ์ ์์ํ๋ฉด ํฅ๋ฏธ๋ก์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ์ฌ๋ฌ ๋ณต์ฌ๋ณธ์ ์คํํ๋ฉด ์ฃผ์๊ฐ ๋ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ฐ๋ฆฌ ์ด๋ก ์ ์ํ์ง ์์ต๋๋ค! ์ต์ ๋ฐฐํฌํ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ฌด์์ํ๊ฐ ํ์ฑํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ง์ต๋๋ค. ๋นํ์ฑํ๋๋ฉด ์์๋๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค. ๋์์ ์คํ๋๋ ๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ์ผ์นํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ๊ฐ์ ๋
๋ฆฝ์ ์ธ ํ๋ก๊ทธ๋จ์ด ์์ฒด ๊ฐ์ธ ์ฃผ์ ๊ณต๊ฐ์์ ์๋ํ๊ณ ์ด์ ์ฒด์ ์ ์ํด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋งคํ๋จ์ด ๋ฐํ์ก์ต๋๋ค.. ๋ฐ๋ผ์ ํ ํ๋ก๊ทธ๋จ ๋ด์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉฐ ๊ฐ ํ๋ก๊ทธ๋จ์๋ ์์ฒด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ์ด์ ์ฒด์ ์์ ๊ด๋ฆฌํ๋ ๊ณต์ ๋ฆฌ์์ค์
๋๋ค.
์ผ๊ด์ฑ
์ด์ ์ฒด์ ๋ด์ ๋ ๋ค๋ฅธ ์ค์ํ ์ฃผ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ผ๊ด์ฑ. ์ด ์ฉ์ด๋ ๋์ผํ ํ๋ก๊ทธ๋จ ๋ด์์ ๋์์ ๋ง์ ์์ ์ ์ํํ ๋ ๋ฐ์ํ ์ ์๋ ์์คํ ์ ๋ฌธ์ ์ ๋ํด ๋งํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ด์ ์ฒด์ ์์ฒด ๋ด์์๋ ์ผ๊ด์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ํ๋ก์ธ์ ๊ฐ์ํ ์์์ ์ฐ๋ฆฌ๋ OS๊ฐ ๋์์ ๋ง์ ๊ฒ์ ๊ด๋ฆฌํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ฆ, ์ฒซ ๋ฒ์งธ ํ๋ก์ธ์ค๋ฅผ ์์ํ ๋ค์ ๋ ๋ฒ์งธ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ์์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด ๋์์ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋์ ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์ด๋ฌํ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค.
๋ค์ ํ๋ก๊ทธ๋จ์ ๊ณ ๋ คํ์ญ์์ค.
main ํจ์์ ํ๋ก๊ทธ๋จ์ ๋ค์ ํธ์ถ์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ์ค๋ ๋๋ฅผ ์์ฑํฉ๋๋ค. pthread_create(). ์ด ์์ ์์ ์ค๋ ๋๋ ๋ถ๋ช
ํ ๋์์ ๋ ์ด์์ ํจ์๊ฐ ์คํ๋๋ ๋ค๋ฅธ ํจ์์ ํจ๊ป ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์คํ๋๋ ํจ์๋ก ์๊ฐํ ์ ์์ต๋๋ค. ์ด ์์์ ๊ฐ ์ค๋ ๋๋ ํจ์๋ฅผ ์์ํ๊ณ ์คํํฉ๋๋ค. worker()๋ ๋จ์ํ ๋ณ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.,.
1000์ด๋ผ๋ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํ๋ก๊ทธ๋จ์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค. ์ง์ํ์ จ๊ฒ ์ง๋ง ๊ฐ ์ค๋ ๋๊ฐ ๋ณ์๋ฅผ 2000๋ฒ ์ฆ๊ฐ์์ผฐ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๋ 1000์ด์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ํจ์ฌ ๋ ๋ง์ด ๋ฐ๋ณตํด์ ์คํํด ๋ด ์๋ค.
์๋ฅผ ๋ค์ด 100000๊ณผ ๊ฐ์ ์ซ์๋ฅผ ์
๋ ฅํ๋ฉด 200000์ด๋ผ๋ ์ซ์๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ซ์ 100000์ ์ฌ๋ฌ ๋ฒ ์คํํ๋ฉด ์ ๋ต์ด ํ์๋์ง ์์ ๋ฟ๋ง ์๋๋ผ ์๋ก ๋ค๋ฅธ ์ค๋ต์ด ํ์๋ฉ๋๋ค. ๋๋ต์ ์ซ์๋ฅผ ๋๋ฆฌ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ซ์๋ฅผ ์ถ์ถํ๊ณ ์ฆ๊ฐ์ํจ ๋ค์ ์ซ์๋ฅผ ๋ค์ ์ฐ๋ ์ธ ๊ฐ์ง ์์
์ด ํ์ํ๋ค๋ ์ฌ์ค์ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ ๋ช
๋ น์ด ์์์ ์ผ๋ก(๋ชจ๋ ๋์์) ์คํ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ ์ด์ํ ์ผ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋ฐ์์ ํธ์ถ๋ฉ๋๋ค. ๊ฒฝ์ ์กฐ๊ฑด. ์ ์ ์๋ ์๊ฐ์ ์ ์ ์๋ ํ์ด ์์
์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ ๊ฒฝ์ฐ.
์ถ์ฒ : habr.com