์์์ ๋ฐฐ์ด ๋ฐํ ์๊ฐ ํน์ ์๋ต ์๊ฐ์ ์ต์ ํํ๋ ์ค์ผ์ค๋ฌ ๋์ , ๊ฐ ์์ ์๊ฒ CPU์ ์ผ์ ๋น์จ์ ๋ณด์ฅํ๋ ๊ฒ์ด ๋ชฉ์ ์ธ ๋น๋ก ๋ฐฐ๋ถ ์ค์ผ์ค๋ฌ์ ๋ํด ์์๋ณด์.
1. ์ถ์ฒจ๊ถ (ํฐ์ผ)
์ ์ฒด ํฐ์ผ ์ค ํ๋ก์ธ์ค๊ฐ ๋ณด์ ํ ํฐ์ผ์ ๋น์จ์ด ๋ฐ์์ผ ํ CPU ์์์ ๋น์จ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ ์ฌ๋ผ์ด์ค ํ ๋ฒ๋ง๋ค ์ ์ฒด ํฐ์ผ ์ค ํ๋๋ฅผ ๋ฌด์์๋ก ์ถ์ฒจํ์ฌ ์คํํ ํ๋ก์ธ์ค๋ฅผ ๊ฒฐ์ ํ๋ค.
0๋ถํฐ 99๊น์ง์ ํฐ์ผ ์ค A๊ฐ 0๋ถํฐ 74, B๊ฐ 75์์ 99๊น์ง์ ํฐ์ผ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ์.
์ด๋ ๊ฒ ๋ฝํ ํฐ์ผ ๊ฐ์ ๋ฐ๋ผ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ง ๊ฒฐ์ ํ๋ค.
์ ์ฒด 20๊ฐ์ ํ์ ์ฌ๋ผ์ด์ค ์ค, B๋ 4๊ฐ(20%) ์ ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ํ๋ํ๋ค. ๋ชฉํ๋ก ํ๋ 25%๋ณด๋ค๋ ์ ์ง๋ง, ์๊ฐ์ด ์ง๋๋ฉด ์ง๋ ์๋ก 25%์ ๊ฐ๊น์์ง ๊ฒ์ด๋ค.
2. ์ถ์ฒจ ๊ธฐ๋ฒ
1. ์ถ์ฒจ๊ถ ํํ(ticket currency)
ํฐ์ผ์ ํํ์ฒ๋ผ, ํ์จ์ ์ ์ฉํด์ ์ค์ผ์ค๋งํ๋ ๊ธฐ๋ฒ์ด๋ค. ๊ฐ๊ฐ์ ์ฌ์ฉ์๊ฐ 100์ฅ์ global ํฐ์ผ์ ๋ฐ์๋ค๊ณ ๊ฐ์ ํ์. ์ฌ์ฉ์ A๋ ํ๋ก์ธ์ค A1, A2 ๋ ๊ฐ๋ฅผ ์คํ์ค์ด๊ณ , ์์ ์ด ์ ํ ํฐ์ผ 1000์ฅ ์ค 500์ฅ์ฉ A1, A2์ ํ ๋นํ๋ค. ์ฌ์ฉ์ B๋ ํ๋ก์ธ์ค B์ ์์ ์ด ์ ํ ํฐ์ผ 10์ฅ ์ค 10์ฅ์ ํ ๋นํ๋ค. ํ์จ์ ์ ์ฉํ๋ฉด, A1์ 50์ฅ, A2๋ 50์ฅ, B๋ 100์ฅ์ global ํฐ์ผ์ ๋ฐ๋๋ค.
2. ์ถ์ฒจ๊ถ ์๋(ticket transfer)
ํ๋ก์ธ์ค๊ฐ ์ผ์์ ์ผ๋ก ํฐ์ผ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ๋๊ฒจ์ค ์ ์๋ค. ์๋ฅผ ๋ค์ด, ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค๊ฐ ์๋ฒ์๊ฒ ํน์ ์์ ์ ๋์ ํด๋ฌ๋ผ๊ณ ์์ฒญํ ๋, ํฐ์ผ์ ํจ๊ป ๋๊ฒจ์ฃผ์ด ์์ ์ด ๋นจ๋ฆฌ ์๋ฃ๋ ์ ์๋๋ก ํ๋ค.
3. ์ถ์ฒจ๊ถ ํฝ์ฐฝ(ticket inlation)
ํ๋ก์ธ์ค๊ฐ ์ผ์์ ์ผ๋ก ์์ ์ด ์์ ํ ํฐ์ผ์ ์๋ฅผ ๋์ด๊ฑฐ๋ ์ค์ผ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ ํ๋ฉด ํ๋์ ์์ฌ ๋ง์ ํ๋ก์ธ์ค๊ฐ ๋งค์ฐ ๋ง์ ์์ ์ถ์ฒจ๊ถ์ ์์ ์๊ฒ ํ ๋นํ ์ ์๋ค. ๋๋ฌธ์ ํ๋ก์ธ์ค๊ฐ ์ ๋ขฐ ๊ฐ๋ฅํ ์์คํ ์์ ์ ์ฉํ๋ค. ์ถ์ฒจ๊ถ ์๋์ฒ๋ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํต์ ํ ํ์ ์์ด, ํผ์ ํฐ์ผ์ ๋๋ ค CPU ์์์ ๋ง์ด ๋ฐ์ ์ ์๋ค.
3. ๊ตฌํ
๋์ ๋ฐ์๊ธฐ, ํ๋ก์ธ์ค๋ค์ ์งํฉ์ ํํํ๋ ์๋ฃ ๊ตฌ์กฐ, ์ถ์ฒจ๊ถ์ ์ ์ฒด ๊ฐ์ ์ด๋ ๊ฒ 3๊ฐ๋ง ์์ผ๋ฉด ๊ตฌํํ ์ ์๋ค.


