[OS] ์ธํฐ๋ฝํธ์ ์ข ๋ฅ์ ์ฒ๋ฆฌ๊ณผ์
by rlaehddnd0422์ธํฐ๋ฝํธ
- ์ธํฐ๋ฝํธ๋ ์ด๋ค ์ ํธ๊ฐ ๋ค์ด์์ ๋ CPU๋ฅผ ์ ๊น ์ ์ง์ํค๋ ๊ฒ์ ๋งํฉ๋๋ค.
- ์ธ์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋?
- ์ฃผ๋ก ํ๋ก๊ทธ๋จ ์คํ ์ค, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ ์ฅ์น์์ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
- 0์ผ๋ก ์ซ์๋ฅผ ๋๋๋ ์ฐ์ ์ฐ์ฐ ์ค๋ฅ๋ผ๋์ง, ํ๋ก์ธ์ค์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฑ
- ์ธํฐ๋ฝํธ๋ฅผ ์ ๋ฐ์์ํค๋๋ฐ?
- ์๋ฅผ ๋ค์ด ํ๋ก๊ทธ๋จ์๊ฒ ์์ฃผ ์ค๋๊ฑธ๋ฆฌ๋ ์ ์ถ๋ ฅ ์ฐ์ฐ์ ์ํํ๋ผ๊ณ ์ง์ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. CPU์์ ์ง์๋ฐ์ ์ฐ์ฐ์ ์ํํ๊ธฐ ์ํด ๋ช ๋ น์ด๋ฅผ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๊ณผ์ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋, CPU๊ฐ ๋ค๋ฅธ์ผ์ ์ฒ๋ฆฌํ์ง ์๊ณ ์ค๋ฅ๋ฅผ ๊ณ์ ๋ถ์ก๊ณ ์๊ฒ ๋๋ฉด ํจ์จ์ด ๋ฎ์์ง๊ฒ ์ฃ ?
- ์ด์ ๊ฐ์ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด๋ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ค๋ฅ์ ๋ง๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ '์ธํฐ๋ฝํธ ํธ๋ค๋ฌ'๊ฐ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ CPU๊ฐ ๋์ง ์๊ณ ๋ค๋ฅธ ์ผ์ ์ฒ๋ฆฌํ๊ฒ ํจ์ผ๋ก์จ ํจ์จ์ ๋์ด๊ธฐ ์ํด ์ธํฐ๋ฝํธ๊ฐ ์ฌ์ฉ๋๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
- ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด CPU๋ ๋ช ๋ น์ด ์ํ๊ณผ์ ์์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด ์ ํํด์ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ ํจ์๊ฐ ๋ชจ์ฌ์๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ก ๊ฐ์ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด(ISR)์ด ์คํ๋๋ฉฐ ํน์ ๋ช ๋ น์ด๋ฅผ ํตํด ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ํ ์ธํฐ๋ฝํธ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ค์ CPU๋ก ๋์์ ์์ฐจ์ ์ผ๋ก ๋ค์ ๋ช ๋ น์ ์ฒ๋ฆฌํด์.
์ธํฐ๋ฝํธ ๋ฒกํฐ : ์ธํฐ๋ฝํธ ๋ฐ์ ์ ์ฒ๋ฆฌํด์ผ ํ ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ์ ์ฃผ์๋ฅผ ๋ณ๋๋ก ๋ณด๊ดํ๊ณ ์๋ ํ ์ด๋ธ
์ธํฐ๋ฝํธ ํธ๋ค๋ฌ : ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฃจํด
๊ฒฐ๋ก : ์ธํฐ๋ฝํธ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ISR์ด๋ผ๋ ํธ๋ค๋ฌ ํจ์๋ฅผ ํตํด ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋งก๊ธฐ๋ฉฐ, ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋งก๊ธฐ๋ ๋์ CPU๊ฐ ๋์ง์๊ฒ ํจ์ผ๋ก์จ CPU ํจ์จ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค!
์ธํฐ๋ฝํธ ์ข ๋ฅ
์ธํฐ๋ฝํธ๋ ํฌ๊ฒ ํ๋์จ์ด ์ธํฐ๋ฝํธ, ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ก ๋๋ฉ๋๋ค.
์ํํธ์จ์ด ์ธํฐ๋ฝํธ
์ํํธ์จ์ด๊ฐ ๋ฐ์์ํค๋ ์ธํฐ๋ฝํธ์ ๋๋ค. ํธ๋ฉ(trap)์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํฉ๋๋ค. ์ํํธ์จ์ด(์ฌ์ฉ์ ํ๋ก๊ทธ๋จ)๊ฐ ์ค์ค๋ก ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํฉ๋๋ค.
- ์ฃผ๋ก ์์ธ ์ํฉ, system call(I/O์ฅ์น์ ๋ํ ์ ๊ทผ)์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
- CPU๋ ๋งค๋ฒ ๋ช ๋ น์ ์ํํ๊ธฐ ์ ์ ํธ๋ฉ ๋ด๋ถ์ ์ธํฐ๋ฝํธ ๋ผ์ธ์ด ์ธํ ๋์ด ์๋์ง ๋จผ์ ๊ฒ์ฌํฉ๋๋ค.
ํ๋์จ์ด ์ธํฐ๋ฝํธ
I/O ๋๋ฐ์ด์ค ๋ฑ ํ๋์จ์ด๊ฐ ๋ฐ์์ํค๋ ์ธํฐ๋ฝํธ์ ๋๋ค. ํ๋์จ์ด ์ฅ์น๊ฐ CPU์๊ฒ ์ด๋ค ์ฌ์ค์ ์๋ ค์ฃผ์ด์ผ ํ ๋ ๋ฐ์ํฉ๋๋ค.
- ์๋ฅผ๋ค๋ฉด ๋์คํฌ๋ก๋ถํฐ ํ์ผ ์ฝ๊ธฐ ์์ ์ ์๋ฃํ์๊ฑฐ๋ ๋์คํฌ์ ํ์ผ ์ฐ๊ธฐ ์์ ์ด ์๋ฃํ ๊ฒฝ์ฐ
์ธํฐ๋ฝํธ ๊ณผ์
์ด๋ค ํ๋ก์ธ์ค A๊ฐ ์คํ๋์ด ์ํ๋๋ ๊ณผ์ ์์ ๋์คํฌ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ผ๋ ๋ช ๋ น์ ๋ฐ์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
- ํ๋ก์ธ์ค A๋ ํ๋์จ์ด์ ์ง์ ์ ๊ทผํด์ ํ์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ธฐ ์ํด ์์คํ ์ฝ์ ํธ์ถํ์ฌ '์ํํธ์จ์ด ์ธํฐ๋ฝํธ(ํธ๋ฉ)'์ ๋ฐ์์ํต๋๋ค. (System call๋ ํ๋์ ์ธํฐ๋ฝํธ๋ก ์ทจ๊ธ๋๋ค.)
- CPU๋ ํ์ฌ๊น์ง ์ํ์ค์ด๋ ์ํ(๋ฉ๋ชจ๋ฆฌ ์ฃผ์, ๋ ์ง์คํฐ ๊ฐ, ํ๋์จ์ด ์ํ ๋ฑ๋ฑ)๋ฅผ PCB(Process Control Block)์ ์ ์ฅํ๊ณ PC(Program Counter)์ ๋ค์์ ์คํํ ๋ช ๋ น์ ์ฃผ์๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์ธํฐ๋ฝํธ ๋ฒกํฐ์์ ISR ์ฃผ์๊ฐ์ ์ป์ด ISR๋ก ์ ํํ์ฌ ์ฝ๊ธฐ ๋ฃจํด์ ์คํ
- ํด๋น ์ผ์ ๋ชจ๋ ์ฒ๋ฆฌํ๋ฉด ๋ํผ์ํจ ์ํ๋ฅผ ์ ์ฅํด๋ PCB๋ฅผ ๋ณต์ํฉ๋๋ค.
- ISR์ ๋์ IRET ๋ช ๋ น์ด์ ์ํด ์ธํฐ๋ฝํธ๋ฅผ ํด์ ํฉ๋๋ค.
- ๋ํผ ์ํจ PC ๊ฐ์ ๋ณต์ํ์ฌ ์ด์ ์์น๋ก ๋ณต์ํ์ฌ ์งํ์ค์ด๋ ํ๋ก์ธ์ค ๋ค์ ์ํํฉ๋๋ค.
์ฐธ๊ณ ์๋ฃ
'๐ CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ๋ฉํฐํ๋ก์ธ์ค์ ๋ฉํฐ ์ค๋ ๋์ ์ฐจ์ด์ ์ฅ/๋จ์ (0) | 2024.05.21 |
---|---|
[OS] Process์ ๋ํด ์์๋ณด์. (0) | 2024.05.17 |
[OS] ๋ฉ๋ชจ๋ฆฌ 4 ๊ณ์ธต ๊ตฌ์กฐ / ๋ ์ง์คํฐ, ์บ์, ์ฃผ๊ธฐ์ต์ฅ์น, ๋ณด์กฐ๊ธฐ์ต์ฅ์น (0) | 2024.05.17 |
[OS] Process๋ ๋ฌด์์ด๊ณ , Thread์์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น? (0) | 2023.08.17 |
[OS] ์ด์์ฒด์ ์ ์ญํ , ๊ตฌ์กฐ (0) | 2023.08.13 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422