ํ์ด๋จธ ์ธํฐ๋ฝํธ(timer interrupt) ๋ฐ์ ์ฃผ๊ธฐ?/ tick interrupt, timer interrupt (+ xv6 )
xv6 ์์คํ
์ฝ ๊ตฌํ ๊ณผ์ ๋ฅผ ํ๋ฉด์ ๊ณผ์ ๋ง๊ฐ์ผ๊น์ง๋ ๊น๋ํ๊ฒ ์ดํด๊ฐ ๋์ง ์์๋ ๋ถ๋ถ์ ๋ํด ์ ๋ฆฌํด ๋ณธ๋ค.
์ผ๋จ ๋ด๊ฐ ์๋ฌธ์ด์๋ ๋ถ๋ถ์ "1ํฑ๋ง๋ค ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์์ ํ๋ค"๊ณ ํ๋๋ฐ, 1์ด์ 100 ํฑ์ด๋ผ ํ๋ค๋ฉด ํ๋ก์ธ์ค ์ํ ์ค 1์ด์ 100๋ฒ์ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ๊ฒ์ด๊ณ , ๊ทธ๋๋ง๋ค ์ ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก์ ์ ํ์ด ์ด๋ฃจ์ด์ง๋ค๋ ๊ฒ์ด ๋ง๋ค๋ ๊ฒ์ธ๋ฐ, ์ค๋ฒํค๋๊ฐ ๊ณผ๋ํ๊ฒ ๋ฐ์ํ๋ ๊ฒ์ ์๋์ง? ์๋ค.
๊ต์๋๊ป ์ฌ์ญค๋ณธ ๋ฐ๋ก๋ ํ์ด๋จธ ์ธํฐ๋ฝํธ๋ ๋งคํฑ๋ง๋ค ๋ฐ์ํ๊ณ , ๊ทธ๋๋ง๋ค ์ปค๋๋ชจ๋๋ก์ ์ ํ์ด ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด ๋ง๋ค๊ณ ํ๋ค. ( ๋ชจ๋์ค์์นญ์ด ์์ฒญ ๋น ๋ฅธ ์๊ฐ ์ฌ์ด์ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค์ ์ํ์๋์ ๊ฑฐ์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค๊ณ ํ๋ค.) ๊ทธ๋ ์ปค๋ ๋ชจ๋์์๋ system time update, ์คํ ์ค์ธ ํ๋ก์ธ์ค์ time quantum ์ฒดํฌ, context switching ๋ฑ์ ๊ณ ๋ ค๋ฅผ ํ๋ค. timer ticks์ ์ฃผ๊ธฐ๋ ํ๋์จ์ด ํ์ด๋จธ์ ์ด์์ฒด์ ์ ์ํด ๊ฒฐ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์์๋ 1์ด์ 100 ํฑ, ์ฆ ๋งค 10ms๋ง๋ค ํฑ์ด ์ฆ๊ฐํ๋ค.
xv6์ ๊ฒฝ์ฐ ํ์ด๋จธ ์ธํฐ๋ฝํธ์ ์ํด preemptive multitasking์ ๊ตฌํํ๋ค. ํ๋ก์ธ์ค๊ฐ ์ํ๋๋ ์ค time quantum์ ๋ชจ๋ ์๋ชจํ์ ๊ฒฝ์ฐ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ณ , ์ค์ผ์ค๋ฌ๋ ์คํํ ์ ์๋ ๋ค๋ฅธ ํ๋ก์ธ์ค(RUNNABLE ์ํ)๊ฐ ์๋ค๋ฉด context switch๋ฅผ ๊ฒฐ์ ํ๋ค. ์ด๋ฅผ ํตํด ํ ํ๋ก์ธ์ค๊ฐ cpu๋ฅผ ๋
์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
timer interrupt๋ tick counter๋ฅผ ๋งคํฑ๋ง๋ค ์ฆ๊ฐ์ํค๊ณ ์คํ ์ค์ธ(RUNNING) ํ๋ก์ธ์ค๊ฐ preempt ๋นํ (๋นผ์๊ธธ) ์๊ฐ์ด ๋์๋์ง ์ฒดํฌํ๋ค.
ํ์ด๋จธ ์ธํฐ๋ฝํธ์ ํ์์ฑ : ํ์ด๋จธ ์ธํฐ๋ฝํธ๋ ์ด์์ฒด์ ๊ฐ ์๊ฐ์ ์ถ์ ํ๊ณ , ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ์ํํ๋ฉฐ, ์๊ฐ ๊ธฐ๋ฐ ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์์
ํจ์จ์ ์ธ ์ฒ๋ฆฌ: ํ๋ ํ๋ก์ธ์์ ์ด์์ฒด์ ๋ ์ด๋ฌํ ๋น๋ฒํ ๋ชจ๋ ์ ํ์ ๋งค์ฐ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ์ต์ ํ๋์ด ์๋ค. ๋ชจ๋ ์ ํ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋งค์ฐ ์งง๋ค.
์กฐ์ ๊ฐ๋ฅํ ํ์ด๋จธ ์ฃผํ์ : ์ด์์ฒด์ ๋ ํ์์ ๋ฐ๋ผ ํ์ด๋จธ ์ธํฐ๋ฝํธ์ ๋น๋(HZ ๊ฐ)๋ฅผ ์กฐ์ ํ ์ ์๋ค. ์ผ๋ถ ์์คํ ์์๋ 100Hz ๋์ 1000Hz๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ฉฐ, ์ด๋ ์์คํ ์ ์๊ตฌ์ฌํญ๊ณผ ์ฑ๋ฅ ํน์ฑ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
์ค๋ฒํค๋์ ์ฑ๋ฅ : ๋์ ํ์ด๋จธ ์ฃผํ์๋ ๋ ์ ํํ ์๊ฐ ์ธก์ ๊ณผ ๋น ๋ฅธ ๋ฐ์์ฑ์ ์ ๊ณตํ์ง๋ง, ์ค๋ฒํค๋๋ ์ฆ๊ฐ์ํจ๋ค. ๋ฐ๋๋ก ๋ฎ์ ์ฃผํ์๋ ์ค๋ฒํค๋๋ฅผ ์ค์ด์ง๋ง ์๊ฐ ์ ๋ฐ๋์ ๋ฐ์์ฑ์ด ๋จ์ด์ง๋ค.
์ต์ ํ ๊ธฐ๋ฒ: ์ด์์ฒด์ ๋ ๋ถํ์ํ ๋ชจ๋ ์ ํ์ ์ต์ํํ๊ธฐ ์ํด ๋ค์ํ ์ต์ ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ํ์ด๋จธ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์ค ์ํํ ์์ ์ด ์๋ค๋ฉด ๋น ๋ฅด๊ฒ ์ ์ ๋ชจ๋๋ก ๋์๊ฐ๋ค.
ํ๋์จ์ด ์ง์: ํ๋ ํ๋ก์ธ์๋ ๋น ๋ฅธ ๋ชจ๋ ์ ํ์ ์ํ ํ๋์จ์ด ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ชจ๋ ์ ํ์ ๋ฐ๋ฅธ ์ค๋ฒํค๋๊ฐ ํฌ๊ฒ ์ค์๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํ์ด๋จธ ์ธํฐ๋ฝํธ๋ก ์ธํ ๋ชจ๋ ์ ํ์ ๋ถ๋ช ์ค๋ฒํค๋๋ฅผ ๋ฐ์์ํค์ง๋ง, ์ด๋ ์ด์์ฒด์ ์ ์ ์์ ์ธ ์๋์ ํ์์ ์ด๋ฉฐ, ํ๋ ์์คํ ์์๋ ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋์ด ์๋ค. ์ค๋ฒํค๋์ ์์คํ ์ฑ๋ฅ ์ฌ์ด์ ๊ท ํ์ ์ ์งํ๊ธฐ ์ํด ํ์ด๋จธ ์ฃผํ์๋ฅผ ์ ์ ํ ์กฐ์ ํ๊ณ ๋ค์ํ ์ต์ ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.