A๋ 0๋ถํฐ 99, B๋ 100๋ถํฐ 149, C๋ 150๋ถํฐ 399๊น์ง ํฐ์ผ์ ํ ๋น๋ฐ๋๋ค. winner์ ๋์ 300์ด ํ ๋น๋์๋ค๊ณ ํ์. ๋ฆฌ์คํธ๋ฅผ ์์์๋ถํฐ ์ํํ๋ฉด์ counter์ ๊ฐ์ ์ฆ๊ฐ์ํจ๋ค. A๋ฅผ ๋ง๋๋ฉด 100, B๋ฅผ ๋ง๋๋ฉด 150์ด ๋๋ค. C๋ฅผ ๋ง๋๋ฉด 400์ด ๋์ด ๋์ 300๋ณด๋ค ์ปค์ง๋ฏ๋ก ๋น์ฒจ์๋ฅผ ์ฐพ์ ๊ฒ์ด๋ค. ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ (ํฐ์ผ ๋ง์ด ๋ฐ์ ํ๋ก์ธ์ค๊ฐ ์์ ์ค๋๋ก) ํ๋ฉด ์ข ๋ ํจ์จ์ ์ด๋ค.
4. ์์
๊ฐ์ ๊ฐ์์ ํฐ์ผ์ ๋ณด์ ํ๊ณ ์๊ณ , ๋์ผํ ์คํ ์๊ฐ์ ๊ฐ์ง๋ ํ๋ก์ธ์ค ๋ ๊ฐ์ ์ํ ์๊ฐ์ ์ดํด๋ณด์. ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์ ๋์์ ์ข ๋ฃ์ํค๋ ๊ฒ์ด ๋ชฉํ๋ค.
์ฒซ ๋ฒ์งธ ์์ ์ด ์ข ๋ฃ๋ ์๊ฐ์ ๋ ๋ฒ์งธ ์์ ์ด ์ข ๋ฃ๋ ์๊ฐ์ผ๋ก ๋๋ ์งํ์ธ ๋ถ๊ณต์ ์งํ์ธ ๋ฅผ ์ ์ํ์. ๊ฐ 1์ผ ๋, ์ค์ผ์ค๋ฌ๋ ์๋ฒฝํ ๊ณต์ ์ค์ผ์ค๋ฌ์ด๋ค.

