๐ ์ด์์ฒด์
์๋ฒ์ฉ, PC์ฉ, ์ค๋งํธ๋๋ฐ์ด์ค์ฉ ์ด์์ฒด์ ์ข ๋ฅ
๋ฆฌ๋ ์ค: ์คํ์์ค
- ์ ๊ณต๊ฐ ํ์๊น?
- ์ํํธ์จ์ด๋ ๊ฐ๋ฐ์ ์ธ๊ฑด๋น, ์ดํ ํ๋งค์๋ ์ถ๊ฐ์ ์ธ ์ฌ๋ฃ๋ ๋ง์ด ๋ค์ง ์์
- ํน์ ์ ํ์ด ์์ฅ์ ์ฅ์ ํด๋ฒ๋ฆฌ๋ฉด ๋ค๋ฅธ ์ํํธ์จ์ด๋ ์ฃฝ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์
- ์คํ์์ค๋ฅผ ๊ณต๊ฐํ์๋ ์๋ฏธ์
- ๋ฌด๋ฃ๋ก ๊ณต๊ฐํ ์ข์ ์์ค์ฝ๋๋ ์์ฅ์์ ์ด์๋จ์ ์ ์์
window, macOS, IOS, Android: ๋น๊ณต๊ฐ
๐ ์ด์์ฒด์ ๋?
์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ๋ฐ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๊ณ์ธต์ด๋ค.
์ปดํจํฐ ํ๋์จ์ด โ ์ด์์ฒด์ โ ๊ฐ์ข ์ํํธ์จ์ด + ์ฌ์ฉ์ โ ์ฌ์ฉ์
ํ์์ ์ด์์ฒด์ (์ปค๋)
- ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ
๊ด์์ ์ด์์ฒด์
- ์ปค๋ ๋ฟ ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ ๊ฐ๋
๐ ์ด์์ฒด์ ์ ๋ชฉ์
์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต
- ์ด์์ฒด์ ๋ ๋์ ์ฌ์ฉ์/ํ๋ก๋จ๋ค์ด ๊ฐ๊ฐ ๋ ์๊ฑฐ ์ปดํจํฐ์์ ์ํ๋๋ ๊ฒ ๊ฐ์ ํ์์ ์ ๊ณต
- ํ๋์จ์ด๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ณต์กํ ๋ถ๋ถ์ ์ด์์ฒด์ ๊ฐ ๋ํ
IDEA โ Program โ Abstract Machine โ Physical Machine โ Result
์ด์์ฒด์ ๋ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
- ํ๋ก๋ ์, ๊ธฐ์ต์ฅ์น, ์
์ถ๋ ฅ ์ฅ์น ๋ฑ์ ํจ์จ์ ๊ด๋ฆฌ
- ์ฌ์ฉ์๊ฐ์ ํํ์ฑ ์๋ ์์ ๋ถ๋ฐฐ
- ์ฃผ์ด์ง ์์์ผ๋ก ์ต๋ํ์ ์ฑ๋ฅ์ ๋ด๋๋ก
- ์ฌ์ฉ์ ๋ฐ ์ด์์ฒด์ ์์ ์ ๋ณดํธ
- ํ๋ก์ธ์ค, ํ์ผ, ๋ฉ์ธ์ง ๋ฑ์ ๊ด๋ฆฌ
IDEA โ Program โ Abstract Machine โ OS Resource Sharing โ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ๋ค์๊ฒ ์งง์ ์๊ฐ์ฉ CPU๋ฅผ ๋ฒ๊ฐ์ ํ ๋น or ์คํ์ค์ธ ํ๋ก๊ทธ๋จ๋ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ ํ ๋ถ๋ฐฐ
์๋ก ๋๊ตฌํํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จผ์ ์ค๊น? ์ผ๋ง๋ ์ค๊น? ์ด๋ฐ ๋ถ๋ถ์ ์์ด ์ด์์ฒด์ ๋ ์ธ๊ฐ์ ๋์ ๋น์ทํ ๋๋์ ์ฃผ๊ธฐ๋ ํ๋ค. (ํ์ํ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฃผ๊ฒ ๋จ)
๐ ์ด์์ฒด์ ์ ๋ถ๋ฅ
-
๋์ ์์ ๊ฐ๋ฅ ์ฌ๋ถ
-
๋จ์ผ ์์ (Single Tasking)
ํ ๋ฒ์ ํ๋์ ์์ ๋ง ์ฒ๋ฆฌ
ex) MS-DOS ํ๋กฌํํธ ์์์๋ ํ ๋ช ๋ น์ ์ํ์ ๋๋ด๊ธฐ ์ ์ ๋ค๋ฅธ ๋ช ๋ น์ ์ํ์ํฌ ์ ์์.
-
๋ค์ค ์์ (Multi tasking)
๋์์ ๋ ๊ฐ ์ด์์ ์์ ์ฒ๋ฆฌ
ex) UNIX, MS Windows ๋ฑ์์๋ ํ ๋ช ๋ น์ ์ํ์ด ๋๋๊ธฐ ์ ์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ ํ๋ก๊ทธ๋จ์ ์ํํ ์ ์์.
-
-
์ฌ์ฉ์์ ์
-
๋จ์ผ ์ฌ์ฉ์(Single user)
ex) MS-DOS, MS Windows
-
๋ค์ค ์ฌ์ฉ์(Multi user)
ex) UNIX, NT server
-
-
์ฒ๋ฆฌ ๋ฐฉ์
-
์ผ๊ด ์ฒ๋ฆฌ(batch processing)
-
์์ ์์ฒญ์ ์ผ์ ๋ ๋ชจ์์ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌ
-
์์ ์ด ์์ ์ข ๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํจ
ex) ์ด๊ธฐ Punch Card ์ฒ๋ฆฌ ์์คํ
-
-
์๋ถํ (Time Sharing)
-
์ฌ๋ฌ ์์ ์ ์ํํ ๋ ์ปดํจํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ์ผ์ ํ ์๊ฐ ๋จ์๋ก ๋ถํ ํ์ฌ ์ฌ์ฉ
-
์ผ๊ด ์ฒ๋ฆฌ ์์คํ ์ ๋นํด ์งง์ ์๋ต ์๊ฐ์ ๊ฐ์ง
ex) UNIX
-
Interactiveํ ๋ฐฉ์
-
-
์ค์๊ฐ(Realtime OS)
-
์ ํด์ง ์๊ฐ ์์ ์ด๋ ํ ์ผ์ด ๋ฐ๋์ ์ข ๋ฃ๋จ์ด ๋ณด์ฅ๋์ด์ผ ํ๋ ์ค์๊ฐ ์์คํ ์ ์ํ OS
Ex) ์์๋ก/๊ณต์ฅ ์ ์ด, ๋ฏธ์ฌ์ผ ์ ์ด, ๋ฐ๋์ฒด ์ฅ๋น, ๋ก๋ณดํธ ์ ์ด
-
์ค์๊ฐ ์์คํ ์ ๊ฐ๋ ํ์ฅ
- Hard Realtime System (๊ฒฝ์ฑ ์ค์๊ฐ ์์คํ )
- Soft Realtime System(์ฐ์ฑ ์ค์๊ฐ ์์คํ ) ๋์์ ๊ฐ์ ๊ฒ
-
-
-
๋ช๊ฐ์ง ์ฉ์ด
- MultiTaking
- MultiProgramming
- Time Sharing
- MultiProcess
- ๊ตฌ๋ถ
- ์์ ์ฉ์ด๋ค์ ์ปดํจํฐ์์ ์ฌ๋ฌ ์์ ์ ๋์์ ์ํํ๋ ๊ฒ์ ๋ปํจ.
- MultiProgramming์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์์์ ๊ฐ์กฐ
- Time Sharing์ CPI์ ์๊ฐ์ ๋ถํ ํ์ฌ ๋๋์ด ์ด๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์กฐ
- Multiprocessor
- ํ๋์ ์ปดํจํฐ์์ CP(processor)๊ฐ ์ฌ๋ฌ ๊ฐ ๋ถ์ด ์์์ ์๋ฏธ
๐ฅ ์ด์์ฒด์ ์ ์
- ์ ๋์ค(UNIX)
- ์ฝ๋์ ๋๋ถ๋ถ์ C์ธ์ด๋ก ์์ฑ
- ๋์ ์ด์์ฑ
- ์ต์ํ์ ์ปค๋ ๊ตฌ์กฐ
- ๋ณต์กํ ์์คํ ์ ๋ง๊ฒ ํ์ฅ ์ฉ์ด
- ์์ค ์ฝ๋ ๊ณต๊ฐ
- ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ฉ์ด
- ๋ค์ํ ๋ฒ์
- System V, FreeBSD, SunOS, Solaris
- Linux (๊ณ์ ์ ๊ทธ๋ ์ด๋ ๋จ)
- DOS(Disk Operating System)
- MS์ฌ์์ 1981๋ IBM-PC๋ฅผ ์ํด ๊ฐ๋ฐ
- ๋จ์ผ ์ฌ์ฉ์์ฉ ์ด์์ฒด์ , ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฅ๋ ฅ์ ํ๊ณ(์ฃผ ๊ธฐ์ต ์ฅ์น: 640KB)
- MS Windows
- MS์ฌ์ ๋ค์ค ์์ ์ฉ GUI ๊ธฐ๋ฐ ์ด์ ์ฒด์
- Plug and Play, ๋คํธ์ํฌ ํ๊ฒฝ ๊ฐํ
- DOS์ฉ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ํธํ์ฑ ์ ๊ณต
- ํ๋ถํ ์ง์ ์ํํธ์จ์ด
- Handheld device๋ฅผ ์ํ OS
- PalmOS, Pocket PC(winCE), Tiny OS
๐ ์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
CPU โ DMA โ timer โ Disk
โ โ. โ โ machine
โ memory โ โ machine
โ โฆ โฆ
Mode bit
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ฅ์น ํ์
Mode Bit์ ํตํด ํ๋์จ์ด์ ์ผ๋ก ๋ ๊ฐ์ง ๋ชจ๋์ operation ์ง์
1(mode bit) ์ฌ์ฉ์๋ชจ๋: ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์ํ
0(mode bit) ๋ชจ๋ํฐ ๋ชจ๋: OS ์ฝ๋ ์ํ
-
๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด๋ ๋ชจ๋ํฐ ๋ชจ๋์์๋ง ์ํ ๊ฐ๋ฅํ โํน๊ถ๋ช ๋ นโ์ผ๋ก ๊ท์
-
Interrupt๋ Exception ๋ฐ์์ ํ๋์จ์ด๊ฐ mode bit์ 0์ผ๋ก ๋ฐ๊ฟ
-
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์์ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์ mode bit์ 1๋ก ์ธํ
-
๋ชจ๋ํฐ ๋ชจ๋: ์ปค๋ ๋ชจ๋, ์์คํ ๋ชจ๋๋ก ๋๋ ์ง
โ interrupt/Exception (๋์ด๊ฐ๋ ๋ฐฉ๋ฒ๋ค์)
Monitor(kernel) mode โโ user mode
โ OS sets to user mode
์ด์์ฒด์ ๋ CPU๋ฅผ ๋๊ฒจ์ค ์ ๋ ์์ง๋ง ๋บ์ด์ฌ ์๋ ์์ -> ๊ทธ๊ฒ๋ฐ๋ก timer์ ๊ทธ๊ฒ ๋ฐ๋ก timer interrupt๋ฅผ ๋ฐ์์ํด ๊ทธ๋์ ํ์ด๋จธ์ ์ ํ ์๊ฐ์ ๊ฑธ์ด๋ .
์ฆ timer๋ CPU์ ๋ ์ ์ ๋ง๊ธฐ ์ํด์ ์ฌ์ฉํ๊ณ ์์.
๋ชจ๋ IO๋ ํน๊ถ๋ช ๋ น์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ CPU๊ฐ ์ด๋ป๊ฒ ํ ์๊ฐ ์์ผ๋ ์์คํ ์ฝ์ ์ฌ์ฉ
์์คํ ์ฝ: ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ ์ฒด์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ
ํ๋์ ์ด์์ฒด์ ๋ ์ธํฐ๋ฝํธ์ ์ํด ๊ตฌ๋๋จ
โก๏ธ ์ธํฐ๋ฝํธ
-
์ธํฐ๋ฝํธ ๋นํ ์์ ์ ๋ ์ง์คํฐ์ program counter๋ฅผ saveํ ํ CPU์ ์ ์ด๋ฅผ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด์ ๋๊ธด๋ค.
-
Interrup(๋์ ์๋ฏธ)
- Interrupt(ํ๋์จ์ด ์ธํฐ๋ฝํธ): ํ๋์จ์ด๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ
- Trap(์ํํธ์จ์ด ์ธํฐ๋ฝํธ)
- Exception: ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฅผ ๋ฒํ ๊ฒฝ์ฐ
- System call: ํ๋ก๊ทธ๋จ์ด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
-
์ธํฐ๋ฝํธ ๊ด๋ จ ์ฉ์ด
-
์ธํฐ๋ฝํธ ๋ฒกํฐ
โ ํด๋น ์ธํฐ๋ฝํธ์ ์ฒ๋ฆฌ ๋ฃจํด ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์
-
์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด(=interrupt Service Routine, ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ)
โ ํด๋น ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ปค๋ ํจ์
-
โก๏ธDevice Controller
- I/O device controller
- ํด๋น I/O ์ฅ์น์ ํ์ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU
- ์ ์ด ์ ๋ณด๋ฅผ ์ํด Control register, status register๋ฅผ ๊ฐ์ง
- local buffer๋ฅผ ๊ฐ์ง(์ผ์ข ์ data register)
- I/O๋ ์ค์ device์ local buffer ์ฌ์ด์์ ์ผ์ด๋จ
- Device controller๋ I/O๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ interrupt๋ก CPU์ ๊ทธ ์ฌ์ค์ ์๋ฆผ
Device driver(์ฅ์น๊ตฌ๋๊ธฐ) : OS ์ฝ๋ ์ค ๊ฐ ์ฅ์น๋ณ ์ฒ๋ฆฌ๋ฃจํด โ Software
- CPU๊ฐ device controller์๊ฒ ๋ถํํ๋ ์ธ์ด์(CPU๊ฐ ์ํํ๋ ์ฝ๋์)
- device์ ๋ด์ฅ๋ ์ฝ๋๋ ํ์จ์ด๋ผ๊ณ ํจ.
Device controller(์ฅ์น์ ์ด๊ธฐ): ๊ฐ ์ฅ์น๋ฅผ ํต์ ํ๋ ์ผ์ข ์ ์์ CPU โ Hardware
์ค์ I/O ์์ ์ device controller๊ฐ ์ง์ ํจ