Operating System (OS)
์ปดํจํฐ์ ๊ตฌ์ฑ
์ปดํจํฐ๋ ํฌ๊ฒ ์์ฉํ๋ก๊ทธ๋จ, ์ด์์ฒด์ , ํ๋์จ์ด ๊ณ์ธต์ผ๋ก ๋ถ๋ฅ๋๋ค. ์ด ๋ฌธ์์์๋ ์์ฉํ๋ก๊ทธ๋จ์ ์ ์ธํ๊ณ ์ด์์ฒด์ ์ ํ๋์จ์ด์ ๋ํด ๋ ผํ๋ค.
CPU์ ์ ์ถ๋ ฅ ์ฅ์น ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ ์์คํ ๋ฒ์ค๋ฅผ ํตํด ์๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ๋ฒ์ค์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋จ๋ฐฉํฅ ๋๋ ์๋ฐฉํฅ์ผ๋ก ์ ํธ๋ฅผ ๋ณด๋ธ๋ค. ์ ์ถ๋ ฅ ์ฅ์น์ ๊ฒฝ์ฐ ๋ฉ์ธ๋ณด๋ ์์ ์ฌ์ ์ ๋ง๋ค์ด์ง ์ฅ์น ์ปจํธ๋กค๋ฌ๋ฅผ ์ด์์ฒด์ ์ ์ฅ์น ๋๋ผ์ด๋ฒ๊ฐ ์ ์ดํ๋ฉฐ, ์ฅ์น๋๋ผ์ด๋ฒ๋ ์ด์์ฒด์ ์ ์ผ๊ด๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค. CPU์ ์ฅ์น์ปจํธ๋กค๋ฌ๋ ๋ณ๋ ฌ๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ์ํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ดํด์ ๋๊ณ ๊ฒฝ์ํ๋ค. ์ด ๋ฉ๋ชจ๋ฆฌ์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ๋๊ธฐํํ๋ค.
์์์ ๊ฐ๋จํ ์ค๋ช ํ ๋ด์ฉ์ OS ๋ด๋ถ์ ์ปค๋๊ณผ ์์คํ ํ๋ก๊ทธ๋จ์ ์ํด ์ ์ด๋๋ฉฐ, ํ๋์จ์ด์ ๊ฒฝ์ฐ ์ฌ์ ์ ์ค๊ณ๋ ํ๋ก์ ๋์์ ์ํํ๋ค.
์ด์์ฒด์ ์ ๊ตฌ์กฐ
์ด์์ฒด์ ๊ฐ์ด ํฌ๊ณ ๋ณต์กํ ์์คํ ์ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉด์ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋ ค๋ฉด ์ ์คํ ์ ์๋์ด์ผ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ ๊ฐ์ ์ผ๊ด๋ ์์คํ ๋ณด๋ค๋ ์์ ์ ์์ ๊ตฌ์ฑ์์๋ก ๋ถํ ํ๋ ๊ฒ์ด๋ค. ๊ฐ๊ฐ์ ๋ชจ๋์ ์ ์คํ ์ ์๋ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ง๋ ์์คํ ์ ์ผ๋ถ๊ฐ ๋์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด main() ํจ์์ ๋ชจ๋ ์ฝ๋๋ฅผ ๋ฃ๋๊ฒ ๋ณด๋ค ํ์ํ ๊ธฐ๋ฅ์ ์ฌ๋ฐ๋ฅธ ์ธ์์ ๋ฐํ๊ฐ์ ๋ช
์ํ ์ฌ๋ฌ ํจ์๋ก ๋ถ๋ฆฌํ๊ณ ์ ์ฌ์ ์์ ๋ง๊ฒ ํธ์ถํ๋ ๊ฒ์ด๋ค.
์ด์์ฒด์ ์ ๊ณตํต์ ์ธ ๊ตฌ์ฑ์์๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ํ๋์ ์ปค๋๋ก ๊ฒฐํฉํ๋์ง ์์๋ณด์.
๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ํ๊ฐ์ ๊ตฌ์กฐ์์ด ํ๊ณณ์์ ๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
monolithic[mษ:nษโlษชฮธษชk]: ํ๋๋ก๋ ๊ฑฐ๋ํ ๋ฉ์ด๋ฆฌ
์ด๋ฌํ ํ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋๋ฆฌ์ (monolithic)์ด๋ผ๊ณ ํ๋ค. ์ฆ ๋จ์ผ ์ฃผ์ ๊ณต๊ฐ์์ ์คํ๋๋ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ปค๋์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ฃ๋ ๊ฒ์ด๋ค.
๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ๋ผ๊ณ ํ๋ ์ด๋ฐฉ๋ฒ์ ์ด์์ฒด์ ๋ฅผ ์ค๊ณํ๋ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฒ์ด๋ค. ์ด๋ฌํ ์ ํ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ ์ด์์ฒด์ ๋ ์ต์ด์ UNIX ์ด์์ฒด์ ๊ฐ ๋ํ์ ์ธ ์์์ด๋ค.
์ปค๋๊ณผ ์์คํ
ํ๋ก๊ทธ๋จ์ ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ปค๋์ ์ฌ๋ฌ๊ฐ์ง ์ธํฐํ์ด์ค์ ์ฅ์น๋๋ผ์ด๋ฒ๋ก ๋๋๊ฒ ๋๋๋ฐ, ์ด๋ UNIX๊ฐ ๋ฐ์ ํด ์ค๋ฉด์ ๋ช์ญ๋
์ ๊ฑธ์ณ ์ถ๊ฐ๋๊ณ ํ์ฅ ๋์๋ค.
๊ณ์ธต ๋ณ๋ก ์ด๋ฃจ์ด์ ธ ์๋ UNIX ์ด์์ฒด์ ๋ ์์คํ
์ฝ ์ธํฐํ์ด์ค ์๋์ ํ๋์จ์ด ์ ๋ชจ๋ ๊ฒ์ด ์ปค๋์ด๋ค.
์ปค๋์ ์์คํ
์ฝ์ ํตํด ํ์ผ ์์คํ
, CPU ์ค์ผ์ค๋ง, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ๋์ ์ฃผ์ ๊ณต๊ฐ์ผ๋ก ๊ฒฐํฉํ๊ธฐ์๋ ๋๋ฌด ๋ง์ ๊ธฐ๋ฅ์ด๋ค.
Linux ์ด์์ฒด์ ๋ UNIX์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ผ๋ฉฐ ์๋์ ๊ฐ์ ์ ์ฌํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ์ปค๋์ ์์คํ
์ฝ ์ธํฐํ์ด์ค์ ํต์ ํ ๋ glibc ํ์ค C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
Linux ์ปค๋์ ๋จ์ผ ์ฃผ์ ๊ณต๊ฐ์์ ์ปค๋๋ชจ๋๋ก ์ ๋ถ ์คํ๋ ๋ค๋ ์ ์์ ๋ชจ๋๋ฆฌ์์ด์ง๋ง, ๋ฐํ์์ ์ปค๋์ ์ ํ ์ ์๋ LKM ๋ชจ๋์ ์ค๊ณ๋ฅผ ๊ฐ์ถ๊ณ ์๋ค.
์ด๋ฌํ ๋จ์ํ ๊ตฌ์กฐ๋ผ๋ ํ์ฅ์ ์ด๋ ต์ง๋ง ์์คํ
์ฝ์ ์ค๋ฒํค๋๊ฐ ๊ฑฐ์ ์๊ณ ์ปค๋์์์์ ํต์ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฐ๋ผ์ ๋ชจ๋๋ฆฌ์ ์ปค๋์ ๋จ์ ์๋ ๋ถ๊ตฌํ๊ณ ์๋์ ํจ์จ์ฑ์ ์์ง๊น์ง๋ UNIX์ Linux ๋ฐ Windows์์ ์ฌ์ฉ๋๋ ๊ฒ์ด ์ฆ๋ช
ํด์ค๋ค.
๊ณ์ธต์ ์ ๊ทผ
์์ฑ์ค...
์ด์์ฒด์ ์ ๋์ ์์
์ปดํจํฐ์ ์ ์์ ์ผค ๋ ์คํ๋๋ ๋ถํธ์คํธ๋ฉ ํ๋ก๊ทธ๋จ์ ํ์จ์ด์ด๋ค.
๋ถํธ์คํธ๋ฉ ํ๋ก๊ทธ๋จ์ ํ๋์จ์ด ์์์ ๋์ํ๋ฉฐ CPU, ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์ฅ์น ๋ฑ์ ์ด๊ธฐํ ํ๋ค. ๋ํ ์ด์์ฒด์ ๋ฅผ ๋ก๋ํ๊ธฐ ์ํด ๋ถํธ๋ก๋๋ฅผ ์คํํ๋ฉฐ, ์ด๋ ์ ์ฅ์ฅ์น์์ ๋ฉ๋ชจ๋ฆฌ๋ก Kernel(์ปค๋)์ ์ ์ฌํ๋ค.
๋ถํธ๋ก๋๋ ์ปค๋ ์คํ์ ํ์ํ ์ด๊ธฐ์ค์ (์: ์ปค๋งจ๋๋ผ์ธ ์ธ์ ์ ๋ฌ ๋ฑ)์ ํ๋ค, ์ปค๋์ ์ ์ด๋ฅผ ๋๊ธด๋ค. ์ดํ์ ์ปค๋์ ์์คํ ์ ์ด๊ธฐํํ๊ณ ์ฌ์ฉ์ ๊ณต๊ฐ(user space)์ ์ค๋นํ๋ค. ๊ฐ ์์คํ ์์ ์ฌ์ฉ ๋๋ ๋ถํธ๋ก๋๋ ์ฌ๋ฌ์ข ๋ฅ๊ฐ ์๋ค.
- GRUB (GNU GRUB):
- ๋ฆฌ๋ ์ค/์ ๋์ค ์์คํ ์์ ์ฌ์ฉ๋๋ ๋ถํธ๋ก๋
- LILO(Linux Loader)
- ๊ณผ๊ฑฐ ๋ฆฌ๋ ์ค ์์คํ ์์ ์ฌ์ฉ๋๋ ๋ถํธ๋ก๋
- Windows Boot Manager
- ์๋์ฐ ์์คํ ์์ ์ฌ์ฉํ๋ ๋ถํธ๋ก๋
- Android Bootloader
- ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์์ ์ฌ์ฉ๋๋ ๋ถํธ๋ก๋๋ก, ๋ฆฌ์ปค๋ฒ๋ฆฌ๋ชจ๋์ ์ด์์ฒด์ ๋ฅผ ์คํํ๋ค.
์ด์์ฒด์ ์ ์ญํ
์ด์์ฒด์ ๋ ์ฌ์ฉ์ ๋๋ ์์คํ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์คํ๋๊ธฐ ์ํด ์ปค๋์์ ๋ค์ํ ๊ด๋ฆฌ๋ฅผ ์๋์ ๊ฐ์ด ์ ๊ณตํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ
- ์ฅ์น ๋๋ผ์ด๋ฒ
- ํ์ผ ์์คํ
- ๋คํธ์ํฌ ๊ด๋ฆฌ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
ํ๋ก์ธ์ค ๊ด๋ฆฌ
์ด์์ฒด์ ๋ ์์์ ๊ด๋ฆฌํ์ง๋ง, ์๋ง ๊ทธ์ค์์๋ ๊ฐ์ฅ ์ค์ํ๊ฑด ํ๋ก์ธ์ค์ ๋ํ ๊ด๋ฆฌ์ด๋ค. ๋ํ์ ์ผ๋ก ์๋์ ๊ฐ๋ค.
- ์ฌ์ฉ์ ํ๋ก์ธ์ค์ ์์คํ ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ์ ๊ฑฐ
CPU์ ํ๋ก์ธ์ค์ ์ค๋ ๋ ์ค์ผ์ค๋ง- ํ๋ก์ธ์ค์ ์ผ์์ค์ง(suspend) ์ ์ฌ์ํ(resume)
- ํ๋ก์ธ์ค ๋๊ธฐํ ๊ธฐ๋ฒ ์ ๊ณต
- ํ๋ก์ธ์ค ๊ฐ ํต์ (IPC) ์ ๊ณต
์์ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ํ๋ก์ธ์ค์ ์ํ(process stats)๋ ์์ฑ, ์ค๋น, ์คํ, ๋๊ธฐ, ์ข
๋ฃ๋ก ๋๋๋ค.
์ด๋ฌํ ์ํ๋ ์๋์ฒ๋ผ ๋ํ๋ผ ์ ์๋ค.
New
โ
Ready โโ Running โ Terminated
โ โ
Waiting โ--โฏ