์์ ์ ์๊ฐ์ด ์งง์ ๊ฒฝ์ฐ, ๋ฌด์์์ฑ์ ์ํฅ์ ๋ง์ด ๋ฐ์ ๋ถ๊ณต์ ์งํ๊ฐ 1์ ๊ฐ๊น์ง ์๊ณ , ์์ ์ ์๊ฐ์ด ๊ธด ๊ฒฝ์ฐ ๋ฌด์์์ฑ์ ์ํฅ์ ๋ ๋ฐ์ ๋ถ๊ณต์ ์งํ๊ฐ 1์ ๊ฐ๊น๊ฒ ๋์จ๋ค.
์์ ์ ๊ธธ์ด๊ฐ ๊ธธ์ด์ผ ์ถ์ฒจ ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ์ํ๋ ๊ฒฐ๊ณผ (๊ณต์ ํ ์ค์ผ์ค๋ฌ) ๋ฅผ ์ป์ ์ ์๋ค.
5. ํฐ์ผ ๋ฐฐ๋ถ ๋ฐฉ์
ํฐ์ผ์ ์ด๋ป๊ฒ ํ ๋นํ๋๋๋ ๋ฌธ์ ๋ ๊ต์ฅํ ์ด๋ ค์ด ๋ฌธ์ ์ด๋ค. ํ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ ๋ฐฐ๋ถํด์ผ ํ ์ง ์๊ณ ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ฌ์ฉ์์๊ฒ ๋ชจ๋ ๋งก๊ธฐ๋ ๊ฒ์ด๋ค. ์ฌ์ฉ์์๊ฒ ํฐ์ผ์ ์ฃผ๊ณ , ์คํ์ํค๊ณ ์ ํ๋ ์์ ๋ค์๊ฒ ํฐ์ผ์ ๋ฐฐ๋ถํ๋ค. ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์๋ค.
6. ์ ๊ฒฐ์ ๋ก ์ (Deterministic) ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๋๊ฐ
์์์ ๋ณธ ๋ฐ์ ๊ฐ์ด, ๋ฌด์์์ฑ์ ์ด์ฉํ๋ฉด ์ค์ผ์ค๋ฌ๋ฅผ ๋จ์ํ๊ฒ ๋ง๋ค ์ ์์ง๋ง ์ ํํ ๋น์จ์ ๋ณด์ฅํ ์ ์๋ค. ํนํ ์งง์ ๊ธฐ๊ฐ๋ง ์คํ๋๋ ๊ฒฝ์ฐ๋ ๋์ฑ ์ฌํ๋ค. ๋๋ฌธ์ ๊ฒฐ์ ๋ก ์ ๊ณต์ ๋ฐฐ๋ถ ์ค์ผ์ค๋ฌ์ธ ๋ณดํญ ์ค์ผ์ค๋ง(stride scheduling)์ ๊ณ ์ํ๋ค.
๋ณดํญ ์ค์ผ์ค๋ง(Stride Scheduling)
์์คํ ์ ๊ฐ ์์ ์ โ๋ณดํญโ์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ์ด ๋ณดํญ์ ํด๋น ์์ ์ด ๊ฐ์ง๊ณ ์๋ ์ถ์ฒจ๊ถ ์์ ๋ฐ๋น๋กํ๋ ๊ฐ์ด๋ค. ์๋ฅผ ๋ค์ด, ์์ A, B, C๊ฐ ๊ฐ๊ฐ 100, 50, 250์ ์ถ์ฒจ๊ถ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ด๋ ์์์ ํฐ ๊ฐ์ ๊ฐ ์์ ์ ์ถ์ฒจ๊ถ ๊ฐ์๋ก ๋๋์ด ๋ณดํญ์ ๊ณ์ฐํ ์ ์๋ค. ์ฌ๊ธฐ์๋ 10,000์ ๊ฐ ์์ ์ ์ถ์ฒจ๊ถ ๊ฐ์๋ก ๋๋๋ฉด, ๊ฐ ์์ ์ ๋ณดํญ์ 100, 200 ๋ฐ 40์ด ๋๋ค.
์ด์ ๊ฐ ์์ ์ด CPU๋ฅผ ์ฌ์ฉํ ๋๋ง๋ค, โpassโ๋ผ๋ ๊ฐ์ด ๋ณดํญ๋งํผ ์ฆ๊ฐํฉ๋๋ค. ์ด โpassโ ๊ฐ์ ํด๋น ์์ ์ด ์ผ๋ง๋ ๋ง์ด CPU๋ฅผ ์ฌ์ฉํ๋์ง๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ผ์ค๋ฌ๋ ์ด ๋ณดํญ๊ณผ pass ๊ฐ์ ์ฌ์ฉํ์ฌ ์ด๋ค ์์ ์ ๋ค์์ผ๋ก ์คํ์ํฌ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. ๊ฐ์ฅ ์์ pass ๊ฐ์ ๊ฐ์ง ์์ ์ ์ ํํ๊ณ , ๊ทธ ์์ ์ ์คํํ ํ์๋ ํด๋น ์์ ์ pass ๊ฐ์ ๋ณดํญ๋งํผ ์ฆ๊ฐ์ํจ๋ค. ๋ณดํญ ์ค์ผ์ค๋ง์ ๊ฐ ์ค์ผ์ค๋ง ์ฃผ๊ธฐ๋ง๋ค ์ ํํ ๋น์จ๋ก CPU๋ฅผ ๋ฐฐ๋ถํ๋ค.

