์ปดํจํฐ ์์คํ ๊ตฌ์กฐ
1. Memory
CPU์ ์์ ๊ณต๊ฐ.
CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๋ด๋ถ ๊ธฐ์ต์ฅ์น๋ก, ํน์ ํ๋ก๊ทธ๋จ์ด CPU์์ ์คํ๋๊ธฐ ์ํด์๋ ํด๋น ๋ถ๋ถ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋ค.
์ปดํจํฐ ๋ถํ ์, OS๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ฒ ๋จ -> ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ CPU์ ์์ ๊ณต๊ฐ์ main memory๋ผ๊ณ ๋ถ๋ฅธ๋ค
2. I/O Device
1) Device Controller
- I/O ์ฅ์น๋ฅผ ๊ด๋ฆฌํ๋ ์ผ์ข ์ ์์ CPU๋ก, I/O๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ interrupt๋ก CPU์๊ฒ ํด๋น ์ฌ์ค์ ์๋ฆฌ๋ ์ญํ ์ ํ๋ค
- CPU์ I/O device์ ์ฒ๋ฆฌ ์๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ device๋ง๋ค controller๋ฅผ ๋์ด ๊ด๋ฆฌํ๋ค.
- ์ ์ด ์ ๋ณด๋ฅผ ์ํด control register, status register / local buffer(์ผ์ข ์ data register)๋ฅผ ๊ฐ์ง
- ์ค์ device ์ local buffer ์ฌ์ด์์ I/O๊ฐ ์ผ์ด๋จ
cf) device driver : OS ์ฝ๋ ์ค ๊ฐ ์ฅ์น๋ณ ์ฒ๋ฆฌ ๋ฃจํด(software)
device controller : ๊ฐ ์ฅ์น๋ฅผ ํต์ ํ๋ ์์ CPU(hardware)
2) Local Buffer
device controller๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ๊ธฐ ์ํ ์์ ๊ณต๊ฐ.
buffer์ ์์ธ ๋ด์ฉ์ CPU๊ฐ ์ฝ์ด์ ์์ ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌ
3. CPU
- ๋งค clock cycle๋ง๋ค register๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ์์ instruction์ ์ฝ์ด์ ์คํ
- interrupt๊ฐ ๋ค์ด์จ ๊ฒฝ์ฐ, CPU ์ ์ด๊ถ์ด OS์๊ฒ ๋์ด๊ฐ๋ค
- I/O ์์ฒญ์ด ๋ฐ์ํ ๊ฒฝ์ฐ CPU๊ฐ ์๋ OS -> device controller๊ฐ ์์ ์ ๊ด์ฅํ๋ค.
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ local buffer์ ์ ๊ทผํ ์ ์๋ค.
1) Register
memory๋ณด๋ค ๋ ๋น ๋ฅด๋ฉฐ ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์ ์ฅ ๊ณต๊ฐ
2) Interrupt line
์ธ๋ถ I/O ์์ฒญ์ด ๋ค์ด์๋์ง / ์์ ์ด ์ข ๋ฃ๋์๋์ง CPU์๊ฒ ์๋ ค์ค๋ค.
CPU๊ฐ instruction์ ์ํํ๋ ๋์ค, interrupt line์ ์ ํธ๊ฐ ๋ค์ด์ค๋ฉด ํด๋น interrupt์ ๊ด๋ จ๋ ์ผ์ ๋จผ์ ์ฒ๋ฆฌํ๋ค.
3) Mode bit
CPU์์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์ธ์ง ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ธ์ง ๊ตฌ๋ถํด์ค๋ค.
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ฅ์น ํ์.
Mode bit์ ํตํด ํ๋์จ์ด์ ์ผ๋ก ๋ ๊ฐ์ง ๋ชจ๋์ operation์ ์ง์ํ๋ค.
- [1] ์ฌ์ฉ์ ๋ชจ๋(=user mode)
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ ์ํ
- ๋ณด์ ์์ ๋ชฉ์ ์ผ๋ก ์ ํ๋ instruction๋ง ์ํ ๊ฐ๋ฅ
- [0] ๋ชจ๋ํฐ ๋ชจ๋ (=kernel mode, system mode)
- OS ์ฝ๋ ์ํํ๋ ๊ฒฝ์ฐ๋ก, ๋ชจ๋ ์ผ์ ์ํ ๊ฐ๋ฅํ๋ค
- interrupt๊ฐ ๋ฐ์ํด์ OS๊ฐ CPU๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ(OS์์๋ง I/O device ์ ๊ทผ ๊ฐ๋ฅ)
- ๋ณด์์ ํด์น ์ ์๋ ์ค์ํ ๋ช ๋ น์ด๋ ๋ชจ๋ํฐ(์ปค๋, ์์คํ ) ๋ชจ๋์์๋ง ์ํ ๊ฐ๋ฅํ 'ํน๊ถ๋ช ๋ น'์ผ๋ก ๊ท์ ํ๋ค.
- Interrupt๋ Exception ๋ฐ์ ์ ํ๋์จ์ด๊ฐ mode bit์ 0์ผ๋ก ๋ฐ๊พผ ํ ์คํํด์ผ ํ๋ค.
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ๋๊ธฐ๊ธฐ ์ ์๋ mode bit์ 1๋ก ์ธํ ํด์ผ ํ๋ค.
4. Timer
ํน์ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋ ์ ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํ ์ฅ์น. Time sharing์ ๊ตฌํํ๊ธฐ ์ํด ์ด์ฉ๋๋ค.
- ์ปดํจํฐ ์์ : OS๊ฐ CPU๋ฅผ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์๊ฒ ๋๊ฒจ์ค(Timer์ ๊ฐ ์ธํ )
- timer์ ๊ฐ์ด 0์ด ๋๋ฉด timer interrupt ๋ฐ์
- OS๋ก ๋ค์ CPU ์ ์ด๊ถ์ด ๋์ด์ด
5. DMA Controller (Direct Memory Access)
๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ฅ์น
I/O ์ฅ์น์ ์ฆ์ interrupt๋ก ์ธํ ๋ฐฉํด๋ฅผ ๋ง๊ธฐ ์ํด local buffer์์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์ค๋ ์์ ์ CPU ๋์ ์ํ
=> CPU์๋ 1๋ฒ์ interrupt๋ง ๊ฑด๋ค!
I/O์ ์ํ
- ๋ชจ๋ ์ ์ถ๋ ฅ ๋ช ๋ น์ 'ํน๊ถ๋ช ๋ น' (OS๊ฐ ์ปค๋๋ชจ๋์์ ์ํํด์ผ ํ๋ค - ๋ ์ )
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ด๋ป๊ฒ I/O๋ฅผ ํ๋๊ฐ?
- ์์คํ ์ฝ(System call) : ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ์๊ฒ I/O๋ฅผ ์์ฒญํ๊ธฐ ์ํด interrupt๋ฅผ ๊ฑด๋ค
- monitor bit๊ฐ 0์ผ๋ก ์ค์ ๋์ด OS์๊ฒ CPU๊ฐ ํ ๋น๋๋ค
monitor bit๊ฐ 1์ธ ์ํ์ด๋ฉด OS์ ์ฃผ์๋ก ์ ํํ ์ ์๋ค.
๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ด ์ง์ interrupt line์ ์ธํ ํ๊ณ CPU์๊ฒ interrupt๋ฅผ ๋ณด๋ธ๋ค.
CPU๋ interrupt๊ฐ ๋ค์ด์๊ธฐ ๋๋ฌธ์ mode bit์ 0์ผ๋ก ๋ฐ๊พธ๊ณ CPU ์ ์ด๊ถ์ OS๋ก ๋๊ธด๋ค.
(Trap/SW Interrupt๋ฅผ ์ฌ์ฉํ์ฌ ์ธํฐ๋ฝํธ ๋ฒกํฐ์ ํน์ ์์น๋ก ์ด๋)
(์ ์ด๊ถ์ด ์ธํฐ๋ฝํธ ๋ฒกํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ผ๋ก ์ด๋) - ์ฌ๋ฐ๋ฅธ I/O ์์ฒญ์ธ์ง ํ์ธ ํ I/O ์ํ
- I/O ์๋ฃ ์ ์ ์ด๊ถ์ system call ๋ค์ ๋ช ๋ น์ผ๋ก ์ฎ๊น
Interrupt
CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์์ ๋, I/O ์ฅ์น๋ ์์ธ ์ํฉ์ด ๋ฐ์ํด์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ CPU์๊ฒ ์๋ฆฌ๋ ์ด๋ฒคํธ
interrupt๊ฐ ๋ฐ์ํ ๋๋ง CPU ์ ์ด๊ถ์ด OS์๊ฒ๋ก ๋์ด๊ฐ๋ค
- ํ๋์ ์ด์์ฒด์ ๋ ์ธํฐ๋ฝํธ์ ์ํด ๊ตฌ๋๋จ
Interrupt(๋์ ์๋ฏธ)
- Interrupt(ํ๋์จ์ด ์ธํฐ๋ฝํธ) : ํ๋์จ์ด(ํ์ด๋จธ, disk controller ๋ฑ)๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ
- Trap(์ํํธ์จ์ด ์ธํฐ๋ฝํธ)
- Exception : ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฅผ ๋ฒํ ๊ฒฝ์ฐ (ex. memory violation)
- System call : ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด OS์ ๋์์ ๋ฐ๊ธฐ ์ํด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
์ธํฐ๋ฝํธ ๊ด๋ จ ์ฉ์ด
- ์ธํฐ๋ฝํธ ๋ฒกํฐ : ํด๋น ์ธํฐ๋ฝํธ์ ์ฒ๋ฆฌ ๋ฃจํด ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์
- ์ธํฐ๋ฝํธ ์ข ๋ฃ ๋ณ๋ก ์คํํด์ผ ํ ํจ์์ ์ฃผ์๋ฅผ ์ ์ํด๋์ {๋ฒํธ, ์ฒ๋ฆฌํด์ผ ํ ์ปค๋ ํจ์์ ์ฃผ์}
- ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ๋ฃจํด(=Interrupt Service Routine, ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ) : ํด๋น ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ปค๋ ํจ์
- ์ธํฐ๋ฝํธ๊ฐ ์ค์ ๋ก ํด์ผ ํ๋ ์ผ
- Software interrupt(trap) : I/O ์์ฒญ
- Hardware interrupt : I/O ์ข ๋ฃ
System call
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด ์ปค๋ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ
'๐ป CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] 5. CPU Scheduling (0) | 2022.11.27 |
---|---|
[์ด์์ฒด์ ] 4. Process Management (0) | 2022.11.27 |
[์ด์์ฒด์ ] 3. Process (0) | 2022.11.20 |
[์ด์์ฒด์ ] 2. System Structure & Program Execution 2 (0) | 2022.11.20 |
[์ด์์ฒด์ ] 1. Introduction to Operating Systems (0) | 2022.11.13 |
๋๊ธ