1. ์๋ก
์ด์์ฒด์ ์ ์ญํ
- ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ
- ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ ๊ธฐ๋ฐ ์ ๊ณต
- ์ปดํจํฐ ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด ์ฌ์ด์์ ์ค์ฌ์ ์ญํ ์ํ
์์ ๊ฐ์ ์ผ์ ์ํํ๊ธฐ ์ํด์ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
- ๋ํ ์ปดํจํฐ์ ์ด์์ฒด์ ๋ ์ฃผ๋ก ํ๋์จ์ด์ ์ด์ฉ์ ์ต์ ํํ๋๋ฐ ์ฃผ๋ฅผ ๋
- ํผ์ค๋ ์ปดํจํฐ ์ด์์ฒด์ ๋ ๋ณต์กํ ๊ฒ์, ๋น์ฆ๋์ค ์์ฉ์ ์ง์ํจ
- ํด๋์ฉ ์ปดํจํฐ ์ด์์ฒด์ ๋ ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ํํ๊ธฐ ์ํด ์ปดํจํฐ์ ์ฝ๊ฒ ์ธํฐํ์ด์ค ํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต
๋ฐ๋ผ์ ์ด๋ค ์ด์์ฒด์ ๋ ์ผ๋ฐ์ธ์ด ์ฌ์ฉํ๊ธฐ์ ํธํ๋๋ก ์ค๊ณ๋์๊ณ ์ผ๋ถ๋ ํจ์จ์ฑ์, ์ผ๋ถ๋ ์ด๋ค์ ์กฐํฉ์ผ๋ก ์ค๊ณ๋์๋ค.
1.1 ์ด์์ฒด์ ๊ฐ ํ ์ผ
์ปดํจํฐ ์์คํ ์ ๋ค ๊ฐ์ง ๊ตฌ์ฑ ์์
- ํ๋์จ์ด: ์ค์ ์ฒ๋ฆฌ ์ฅ์น(CPU), ๋ฉ๋ชจ๋ฆฌ, I/O ์ฅ์น๋ก ๊ตฌ์ฑ๋์ด ๊ธฐ๋ณธ ๊ณ์ฐ์ฉ ์์ ์ ๊ณต
- ์์ฉ ํ๋ก๊ทธ๋จ: ์๋ ํ๋ก์ธ์, ์คํ๋ ๋์ํธ, ์ปดํ์ผ๋ฌ, ์น ๋ธ๋ผ์ฐ์ ๋ฑ ์ฌ์ฉ์์ ๊ณ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ์์์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋ ์ง ์ ์
- ์ด์์ฒด์ : ๋ค์ํ ์ฌ์ฉ์๋ฅผ ์ํด ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ํ๋์จ์ด ์ฌ์ฉ์ ์ ์ดํ๊ณ ์กฐ์
- ์ฌ์ฉ์
์ด์์ฒด์ ๋ ์ ๋ถ์ ์ ์ฌํ๋ค. ์ด์์ฒด์ ๋ ์ ๋ถ์ฒ๋ผ ๊ทธ ์์ฒด๋ก๋ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ํํ์ง ๋ชปํ์ง๋ง, ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด ์ ์ฉํ ์์ ์ ํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ์ด์์ฒด์ ์ ์ญํ ์ ์ฌ์ฉ์์ ์์คํ ๋ ๊ด์ ์ผ๋ก ์ดํด๋ณผ ์ ์๋ค.
1.1.1 ์ฌ์ฉ์ ๊ด์ (User View)
์ปดํจํฐ์ ๋ํ ์ฌ์ฉ์์ ๊ด์ ์ ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
- ๋ชจ๋ํฐ, ํค๋ณด๋, ๋ง์ฐ์ค๋ก ๊ตฌ์ฑ๋ PC ์์์ ์์
ํ๋ ๊ฒฝ์ฐ
- OS๋ ๋๋ถ๋ถ ์ฌ์ฉ์ ์ฉ์ด์ฑ์ ์ํด ์ค๊ณ๋๊ณ , HW์ SW ์์์ด ์ด๋ป๊ฒ ๊ณต์ ๋๋๋(Resource utilization)๋ ์ ๊ฒฝ์ฐ์ง ์์
- ๋ํ ์ปดํจํฐ๋ ๋ฏธ๋ ์ปดํจํฐ์ ์ฐ๊ฒฐ๋ ํฐ๋ฏธ๋์ ์์์๋ ๊ฒฝ์ฐ
- ์ฌ์ฉ์๋ค์ด ์์์ ๊ณต์ ํ๊ณ ์ ๋ณด๋ฅผ ๊ตํํ๋ฏ๋ก OS๋ ์์ ์ด์ฉ์ ๊ทน๋ํํ๋๋ก ์ค๊ณ๋จ
- ์ํฌ์คํ
์ด์
๊ณผ ์๋ฒ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ํฌ์คํ
์ด์
์ ์์์๋ ๊ฒฝ์ฐ
- OS๋ ๊ฐ์ธ์ ์ฌ์ฉ ์ฉ์ด์ฑ๊ณผ ์์ ์ด์ฉ ๊ฐ์ ์ ์ ํ ์กฐํ๋ฅผ ์ด๋ฃจ๋๋ก ์ค๊ณ
1.1.2 ์์คํ ๊ด์ (System View)
- ์ด์์ฒด์ ๋ ์์ ํ ๋น์(Resource allocator)
- ์ปดํจํฐ์ ๊ด์ ์์ OS๋ ํ๋์จ์ด์ ๊ฐ์ฅ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋ ํ๋ก๊ทธ๋จ
- CPU ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ, ํ์ผ ์ ์ฅ ๊ณต๊ฐ, IO์ฅ์น ๋ฑ์ ์์ ๊ด๋ฆฌ์๋ก ๋์ํ๊ณ , ์์ ์ ์ํด ํน์ ํ๋ก๊ทธ๋จ๊ณผ ์ฌ์ฉ์์๊ฒ ํ์ํ ์์์ ํ ๋น
- ์ด์์ฒด์ ๋ ์ ์ด ํ๋ก๊ทธ๋จ(Control program)
- ์๋ฌ๋ฅผ ๋ง๊ธฐ ์ํด ํ๋ก๊ทธ๋จ ์ํ ์ ์ด, ์ ์ถ๋ ฅ ์ฅ์น์ ์ ์ด, ์๋์ ๊ด์ฌ
1.1.3 ์ด์์ฒด์ ์ ์ ์
์ด์์ฒด์ ์ ๋ํ ์๋ฒฝํ ์ ์๋ ์๋ค. ์ด์์ฒด์ ๋ ์ ์ฉํ ์ปดํจํฐ ์์คํ ์ ๋ง๋๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ ์ ํ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์กด์ฌํ๋ค.
- ์ปดํจํฐ ์์คํ ์ ๊ทผ๋ณธ ๋ชฉ์ ์ธ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ , ๋ฌธ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ปดํจํฐ ํ๋์จ์ด๊ฐ ์ ์๋จ
- ์์ ํ๋์จ์ด๋ง์ผ๋ก๋ ์ฌ์ฉ์ด ์ด๋ ค์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ฐ๋จ
- ๋ค์ํ ํ๋ก๊ทธ๋จ์ IO์ฅ์น์ ํต์ ์ ๊ฐ์ ๊ณตํต ์ฐ์ฐ์ด ํ์ํ๋ฐ ์์์ ์ ์ดํ๊ณ ํ ๋นํ๋ ๊ณตํต ๊ธฐ๋ฅ์ ํ๋์ ์ํํธ์จ์ด๋ก ํตํฉํ๊ธฐ ์ํด ์ด์์ฒด์ ๊ฐ ์ ์๋จ
๋ณด๋ค ์ผ๋ฐ์ ์ธ ์ ์๋ก ์ด์์ฒด์ ๋ ์ปดํจํฐ์์ ํญ์ ์ํ๋๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์ปค๋์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
1.2 ์ปดํจํฐ ์์คํ ์ ๊ตฌ์ฑ(Computer System Organization)
1.2.1 ์ปดํจํฐ ์์คํ ์ฐ์ฐ(Computer-System Operation)
Computer Startup
- ์ปดํจํฐ๊ฐ ๊ตฌ๋์ ์์ํ๊ธฐ ์ํด์ ๋ถํธ์คํธ๋ฉ ํ๋ก๊ทธ๋จ(Bootstrap Program) ์ด๋ผ๋ ์ด๊ธฐ ํ๋ก๊ทธ๋จ์ด ์ ์ฌ๋จ
- ์ด๊ฒ์ ํ์จ์ด๋ผ๊ณ ์๋ ค์ ธ ์๋ ์ปดํจํฐ ๋ด์ ROM(Read-Only Memory)๋ EEPROM์ ์ ์ฅ๋์ด ์์
- CPU ๋ ์ง์คํฐ๋ก๋ถํฐ ์ฅ์น ์ ์ด๊ธฐ, ๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ ๋ฑ์ ํฌํจํ ์์คํ ์ ๋ชจ๋ ๋ฉด์ ์ด๊ธฐํํจ
- ๋ถํธ ์คํธ๋ฉ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ์ ์ปค๋์ ์ฐพ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ ์ํ์ ์์ํจ -> ์ฌ์ฉ์์๊ฒ ์๋น์ค ์ ๊ณต
Computer System Organization
- ํ๋์ ์ปดํจํฐ ์์คํ ์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(shared memory)์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํ๋ ๊ณตํต ๋ฒ์ค์ ์ํด ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ๊ฐ์ ์ฅ์น ์ ์ด๊ธฐ(device controller)์ ํ๋ ์ด์์ CPU๋ก ๊ตฌ์ฑ๋์ด ์์
- ๊ฐ ์ฅ์น ์ ์ด๊ธฐ๋ ๋์คํฌ ๋๋ผ์ด๋ธ, ์ค๋์ค ์ฅ์น, ๋น๋์ค ๋์คํ๋ ์ด ๋ฑ์ ํน์ ์ฅ์น๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ผ๋ฉฐ Input๊ณผ Output์ ์๋๊ฐ ๋ฌ๋ผ local buffer๋ฅผ ๊ฐ์ง
- CPU๋ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์์ ์ฅ์น ์ ์ด๊ธฐ์ lcoal buffer๋ก ๋ฐ์ดํฐ๋ฅผ ์ด๋ํจ
- CPU์ ์ฅ์น ์ ์ด๊ธฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ดํด์ ์ป๊ธฐ ์ํด ๊ฒฝ์ํ๋ฉฐ ๋ณ๋ ฌ ์ํ๋ ์ ์์
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ง์ ์๋ ์ ๊ทผ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์ ์ด๊ธฐ๊ฐ ์ ๊ณต๋๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ๋๊ธฐํ ํจ
Interrupts
Event๊ฐ ๋ฐ์ํ๋ฉด ํ๋์จ์ด๋ ๋๋ ์ํํธ์จ์ด๋ก๋ถํฐ ๋ฐ์ํ ์ธํฐ๋ฝํธ์ ์ํด ์ ํธ๊ฐ ๋ณด๋ด์ง๋ค. ์ปดํจํฐ๋ ์ฌ๋ฌ ์์ ์ ๋์์ ์คํํ๋๋ฐ ๋น์ฅ ์ฒ๋ฆฌํด์ผ ํ๋ ์ผ์ด ์๊ฒจ ๊ธฐ์กด์ ์์ ์ ์ ์ ์ค๋จํด์ผํ๋ ๊ฒฝ์ฐ ์ธํฐ๋ฝํธ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค. ์ด ๋ ์ปค๋์ ์์ ์ ๋ฉ์ถ๊ณ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ๋ค ๊ธฐ์กด ์์ ์ผ๋ก ๋์์จ๋ค.
- ํ๋์จ์ด๋ ์ด๋ ์๊ฐ์ด๋ ์์คํ ๋ฒ์ค๋ฅผ ํตํด CPU์ ์ ํธ๋ฅผ ๋ณด๋ด ์ธํฐ๋กญํธ๋ฅผ ๋ฐ์์ํฌ ์ ์์
- ์ํํธ์จ์ด๋ System call์ ์คํํ์ฌ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํฌ ์ ์๊ณ ์ด๋ฅผ ํธ๋ฉ(Trap) ๋๋ ์์ธ(Exception)๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ์ค๋ฅ๋ ์ฌ์ฉ์ ์์ฒญ์ผ๋ก ์ธํด ๋ฐ์ํจ
Common Functions of Interrupts
- CPU๊ฐ ์ธํฐ๋ฝํธ๋๋ฉด CPU๋ ํ๋ ์ผ์ ์ค๋จํ๊ณ , ๊ณ ์ ๋ ์์น๋ก ์คํ์ ์ฎ๊น
- ์ด ์์น๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ(Interrupt Vector)์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ, ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์๋น์ค ๋ฃจํด(Service routine)๋ค์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ณต๊ฐ
- ์ธํฐ๋กญํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ์๋น์ค ๋ฃจํด์ ์ฃผ์๋ฅผ ํฌํจํ๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ํตํด ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ผ๋ก ์ ์ด ๊ถํ์ ์ ์กํจ
Interrupt Handling
- ํ์ฌ ์ด์์ฒด์ ๋ค์ ์ธํฐ๋ฝํธ ์ฃผ๋์ (Interrupt driven)์
- ์ธํฐ๋ฝํธ๋ ์ ์ ํ ์๋น์ค ๋ฃจํด์ผ๋ก ์ ์ด๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ธํฐ๋ฝํธ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๋ ์ผ๋ฐ์ ์ธ ๋ฃจํด์ ํธ์ถํ๊ณ ์ด ๋ฃจํด์ ์ธํฐ๋ฝํธ ๊ณ ์ ์ ํธ๋ค๋ฌ(handler)๋ฅผ ํธ์ถํจ
1.2.2 ์ ์ฅ ์ฅ์น ๊ตฌ์กฐ
CPU๋ ๋ช ๋ น์ด๋ฅผ ๋จ์ง ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ํํ๊ธฐ ์ํด์ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์์ด์ผ ํ๋ฉฐ ์ปค๋์ด ์ด๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํด ์คํํ๋ค. ์ด์ฒ๋ผ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM)์ ๋ก๋๋์ด ์คํ๋๋ค. ์ปดํจํฐ๋ ROM, EEPROM ๋ฑ ๋ค๋ฅธ ํํ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ฉํ๋๋ฐ ROM์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ๋ถํธ์คํธ๋ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ ์ ํ๋ก๊ทธ๋จ์ ์ ์ฅํ๋ค. EEPROM์ ๋ณ๊ฒฝํ ์ ์์ผ๋ ์์ฃผ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ๋๋ถ๋ถ ์ ์ ํ๋ก๊ทธ๋จ์ ์ ์ฅํ๋ค. ์ค๋งํธํฐ์ ๊ณต์ฅ์์ ์ค์นํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ธฐ ์ํด EEPROM์ ์ฌ์ฉํ๋ค.
- Load: ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM)์ผ๋ก๋ถํฐ CPU ๋ด๋ถ์ ๋ ์ง์คํฐ๋ก ํ ๋ฐ์ดํธ ๋๋ ํ ์๋๋ฅผ ์ฎ๊น
- Store: ๋ ์ง์คํฐ์ ๋ด์ฉ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊น
Main Memory
- ๋ณดํต RAM(Random-Access Memory)๋ผ๊ณ ๋ถ๋ฆ
- DRAM(Dynamic RAM)์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐ๋์ฒด ๊ธฐ์ ๋ก ๊ตฌํ๋จ
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ๋ชจ๋ ํ์ํ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌํ ์ ์ฅํ๊ธฐ์๋ ๋๋ฌด ์์
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์์ด ๊ณต๊ธ๋์ง ์์ผ๋ฉด ๋ด์ฉ์ ์์ด๋ฒ๋ฆฌ๋ ํ๋ฐ์ฑ ์ ์ฅ์ฅ์น
Secondary Storage
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์์ ๊ฐ์ ํน์ฑ๋๋ฌธ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฅ์ผ๋ก ๋ณด์กฐ ์ ์ฅ ์ฅ์น ์ ๊ณต
- ๋นํ๋ฐ์ฑ ๊ธฐ์ต์ฅ์น(Non-volatile): ์๊ธฐ ๋์คํฌ(Magnetic disk), ๊ดํ ๋์คํฌ(Optical disk), ์๊ธฐ ํ ์ดํ(Magnetic tapes), SSD(Solid-State Disk) ๋ฑ
- ํ๋ฐ์ฑ ๊ธฐ์ต์ฅ์น(Volatile): ์บ์(Cache), ๋ ์ง์คํฐ(Register) ๋ฑ
Caching
- ํ๋์จ์ด, ์ด์์ฒด์ , ์ํํธ์จ์ด ๋ฑ ์ปดํจํฐ์ ์ฌ๋ฌ ๋ ๋ฒจ์์ ์ํ๋๋ ์ค์ํ ์์น
- ์ฌ์ฉ ์ค์ธ ์ ๋ณด๋ฅผ ๋๋ฆฐ ์ ์ฅ์์์ ๋น ๋ฅธ ์ ์ฅ์๋ก ์ผ์์ ์ผ๋ก ๋ณต์ฌํจ
- ์ ๋ณด๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋น ๋ฅธ ์ ์ฅ์(์บ์)๋ฅผ ๋จผ์ ํ์ธํจ
- ์บ์์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ฌ ์บ์์์ ์ฌ์ฉํจ
1.2.3 ์ ์ถ๋ ฅ ๊ตฌ์กฐ
์ ์ฅ ์ฅ์น๋ ์ปดํจํฐ ๋ด์ ์ฌ๋ฌ ํํ์ ์ ์ถ๋ ฅ ์ฅ์น ์ค ํ๋์ด๋ค. ์ฅ์น ์ ์ด๊ธฐ(device controller)๋ ์์ ์ด ์ ์ดํ๋ ์ฃผ๋ณ ์ฅ์น์ ์์ ์ ๋ก์ปฌ ๋ฒํผ ์ ์ฅ ์ฅ์น ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ ๋ด๋นํ๋ค. ํต์์ ์ผ๋ก ์ด์์ฒด์ ๋ ๊ฐ ์ฅ์น ์ ์ด๊ธฐ๋ง๋ค ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
IO ์ฐ์ฐ์ ์ํด ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ ์ฅ์น ์ ์ด๊ธฐ์ ์ ์ ํ ๋ ์ง์คํฐ์ ํ์ํ ๊ฐ์ ์ ์ฌํ๋ค. ์ฅ์น ์ ์ด๊ธฐ๋ โํค๋ณด๋์์ ํ ๋ฌธ์๋ฅผ ์ฝ์ด์ค๋ผโ ๋ฑ์ ์ทจํ ๋์์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ ์ง์คํฐ์ ๋ด์ฉ์ ์กฐ์ฌํ๋ค. ์ ์ด๊ธฐ๋ ์ฅ์น๋ก๋ถํฐ ์์ ์ ๋ก์ปฌ ๋ฒํผ๋ก ๋ฐ์ดํฐ ์ ์ก์ ์์ํ๊ณ ๋ฐ์ดํฐ์ ์ ์ก์ด ์๋ฃ๋๋ฉด ์๋ฃํ์์ ์ธํฐ๋กญํธ๋ฅผ ์ด์ฉํด ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ์๊ฒ ํต๋ณดํ๋ค. ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ ์ ์ด๋ฅผ ์ด์์ฒด์ ์๊ฒ ๋ฐํํ๋ค. => CPU๋ฅผ ๊ฑฐ์ณ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๋ ๋ฐฉ์
DMA(Direct Access Mememory)
์์ ์ธํฐ๋กญํธ ๊ตฌ๋ ๋ฐฉ์์ ์ ์ถ๋ ฅ์ ์ ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ์๋ ๋ฌธ์ ๊ฐ ์์ผ๋ ๋์คํฌ ์ ์ถ๋ ฅ๊ณผ ๊ฐ์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ์๋ ๋์ ์ค๋ฒํด๋๋ฅผ ์ด๋ํ๋ค.
- CPU์ ๊ฐ์ ์์ด ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์ฅ์น ์ ์ด๊ธฐ ์์ ์ ๋ฒํผ ์ฅ์น๋ก ๋๋ ๋ฒํผ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ ๋ธ๋ก ์ ์ฒด๋ฅผ ์ ์กํจ
- ํ ๋ฐ์ดํธ๋ง๋ค ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด ์๋ ๋ธ๋ก ์ ์ก์ด ์๋ฃ๋ ๋๋ง๋ค ๋ฐ์ดํฐ ์ด๋์ด ์๋ฃ๋์๋ค๋ ํ๋ฒ์ ์ธํฐ๋กญํธ๋ง ๋ฐ์
- ์ฅ์น ์ ์ด๊ธฐ๊ฐ ์ ์ก ์์ ์ ์ํํ๊ณ ์๋ ๋์ CPU๋ ๋ค๋ฅธ ์์ ์ ์ํ
1.3 ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ (Computer-System Architecture)
1.3.2 Multiprocessor System
๋ฉํฐ ํ๋ก์ธ์๋ 2๊ฐ ์ด์์ ํ๋ก์ธ์๋ฅผ ๊ฐ์ง๋ฉฐ ์ปดํจํฐ ๋ฒ์ค, ๋๋ก๋ ํด๋ฝ, ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ๋ณ ์ฅ์น๋ฅผ ๊ณต์ ํ๋ค.
- Multiprocessor: CPU๊ฐ ์ฌ๋ฌ ๊ฐ
- Multi Core: ํ๋์ CPU์ ์ฌ๋ฌ ๊ฐ์ ์ฝ์ด
๋ฉํฐํ๋ก์ธ์ ์์คํ ์ ์ฅ์
- ์ฆ๊ฐ๋ ์ฒ๋ฆฌ๋(throughput): ์งง์ ์๊ฐ๋์ ๋ง์ ์ผ ์ํ
- ๊ท๋ชจ์ ๊ฒฝ์ : ์ฃผ๋ณ ์ฅ์น๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋์ ์ฑ๊ธ ํ๋ก์ธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋น์ฉ์ ์ค์ผ ์ ์์
- ์ฆ๊ฐ๋ ์ ๋ขฐ์ฑ: ํ๋์ ํ๋ก์ธ์๊ฐ ๊ณ ์ฅ๋๋ ๋ค๋ฅธ ํ๋ก์ธ์๊ฐ ์๋ ์ค์. ์ด๋ ๊ฒ ์ฑ๋ฅ์ ๋๋น ์ง์ง๋ง ์๋์ ๊ฐ๋ฅํ ๊ฒ์ ์ฐ์ํ ํด๋ณด (graceful degradation) ๋ผ๊ณ ํจ. ๋ํ ํ ๊ตฌ์ฑ์์์ ๊ณ ์ฅ์๋ ๋ถ๊ตฌํ๊ณ ์๋์ ๊ณ์ํ ์ ์๋ ๊ฒ์ ์ฐ์ํ ํด๋ณด๋ฅผ ๋์ด ๊ฒฐํจ ํ์ฉ(fault tolerant)๋ผ๊ณ ํจ.
๋ฉํฐ ํ๋ก์ธ์ ์์คํ ์ ํํ
- ๋น๋์นญ์ ๋ค์ค ์ฒ๋ฆฌ(asymmetric multiprocessing): ํ๋์ ์ฃผ ํ๋ก์ธ์๊ฐ ์์คํ ์ ์ ์ดํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์๋ค์ ์ฃผ ํ๋ก์ธ์์ ๋ช ๋ น์ ์ํํ๊ฑฐ๋ ๋ฏธ๋ฆฌ ์ ์๋ ํ ์คํฌ๋ฅผ ์ํํจ. ๋ถํ ๋ถ์ฐ(load balancing)์ ํจ์จ์ ์ด์ง๋ง ์ฃผ ํ๋ก์ธ์๊ฐ ์๋์ ๋ฉ์ถ๋ฉด ๋ถํ ํ๋ก์ธ์๋ค ๋ํ ์๋์ ๋ฉ์ถค.
- ๋์นญ์ ๋ค์ค ์ฒ๋ฆฌ(symmetric multiprocessing): ํ๋ก์ธ์ ๊ฐ์ ์ฃผ์ข ๊ด๊ณ๊ฐ ์์ผ๋ฉฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํจ. ๋๋ถ๋ถ์ ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ.
์์ ์ฌ์ง์์ ๋ณผ ์ ์๋ฏ์ด ๊ฐ ํ๋ก์ธ์๋ ์์ ์ ๋ ์ง์คํฐ ์งํฉ๊ณผ ์บ์๋ฅผ ๊ฐ๋๋ค.
Dual-core
๋จ์ผ ์ฝ์ด๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ๊ฐ์ ์นฉ๋ณด๋ค ํจ์จ์ ์ด๋ฉฐ, ์ด๋ ์นฉ ๋ด์ ํต์ ์ด ์นฉ ์ฌ์ด์ ํต์ ๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ ์ฌ๋ฌ ๊ฐ์ ๋จ์ผ ์นฉ๋ณด๋ค ์ ๋ ฅ์ ํจ์ฌ ๋ ์๋ชจํ๋ค. ๋ฉํฐ ์ฝ์ด ์์คํ ์ ๋ฉํฐ ํ๋ก์ธ์ ์์คํ ์ธ ๋ฐ๋ฉด ๋ชจ๋ ๋ฉํฐ ํ๋ก์ธ์ ์์คํ ์ด ๋ฉํฐ ์ฝ์ด์ธ ๊ฒ์ ์๋๋ค.
๊ฐ ์ฝ์ด๋ ์์ ์ ๋ ์ง์คํฐ ์งํฉ๊ณผ ์์ ์ ๋ก์ปฌ ์บ์๋ฅผ ๊ฐ์ผ๋ฉฐ ํ๋์ ์บ์๋ฅผ ๊ณต์ ํ๊ธฐ๋ ํ๋ค.
1.3.3 ํด๋ฌ์คํฐํ ์์คํ (Clustered Systems)
์ฌ๋ฌ ๊ฐ์ CPU๋ฅผ ๋ชจ์ ๋์ ๊ตฌ์กฐ๋ก, ๋ ์ด์์ ๋ ธ๋(์ฑ๊ธ ํ๋ก์ธ์ or ๋ฉํฐ ํ๋ก์ธ์)๊ฐ ํ๋์ ์ผ์ ์ฒ๋ฆฌํ๋ค. ๋ฉํฐ ํ๋ก์ธ์ ์์คํ ์ ์ฌ๋ฌ CPU๊ฐ ํ๋์ ์์คํ ์ ์ด๋ฃจ๋ ๊ฒ์ด์ง๋ง ํด๋ฌ์คํฐ ์์คํ ์ ์ฌ๋ฌ ๋ ๋ฆฝ์ ์ธ ์์คํ ์ด ๋ชจ์ฌ ํ๋์ ์์คํ ์ ์ด๋ฃจ๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ์์คํ ์ ์ฝ๊ฒฐํฉ(loosely coupled)๋ผ๊ณ ๊ฐ์ฃผ๋๋ค. ํด๋ฌ์คํฐ๋ง์ ํต์ ๋์ ๊ฐ์ฉ์ฑ(availability)๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ฆ ํด๋ฌ์คํธ ๋ด ํ๋ ์ด์์ ์ปดํจํฐ ์์คํ ์ด ๊ณ ์ฅ๋๋ ์๋น์ค๋ ๊ณ์ ์ ๊ณต๋๋ค.
- ๋์นญํ: ๋ ์ด์์ ํธ์คํธ๋ค์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์๋ก๋ฅผ ๊ฐ์ํจ. ๊ฐ์ฉํ ํ๋์จ์ด๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋์นญํ ๊ตฌ์ฑ์ด ๋์ฑ ํจ์จ์ ์.
- ๋น๋์นญํ: ๋ค๋ฅธ ์ปดํจํฐ๋ค์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๋์ ํ ์ปดํจํฐ๋ ๊ธด๊ธ๋๊ธฐ(hot-standby)๋ชจ๋ ์ํ๋ฅผ ์ ์งํจ. ์๋ฒ๊ฐ ๊ณ ์ฅ๋๋ฉด ๊ธด๊ธ ๋๊ธฐ ๋ชจ๋์ ํธ์คํธ๊ฐ ํ์ฑ ์๋ฒ๊ฐ ๋จ.
ํด๋ฌ์คํฐ ์์คํ ์ ํด๋ฌ์คํฐ ๋ด์ ๋ชจ๋ ์ปดํจํฐ์์ ์์ฉ์ ๋ณ๋ ฌ ์ํํ ์ ์์ด ๋จ์ผ ํ๋ก์ธ์๋ SMP ์์คํ ๋ณด๋ค ํจ์ฌ ํฐ ๊ณ์ฐ ๋ฅ๋ ฅ์ ์ ๊ณตํ ํ ์ ์๋ค.