์ ๋ณดํญ ์ค์ผ์ค๋ง์ด ์๋ ์ถ์ฒจ ์ค์ผ์ค๋ง์ ์ฌ์ฉํ๋๊ฐ?
์ถ์ฒจ ์ค์ผ์ค๋ง์๋ ๋ณดํญ ์ค์ผ์ค๋ง์ด ๊ฐ์ง๊ณ ์์ง ์์ ๋ฉ์ง ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ. ๋ฐ๋ก ์ํ ์ ๋ณด๊ฐ ํ์ ์๋ค๋ ์ ์ด๋ค.
๋ณดํญ ์ค์ผ์ค๋ง์์๋ ์ค์ผ์ค๋ง ์ค๊ฐ์ ์๋ก์ด ์์ ์ด ์์คํ ์ ๋์ฐฉํ๋ฉด, ๊ทธ ์์ ์ pass ๊ฐ์ด ์ผ๋ง๊ฐ ๋์ด์ผ ํ ์ง ๊ฒฐ์ ํด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ถ์ฒจ ์ค์ผ์ค๋ง์์๋ ์ด๋ฌํ ์ ๋ณด๊ฐ ํ์ ์๋ค. ์๋ก์ด ์์ ์ด ์ถ๊ฐ๋ ๋, ๊ทธ๋ฅ ์ ์์ ์ด ๊ฐ์ง ์ถ์ฒจ๊ถ์ ๊ฐ์๋ฅผ ์ ์ฒด ์ถ์ฒจ๊ถ์ ๊ฐ์์ ์ถ๊ฐํ๊ณ ์ค์ผ์ค๋ง์ ์ํํ๋ฉด ๋๋ค. ๋ฐ๋ผ์, ์ถ์ฒจ ์ค์ผ์ค๋ง์์๋ ์๋ก์ด ์์ ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋ค.
๋น๋ก ๋ฐฐ๋ถ ์ค์ผ์ค๋ฌ๋ ์ถ์ฒจ๊ถ ํ ๋น๋์ ๋น๊ต์ ์ ํํ๊ฒ ๊ฒฐ์ ํ ์ ์๋ ํ๊ฒฝ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ํ ๋ฐ์ดํฐ ์ผํฐ์์ Windows ๊ฐ์ ๋จธ์ ์ CPU ์ฌ์ดํด์ 1/4์ ํ ๋นํ๊ณ ๋๋จธ์ง๋ Linux ์์คํ ์ ํ ๋นํ๊ณ ์ถ์ ๊ฒฝ์ฐ ๋น๋ก ๋ฐฐ๋ถ์ด ๊ฐ๋จํ๊ณ ํจ๊ณผ์ ์ด๋ค.
OSTEP ๊ต์ฌ ์ฐธ๊ณ