์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
RTOS์์ ๋์ด์ด
1. ๊ฐ์[ํธ์ง]
์ค์๊ฐ ์ด์ ์ฒด์ ๋๋ RTOS(real-time operating system)๋ ์ ํ๋ ์๊ฐ ๋ด์ ์ํ๋ ์์
์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ณด์ฅํ๋ ์ด์ ์ฒด์ ๋ฅผ ๋งํ๋ค. RTOS๊ฐ ๋ค์ด๊ฐ๋ ๊ธฐ๊ธฐ๋ ๋๋ถ๋ถ ์๋ฒ ๋๋ ์์คํ
์ธ๋ฐ, ์ด๋ค์ ๋ณดํต ์ผ๋ฐ PC๋ณด๋ค ์ฑ๋ฅ์ด ๋ฎ์ ๊ฒ๋ค์ด ๋ค์ด๊ฐ๋ค. Real-time์ธ๋ฐ ์ ์ฑ๋ฅ์ด ๋ฎ์ ๊ฑธ ์ฐ๋๋๊ณ ํ ์ ์๋๋ฐ, Real-time๊ณผ High performance๋ ๋ค๋ฅธ ๊ฐ๋
์ด๋ค. ๋ง์ฝ 1์ด๋ง๋ค ๋๋ง์ณ์ผ ํ๋ ์์
์ด ์๋ค๊ณ ํ๋ฉด, ์ผ๋ฐ์ ์ธ PC OS๋ฅผ ์ฐ๋ ๊ณ ์ฑ๋ฅ ์ปดํจํฐ๋ ๋ณดํต์ ๊ฒฝ์ฐ 0.1์ด๋ง์ ๋๋ผ ์๋ ์์ง๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด์ ๋งํ๋ฉด 2์ด, ์ฌํ๋ฉด 10์ด๋ ๊ฑธ๋ฆด ์ ์๋ค. PC OS๋ฅผ ์ฐ๋ค๋ณด๋ฉด ์๊ฒ ์ง๋ง ํ์๋ณด๋ค ๋๋ ค์ง ๋๊ฐ ๋ถ๋ช
ํ ์๋ค. ํ์ง๋ง RTOS๋ฅผ ํ์ฌํ ๊ธฐ๊ธฐ๋ ํ๊ท ์ฝ 0.8์ด๊ฐ ๊ฑธ๋ฆฌ๋๋ผ๋ ์ด๋ ํ ์ํฉ์์๋ 1์ด ๋ด์ ๋๋ด๋ ๊ฒ์ ๋ณด์ฅํ๋ค. ์ฌ๊ธฐ์๋ ์ด ๋จ์๋ฅผ ์๋ก ๋ค์์ง๋ง, RTOS๋ ๋์ฒด๋ก ์ ๋ฐ๋ฆฌ์ด(1000๋ถ์ 1์ด), ์ฌ์ง์ด๋ ๋ง์ดํฌ๋ก์ด(100๋ง ๋ถ์ 1์ด)๋จ์๋ก ์ปจํธ๋กคํ๊ธฐ ์ํด ์ฐ์ธ๋ค. ๋ฆฌ๋
์ค๋ ์๋์ฐ์์ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ ๊ตํ๊ฒ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ๋งค์ฐ ํ๋ค๋ค.
๋ํ RTOS๋ฅผ ์ฐ๋ ์๋ฒ ๋๋ ๊ธฐ๊ธฐ๊ฐ ํน์ ์์ ๋ง ํ๋๋ก ์ค๊ณ๋์๊ณ , ์ผ๋ฐ PC์ฒ๋ผ ํ๋ก๊ทธ๋จ์ ์ด๊ฒ์ ๊ฒ ์ค์นํด์ ์ฐ๋ ๊ฒ์ด ์๋์ด์, ์ํ๋ ์์ ์ ๋ํ ์ฑ๋ฅ๋ง ๊ฐ์ถ๋ฉด ๋์ง ๊ตณ์ด ๋น์ธ๊ณ ํฌ๊ธฐ๊ฐ ํฐ ๊ณ ์ฑ๋ฅ์ ์นฉ์ ์ ์ธ ํ์๊ฐ ์๋ค.
์ด๋ฌํ ํน์ฑ ๋๋ฌธ์ ์๋ฐํ ์ฒ๋ฆฌ๊ฐ ์๊ตฌ๋๋ ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ๋๊ฐ ๋ฐ์คํฌํฑ OS๋ ์คํ ์๊ฐ์ด ๋ช ์ด ์ ๋ ๋๋ ค์ ธ๋ ๋ณ ๋ฌธ์ ๊ฐ ์์ง๋ง, ํญ๊ณต ์ ์ด, ์์ฐ ๊ด๋ฆฌ๋ ๋ณ์ ๋ฑ ํน์ ํ ์์คํ ์์๋ ๋จ 1, 2์ด์ ์ง์ฐ์ด ์ฒ์ฐธํ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์์คํ ์ ์๊ฐ ๊ด๋ฆฌ ๋ถ๋ถ์ ๋ง์ ๋น์ค์ ํฌ์ํ์ฌ, ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌ ์์ฒญ์ ์ ํด์ง ์๊ฐ ๋ด์ ๋๋ง์น ์ ์๋ ์ฑ๋ฅ์ ๋น์ค์ ๋๊ณ ์๋ค. ์ ์ ํ ๋ฉํฐ ํ์คํน์ ์ง์ํ๊ณ ๊ฐ ํ๋ก์ธ์ค์ ์คํ ์์๋ฅผ ์ ์ํ๋๋ฐ ๋ง์ ๋น์ค์ ํฌ์ํ๋ค.
๋ ์ฌ๋ถํ ์ ์์๋ก ํ ์ ์๋ ๋ฐ์คํฌํฑ ์์คํ ๊ณผ๋ ๋ฌ๋ฆฌ, ์๋ฒ ๋๋ ์์คํ ์ ๋ช ๋ฌ์์ ๊ธธ๊ฒ๋ ๋ช ๋ ๊ฐ ์ฌ๋ถํ ์์ด ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ํํ ์๋ค. ์ด ๋๋ฌธ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ต์ ํํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ(memory fragmentation)๋ฅผ ํ์ฉํ์ง ์๋๋ค. ์ฆ, C์์์ malloc() ๊ฐ์ ํจ์๋ฅผ ๊ฑฐ์ ์ฐ์ง ์๋๋ค๋ ์ด์ผ๊ธฐ๋ค.
์ผ์ฑ์ ๋ฐ๋ค๊ฐ ์ค์๊ฐ ์ด์ ์ฒด์ ์ธ Nucleus RTOS์ ์ปค๋์ ์ฌ์ฉํ๋ค.
๋ํ RTOS๋ฅผ ์ฐ๋ ์๋ฒ ๋๋ ๊ธฐ๊ธฐ๊ฐ ํน์ ์์ ๋ง ํ๋๋ก ์ค๊ณ๋์๊ณ , ์ผ๋ฐ PC์ฒ๋ผ ํ๋ก๊ทธ๋จ์ ์ด๊ฒ์ ๊ฒ ์ค์นํด์ ์ฐ๋ ๊ฒ์ด ์๋์ด์, ์ํ๋ ์์ ์ ๋ํ ์ฑ๋ฅ๋ง ๊ฐ์ถ๋ฉด ๋์ง ๊ตณ์ด ๋น์ธ๊ณ ํฌ๊ธฐ๊ฐ ํฐ ๊ณ ์ฑ๋ฅ์ ์นฉ์ ์ ์ธ ํ์๊ฐ ์๋ค.
์ด๋ฌํ ํน์ฑ ๋๋ฌธ์ ์๋ฐํ ์ฒ๋ฆฌ๊ฐ ์๊ตฌ๋๋ ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ๋๊ฐ ๋ฐ์คํฌํฑ OS๋ ์คํ ์๊ฐ์ด ๋ช ์ด ์ ๋ ๋๋ ค์ ธ๋ ๋ณ ๋ฌธ์ ๊ฐ ์์ง๋ง, ํญ๊ณต ์ ์ด, ์์ฐ ๊ด๋ฆฌ๋ ๋ณ์ ๋ฑ ํน์ ํ ์์คํ ์์๋ ๋จ 1, 2์ด์ ์ง์ฐ์ด ์ฒ์ฐธํ ๊ฒฐ๊ณผ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์์คํ ์ ์๊ฐ ๊ด๋ฆฌ ๋ถ๋ถ์ ๋ง์ ๋น์ค์ ํฌ์ํ์ฌ, ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌ ์์ฒญ์ ์ ํด์ง ์๊ฐ ๋ด์ ๋๋ง์น ์ ์๋ ์ฑ๋ฅ์ ๋น์ค์ ๋๊ณ ์๋ค. ์ ์ ํ ๋ฉํฐ ํ์คํน์ ์ง์ํ๊ณ ๊ฐ ํ๋ก์ธ์ค์ ์คํ ์์๋ฅผ ์ ์ํ๋๋ฐ ๋ง์ ๋น์ค์ ํฌ์ํ๋ค.
๋ ์ฌ๋ถํ ์ ์์๋ก ํ ์ ์๋ ๋ฐ์คํฌํฑ ์์คํ ๊ณผ๋ ๋ฌ๋ฆฌ, ์๋ฒ ๋๋ ์์คํ ์ ๋ช ๋ฌ์์ ๊ธธ๊ฒ๋ ๋ช ๋ ๊ฐ ์ฌ๋ถํ ์์ด ์คํ๋๋ ๊ฒฝ์ฐ๊ฐ ํํ ์๋ค. ์ด ๋๋ฌธ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ต์ ํํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ(memory fragmentation)๋ฅผ ํ์ฉํ์ง ์๋๋ค. ์ฆ, C์์์ malloc() ๊ฐ์ ํจ์๋ฅผ ๊ฑฐ์ ์ฐ์ง ์๋๋ค๋ ์ด์ผ๊ธฐ๋ค.
์ผ์ฑ์ ๋ฐ๋ค๊ฐ ์ค์๊ฐ ์ด์ ์ฒด์ ์ธ Nucleus RTOS์ ์ปค๋์ ์ฌ์ฉํ๋ค.
2. ์ค์๊ฐ ์ด์ ์ฒด์ ๋ชฉ๋ก[ํธ์ง]
- Nucleus RTOS: ์ผ์ฑ์ด ์ค๋งํธํฐ์ฉ ์ด์์ฒด์ ๋ฐ๋ค์์ ์ฌ์ฉํจ. ๋ฐ๋ค์ ๊ฒฝ์ฐ ๋ฆฌ๋ ์ค ์ปค๋์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์.
- QNX: ๋ธ๋๋ฒ ๋ฆฌ์์ ์ธ์ํ์ฌ QNX ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋๋ฒ ๋ฆฌ 10 ์ด์ ์ฒด์ ๋ฅผ ๋ง๋ค์๋ค.