Operating System "Service"
๋ฆฌ๋ ์ค์์ ๋ก๊ทธ์ธ์ ํ ๋ค์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค๋ฉด?
์๋ฅผ ๋ค์ด, ls๋ผ๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๊ณ ์ํฐ๋ฅผ ์ณค๋ค. ls๋ผ๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด์๋ ๊ทธ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ํ๋ก์ธ์ค๊ฐ ๋ง๋ค์ด์ ธ์ผ ํ๊ณ , ๊ทธ ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์ค์ ๋ด์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ ์คํํ ์ ์๊ฒ ๋๋ค.
์ฌ์ฉ์๊ฐ ls๋ฅผ ์
๋ ฅํ๊ณ ์ํฐ๋ฅผ ์น๋ฉด ์ด ํ๋ก์ธ์ค๊ฐ ๋ง๋ค์ด์ ธ์ผ ํ๋๋ฐ, ๋๊ฐ ๋ง๋๋ ๊ฒ์ผ๊น. ์ฌ๋์ด ์คํ์ํจ ๊ฒ์ ๋ง์ง๋ง ํ๋ก์ธ์ค๋ฅผ ์ฌ๋์ด ๋ง๋๋ ๊ฒ์ ์๋๋ค.
ls๋ฅผ ์
๋ ฅํ๊ณ ์ํฐ๋ฅผ ์น๋ฉด ์ด๋ค ์ผ์ด ๋ฒ์ด์ง๊น.
ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ์๋น์ค๋ฅผ OS๊ฐ ์ ๊ณตํ๋๋ฐ, ํด๋น ์๋น์ค๋ System Call์ ํตํด ์ ๊ณต์ด ๋๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ์๋น์ค๋ fork()๋ผ๋ System Call์ ํตํด ์ฌ์ฉํ ์ ์๋ค.
์ด ์ธ์๋ OS๋ ์๊ธฐ๊ฐ ํ๋ ์ผ๋ค์ ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ํด์ฃผ๊ฒ ๋๊ณ , ์ฌ์ฉ์๊ฐ ๊ทธ๋ฐ ์์ฒญ์ ํ ์ ์๋๋ก ์๋น์ค์ ํํ๋ก ์ ๊ณต์ ํ๋ค. ๊ทธ ์๋น์ค๋ค์ด Operating-system service์ด๊ณ , ๊ทธ ์๋น์ค๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ System Call์ด๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋ง๋ ๋ค๋ ์ง, ํ๋ก์ธ์ค๋ฅผ ์ฃฝ์ธ๋ค๋ ์ง, ํ์ผ์ ๋ง๋ ๋ค๋ ์ง, I/O๋ฅผ ์ํํ๋ ๋ฑ์ ๋ค์ํ OS๊ฐ ์ ๊ณตํ๋ ์๋น์ค๊ฐ ์๋ค.
์ด ์๋น์ค๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ฐ ์๋น์ค์ ๋ง๋ System call์ ํธ์ถํ๋ ๊ฒ์ด๋ค.
์๋น์ค๋ ๋ญ๊ฐ ์์๊น? ์ ์ ์ธํฐํ์ด์ค, ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์๋น์ค I/O๋ฅผ ์ํํ๋ ์๋น์ค, ํ์ผ์ ๋ง๋ค๊ณ ์ญ์ ํ๋ ์๋น์ค, ์ปค๋ฎค๋์ผ์ด์
์๋น์ค, ์๋ฌ๋ฅผ ํ์งํ๊ณ ์ฒ๋ฆฌํ๋ ์๋น์ค ๋ฑ๋ฑ...
์ด๋ฌํ ์์คํ ์ฝ์ ํธ์ถํ๋ ๋ฐฉ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
์์คํ ์ฝ์ด ๋ค์ด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ์ฌ์ฉํ ์๋ ์๊ณ , GUI๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, Command line์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ ๋ฑ๋ฑ์ด ์๋ค.
์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ๋๋ธ ํด๋ฆญํ์ฌ ์คํ์ํค๋ฉด GUI๋ผ๋ ์ ์ ์ธํฐํ์ด์ค๊ฐ fork() system call์ ํธ์ถํ๊ฒ ๋๊ณ ,
๊ทธ๋ฌ๋ฉด OS๋ ๊ทธ system call์ ๋ฐ์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์ด์ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ฒ ๋๋ค.
System Call
๋ค์ ๋งํด, ์์คํ ์ฝ์ OS์ ์๋น์ค๋ฅผ ํธ์ถํ๋ Interface๋ผ๊ณ ํ ์ ์๋ค.
System call์ ์ง์ ํธ์ถํ ์๋ ์์ง๋ง, ์ง์ ํธ์ถํ๊ธฐ ๋ณด๋ค๋ high level์ API(Application Program Interface)๋ฅผ ํตํด ํธ์ถ๋๋ก ํ๊ณ ์๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ API๋ค์
1. WIN32 API for Windows
2. POSIX API for POSIX-based systems( UNIX, Linux, and Mac OS )
3. Java API for Java virtual machine( JVM )
์ด๋ ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค.
API๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ ๊ณ์ด์ OS๋ง๋ค ๊ฐ์ API๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
WIN32 API๋ ์๋์ฐ ๊ณ์ด์ OS์์, POSIX API๋ Unix ๊ณ์ด์ OS์์, Java API๋ Java virtual machine์ด ์ค์น๋ ๋ชจ๋ ์ปดํจํฐ์์ ํธํ์ด ๊ฐ๋ฅํ๋ค.
์ System Call์ ์ง์ ํธ์ถํ์ง ์๊ณ API๋ฅผ ํตํด ํธ์ถํ๋ ๊ฒ์ผ๊น?
๊ฐ์ ์๋น์ค๋ฅผ ์ด์ฉํ๋๋ผ๋ OS๋ง๋ค System Call์ด ๋ค ๋ค๋ฅด๋ค.
=> Systemcall์ OS์์ ์ ๊ณตํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๊ทธ๋ฐ๋ฐ API๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์ API๋ก ์ฌ๋ฌ OS์์ ๋์ํ ์ ์๋๋ก ํ ์ ์์.
์ฆ, ํ๋์ ํ๋ก๊ทธ๋จ ์์ค ์ฝ๋๋ก ์ฌ๋ฌ OS์์ ๋์ํ๋๋ก ํ ์ ์๋ค๋ ๋ป์ด๋ค.
=> ์ด์์ฑ(Portability)์ด ์ข๋ค.
printf ํจ์ ์์๋ system call์ ํธ์ถํ๋ ๋ถ๋ถ์ด ๋ค์ด์๋ค๊ณ ํ๋ค.
printf ํจ์๋ ๋ด์ฉ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ ํจ์์ธ๋ฐ, ๋ชจ๋ํฐ๋ ํ๋์จ์ด์ด๊ธฐ ๋๋ฌธ์ OS๋ฅผ ํตํด์ ์ ๊ทผํด์ผ ํ๋ค. ๊ทธ๋์ printf ํจ์ ๋ด์๋ ๋ง์ง๋ง ๋ถ๋ถ์ ํ๋ฉด์ ์ถ๋ ฅ์ OS์๊ฒ ์์ฒญํ๋ System Call์ด ๋ด์ฅ๋์ด ์๋ค๊ณ ํ๋ค.
๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด ์ด printf ํจ์๋ OS์ ์๊ด์์ด ์ฝ๋๊ฐ ๋์์ ํ๋ค. ์ฌ์ง์ด ๊ฐ์ ๊ณ์ด์ OS๊ฐ ์๋๋ผ๋ ๋์์ ํ๊ฒ ๋๋๋ฐ ์ด๊ฑด ์ด๋ป๊ฒ ๋ ๊ฑธ๊น?
printf๋ OS๋ฅผ ์ํด ๋ง๋ค์ด์ง API๊ฐ ์๋๋ผ programming language๊ฐ ์ ๊ณตํ๋ API์ด๊ธฐ ๋๋ฌธ์ C์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ OS์์๋ ๋ค ๋์๊ฐ๋ค.
์ปดํ์ผ๋ฌ๊ฐ OS์ ๋ง์ถฐ์ ์ปดํ์ผํด ์ฃผ๋ ๊ฒ์ด๋ค.
=> ๊ทธ๋์ ์ด์์ฑ์ด ๊ฐ์ฅ ์ข์ API๋ programming language์์ ์ ๊ณตํ๋ API, ๊ทธ ๋ค์์ OS ๊ณ์ด์ ๋ฐ๋ผ ์ ๊ณต๋๋ API
ํ์ผ์ ๋ด์ฉ์ ์นดํผํ๋ ๋์์ ์ํด์ ์ด๋ค System Call๋ค์ ํธ์ถํ๊ฒ ๋ ๊น?
input ํ์ผ์ ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์์ ํ๋ฉด์ ์ถ๋ ฅํ๊ณ , output ํ์ผ์ ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
input ํ์ผ์ Openํ๊ณ , Output ํ์ผ์ Create ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฃจํ๋ฅผ ๋๋ฉด์ input ํ์ผ์ ๋ด์ฉ์ ์ฝ์ด์ output ํ์ผ์ ์ด๋ค.
๋ชจ๋ ๋ด์ฉ์ ๋ณต์ฌํ๊ณ ๋๋ฉด, output file์ Closeํ๊ณ ์ฑ๊ณต์ ์ผ๋ก ๋ง์ณค๋ค๋ ๋ฉ์์ง๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค.
๋ฆฌ๋ ์ค์์ ์ฌ์ฉ์๋ ๋จ์ํ copy file a file b ๋ผ๊ณ ์ฐ๋ฉด a ํ์ผ์ ๋ด์ฉ์ด b ํ์ผ๋ก ์ฝ๊ฒ ๋ณต์ฌ๊ฐ ๋์ง๋ง,
์ค์ ๋ก copy๋ผ๋ ํ๋ก๊ทธ๋จ ๋ด์์๋ System Call๋ค์ด ์ฌ๋ฌ ๋ฒ ํธ์ถ๋๋ค.
=> ์ฌ์ฉ์๋ API๋ฅผ ํตํด ๊ฐ๋จํ๊ฒ ์คํ ๊ฐ๋ฅ
API๋ฅผ ์ฌ์ฉํ๋ ์ด์ : ์ด์์ฑ, ํธ๋ฆฌ์ฑ
System Call์ด ํธ์ถ๋๋ฉด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ ๊น?
System Call๋ง๋ค ๊ณ ์ ํ ๋ฒํธ๊ฐ ๋ถ์ฌ๋์ด ์๋ค.
์์คํ
์ฝ์ด ํธ์ถ๋์์ ๋ ์์คํ
์ฝ์ ์ํํ๊ธฐ ์ํด์๋ ํด๋น ์์คํ
์ฝ์ด ๋ฉ๋ชจ๋ฆฌ ์ด๋์ ์ฌ๋ผ์์๋์ง ์์์ผ ํ๋ค.
๊ฐ ์์คํ
์ฝ๋ง๋ค ๊ณ ์ ํ ๋ฒํธ๊ฐ ๋ถ์ฌ๋์ด ์๊ณ , ํ
์ด๋ธ์๋ ๊ทธ ๋ฒํธ๋ฅผ ์ธ๋ฑ์ค๋ก ํ์ฌ ์์คํ
์ฝ์ด ์ฌ๋ผ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ํ
์ด๋ธ์ ํํ๋ก ์ ์ฅ๋์ด ์์.
์์คํ
์ฝ์ด ํธ์ถ๋๋ฉด ํ
์ด๋ธ์ ์ฐธ๊ณ ํด์ ํด๋น ์์คํ
์ฝ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐพ์ PC๊ฐ ๊ฑฐ๊ธฐ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ ๋ค์ ํด๋น ์ฝ๋๋ก ์ ํํ๋ค. CPU๊ฐ ๊ฑฐ๊ฑฐ์๋ถํฐ ์ํํ๋ฉด ์์คํ
์ฝ์ด ๋์.
=> ์ฌ์ฉ์๋ ์ด๋ฐ ๊ฑธ ์ ํ ์ ํ์ ์์ด API๋ง ํธ์ถํ๋ฉด ๋๋ค.
User application์ด System call์ ์ง์ ํธ์ถํ์ ๋์ ๋์ ๊ณผ์
์ ์ ํ๋ก๊ทธ๋จ์ด Open() ์์คํ ์ฝ์ ํธ์ถํ๊ฒ ๋๋ฉด ํธ์ถํ ์๊ฐ mode bit๊ฐ ์ ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ๋ณ๊ฒฝ์ด ๋๊ณ , Open ์์คํ ์ฝ์ ํด๋นํ๋ ๋ฒํธ๋ฅผ ์ด์ฉํด์ ํ ์ด๋ธ์ ํตํด Open ์์คํ ์ฝ์ ์ฝ๋๊ฐ ์๋ ์ฃผ์๋ฅผ ์ฐพ์ ๊ทธ ์ฝ๋๋ฅผ ์ํํ๋ค. ์ํ์ด ๋ชจ๋ ์๋ฃ๋๋ฉด ๋ค์ ์ ์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฆฌํดํ๊ณ , mode bit๋ฅผ ์ ์ ๋ชจ๋๋ก ๋ค์ ๋ณ๊ฒฝํ๋ค.
์ ์ ํ๋ก๊ทธ๋จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ํตํด์ System call์ ํธ์ถํ์ ๋์ ๋์ ๊ณผ์
์ ์ ํ๋ก๊ทธ๋จ์ด System call์ด ํฌํจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋๋ฉด, ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๊ฐ ์์คํ ์ฝ์ ํ๊ฒ ๋๊ณ ,
๊ทธ ์๊ฐ ์ปค๋ ๋ชจ๋๋ก ๋ณ๊ฒฝ์ด ๋๋ค. ๋๊ฐ์ด write ์์คํ ์ฝ์ ๋ฒํธ๋ฅผ ์ธ๋ฑ์ค๋ก ํ์ฌ ํด๋น ์์คํ ์ฝ์ ์ฝ๋๋ฅผ ์ฐพ์ ๊ทธ ๋ถ๋ถ์ ์คํํ๋ค.
์คํ์ด ์๋ฃ๋๋ฉด write๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ printf ํจ์๋ก ๋ฆฌํด์ด ๋๊ณ printf๋ write์ ๋ฆฌํด ๊ฐ์ ๋ฐ์์ ์ ์ ํ๋ก๊ทธ๋จ์ printf ํจ์์ ๋ฆฌํด ๊ฐ์ผ๋ก ์ ๋ฌํ๊ฒ ๋๋ค.
Virtual Machine (๊ฐ์ ๋จธ์ )
๊ต์๋์ด ๊ฐ์ ๊ธฐ๊ณ๋ฉด ๊ฐ์ ๊ธฐ๊ณ๊ณ ๋ฒ์ถ์ผ ๋จธ์ ์ด๋ฉด ๋ฒ์ถ์ผ ๋จธ์ ์ด์ง ์ ๊ฐ์ ๋จธ์ ์ด๋ผ๊ณ ํ๋์ง ์ดํดํ ์ ์๋ค๊ณ ํ์ จ๋๋ฐ, ๋ฃ๊ณ ๋ณด๋ ๊ทธ๋ ๋ค,,
์๋ฌดํผ ์ฐ๋ฆฌ๋ Virtual Machine์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ ์ด๋ฌํ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น?
๊ณผ์ ๋ฅผ ์ํด์ ์ด์์ฒด์ ์ฝ๋๋ฅผ ์ง์ ๋ฐ๊พผ๋ค๊ณ ํด๋ณด์. ์ฌ์ฉํ๊ณ ์๋ ๋
ธํธ๋ถ์ ์ด์์ฒด์ ์ฝ๋๋ฅผ ์ง์ ๋ฐ๊ฟ์ ์ปดํ์ผํด์ ๊ทธ๊ฑธ ์ค์นํ ๋ค์ ๋ถํ
์ ํ๋๋ฐ, ๋ด๊ฐ ์ฝ๋ฉ์ ์๋ชปํด์ ๋ถํ
์ด ์ ๋๋ฉด?
์ ์์ ์ธ OS๋ฅผ ๋ค์ ์ค์นํด์ ์ ์์ ์ผ๋ก ๋ถํ
๋๊ฒ ๋ง๋ค์ด์ ๋ ๋ค์ ๋ด๊ฐ ์ํ๋ ์ฝ๋๋ก ์์ ํด์ ์์ ํ OS๋ฅผ ๊น์์ ๋ ๋ถํ
์ ๋ค์ ํด๋ณธ๋ค. ๋ ์คํจํ๋ฉด ์ด ๊ณผ์ ์ ๋ค์ ๋ฐ๋ณตํด์ผ ํ๋ค. ์์ฒญ๋ ์๊ฐ์ด ์์๋ ๊ฒ์.
๋ํ ์ด๋ฐ ์์
์ ๋ด ๊ฐ์ธ์ฉ PC์์๋ง ํด์ผํ๋ค. ๊ณต์ฉ PC์์ ํ๋ฉด ํฐ์ผ๋จ.
VM์ด ํ๋ ์ผ์ ์ปดํจํฐ ํ๋์จ์ด์ ํ๋์จ์ด ์์ ์ด์์ฒด์ ๋ฅผ ๋ฌถ์ด์ ๊ทธ๊ฒ์ ํต์งธ๋ก ํ๋์จ์ด์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ค. ์ฆ, ์ด์์ฒด์ ๊ฐ ๊น๋ ค์์ง ์์ ์์ ๊ธฐ๊ณ์ฒ๋ผ ๋ณด์ด๊ฒ ํด์ค๋ค.
์ฐ๋ฆฌ๋ ๊ฐ์ ๋จธ์ ์์์ OS์ ๋ํ ์์
์ ํ๋ค๊ฐ ๋ง์ฝ ๋ถํ
์ด ์ ๋๋ฉด ๊ฐ์ ๋จธ์ ์ ๊ทธ๋ฅ ์ญ์ ํ๋ฉด ๋๋ ๊ฒ์ด๋ค.
๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์๋์ ํ๋์จ์ด์ OS ์์ ์๋ก์ด ๊ฐ์ ๋จธ์ ์ ์ค์นํ ์ ์๊ฒ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ ๋จธ์ ์์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ OS๋ฅผ ์ค์นํด์ ์ฌ์ฉํ ์ ์๋ค.
ํ๋์ ๊ธฐ๊ณ์์ ์ฌ๋ฌ OS๋ฅผ ์ค์นํด์ ์์ ํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ํด ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ํ ์ ์๋ ํ๊ฒฝ์ ํ๋์ ์ปดํจํฐ์์ ๊ตฌ์ฑํด์ค ์ ์๋ค.
=> ์ด๊ฒ์ ํด๋ผ์ฐ๋ ์ปดํจํ
์์ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค
=> ํด๋ผ์ฐ๋ ์ปดํจํ
์์๋ ํ๋์ ์ปดํจํฐ๋ฅผ ์ฌ๋ฌ ์ฌ๋์ด ์ฌ์ฉํ๋๊น ์ฌ๋๋ง๋ค ํ์ํ OS๊ฐ ๋ค๋ฆ. ๊ทธ๋ฐ๋ฐ ํ๋์ ๊ธฐ๊ณ ์์ ๊ฐ์ ๋จธ์ ์ ์ค์นํด์ ๋ค์ํ OS ํ๊ฒฝ์ ์ ๊ณต ๊ฐ๋ฅํ๋ค.
Cloud Computing(ํด๋ผ์ฐ๋ ์ปดํจํ )
์ด๊ฑด ์ ๋ชฐ๋ผ๋ ๋๋ค๊ณ ํ์ จ๋๋ฐ(์ฐธ๊ณ ๋ง ํ์), ํด๋ผ์ฐ๋ ์ปดํจํ ์ ์ฒ์์ ๊ฒฝ์ ์ ์ธ ๋ชฉ์ ์ผ๋ก ์์๋์๋ค.
๊ฐ์ธ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํ๋ค ๋ณด๋ฉด ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ํ ์์ ์ ์ฌ์ฉ์๊ฐ ์ง์ค๋๋ ํ์์ ๋ณด์ธ๋ค.
์๋ฅผ ๋ค์ด, ์๊ฐ ์ ์ฒญ ์ฌ์ดํธ๋ ํ๊ธฐ ์ด์ ์๊ฐ ์ ์ฒญํ ๋๋ง ์ด์ฉ์๊ฐ ๋ชฐ๋ฆฌ๊ณ ํ์์ ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ์๋ค.
๊ทธ๋ ๊ธฐ์ ์ด๋ค ๋์ ๋ง์ถฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ ์ง๊ฐ ํญ์ ๋๋ ๋ง๋ค.
๋ง์ฝ ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋ง์ ๋์ ๋ง์ถฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ๋ฉด ํ์์ ๊ทธ ์์๋ค์ด ๋ญ๋น๊ฐ ๋๊ณ , ๊ฐ์ฅ ์ ์ ๋์ ๋ง์ถฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ๋ฉด ์ฌ์ฉ์๊ฐ ๋ชฐ๋ ธ์ ๋ ์์์ด ๋ถ์กฑํ๊ฒ ๋๋ค.
=> ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋จ์ ์ ์ฉ ์ปดํจํฐ์์ ํธ์คํ ํ๋ฉด ์ด๊ธฐ ๋น์ฉ๊ณผ, ๋ญ๋น๋๋ ์์์ด ๋๋ฌด ๋ง์์.
๊ทธ๋์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋์ ๊ธฐ๊ณ๋ฅผ ๊ณต์ ํ์ฌ ์๋ฒ๋ฅผ ํธ์คํ ํ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด ํด๋ผ์ฐ๋ ์ปดํจํ ์ด๋ค.
์ด๋ฌํ ๊ทธ๋ํ๋ฅผ ํ ๋ฐ ๋ชจ์ผ๋ฉด Peak๋ ๋ฎ์์ง๊ณ , ํ๊ท ์ ์ฌ๋ผ๊ฐ๋ ํ์์ ๋ณด์ธ๋ค.
์ด๋ฌํ ํ์์ Statistical Multiplexing Gain์ด๋ผ๊ณ ํ๋ค.
์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ๋ ๋ง์ด ๋ชจ์ ์๋ก ๊ทธ๋ํ๋ ์ ์ ์๋งํด์ง๊ฒ ๋๊ณ , ๊ทธ๋ฌ๋ฉด ๊ฑฐ๊ธฐ์ ๋ง์ถฐ์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๋ฉด ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌธ์ ์์ด ๋์ํ ์ ์๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ํ๋์ ์ปดํจํฐ๋ฅผ ์ฌ๋ฌ ์ฌ๋์ด ์ฌ์ฉํ๋ค ๋ณด๋ ์ฌ๋๋ง๋ค ํ์ํ OS๊ฐ ๋ค๋ฅด๋ค. ์ด๋ ํ์ํ ๊ฒ์ด ๊ฐ์ ๋จธ์ ์ด๋ค.
=> ํ๋์ ๊ธฐ๊ณ๋ก ๊ฐ์ ๋จธ์ ์ ์ด์ฉํด ๋ค์ํ OS ํ๊ฒฝ ์ ๊ณต ๊ฐ๋ฅ
Java Virtual Machine (JVM)
Java Virtual Machine์ ํด๋ผ์ฐ๋ ์ปดํจํ ์ฒ๋ผ ์์ ์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ๊ฒ์ด ์๋๋ค
์น ์๋ฒ์์ ํ์ด์ง ์คํ ํ์ผ์ ์ฌ์ฉ์์ PC๋ก ๋ณด๋ด์ ์ฌ์ฉ์์ ์ปดํจํฐ์์ ์คํ์ด ๋๋๋ก ํ๋ฉด, ์น ํ์ด์ง๊ฐ ์ ์ ์ธ ์ปจํ ์ธ ๊ฐ ์๋ ๋์ ์ธ ์น ์ปจํ ์ธ ๊ฐ ๋ง๋ค์ด์ง ์ ์๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ดํธ ๋ด์์ ๊ฒ์์ ํ ์ ์๋ ์น ํ์ด์ง. ์ด๋ฐ ๊ฑด ์๋ฒ ์ปดํจํฐ์์ ์คํํด์ ํ์ด์ง๋ฅผ ๋ณด๋ด๋ ๊ฒ์ด ์๋ ์คํํ์ผ์ ๋ณด๋ด์ ์ฌ์ฉ์์ ์ปดํจํฐ์์ ์คํ๋๋๋ก ํด์ผ ํ๋ค.
=> ๊ทธ๋ฐ๋ฐ ์คํ ํ์ผ์ ๋ณด๋์ ๋ ์ฌ์ฉ์๋ง๋ค OS๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์คํ์ด ๋ ์๋ ์๊ณ ์ ๋ ์๋ ์๋ ๋ฌธ์ ๊ฐ ์์๋ค.
๊ทธ๋์ ํ๋์ ์ปจํ
์ธ ์ ๋ํด์ ๋ฆฌ๋
์ค์ฉ ์ฝ๋, ์๋์ฐ์ฉ ์ฝ๋,, ๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ผ ํ๋ค.
=> ๊ทธ๋์ ์ด๋ ๊ธฐ๊ณ๋ก ๊ฐ๋ ์คํ๋ ์ ์๋ ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด Java Virtual Machine์ ๋ง๋ฆ
=> ์น ์ปจํ
์ธ ๊ฐ ๋งค์ฐ ํ๋ถํด์ก๋ค.
์ปดํ์ผ์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ ์์ฑํ ํ๋ก๊ทธ๋จ์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํด๋ฒ๋ฆฌ๋ฉด ๊ทธ ๊ธฐ๊ณ์ด๋ฅผ ํด์ํ ์ ์๋ ๊ธฐ๊ณ์์๋ง ๋์์ด ๊ฐ๋ฅํ๋ค.
=> ๊ทธ๋์ ์ปดํ์ผ์ ํ์ง๋ง๊ณ java ํ์ผ์ ๋ณด๋ธ ๋ค์์ ์ปดํ์ผ์ ์ฌ์ฉ์ ์ปดํจํฐ์์ ํ์ ๋ผ๋ ์์ด๋์ด.
๊ทธ๋์ JVM์ด ์ค์น๋์ด ์๋ ๊ธฐ๊ณ๋ผ๋ฉด ๊ทธ ๊ธฐ๊ณ์ OS์ ์๊ด์์ด java class ํ์ผ๋ง ๋ฐ์ผ๋ฉด ์คํ์ํฌ ์ ์๊ฒ ๋๋ค.
*๋ชจ๋ ๋ด์ฉ์ ํ์๋ํ๊ต ๊ฐ์์ฉ ๊ต์๋์ ๊ฐ์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค.
'HYU > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4. CPU Scheduling (5) | 2023.03.24 |
---|---|
3. Processes and Threads (0) | 2023.03.23 |
2. Operating System Overview (1) (0) | 2023.03.22 |
1. Computer System Overview (2) (0) | 2023.03.20 |
1. Computer System Overview (1) (1) | 2023.03.20 |