์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- OS
- spring
- Java
- ์ด์์ฒด์
- ๋จ์ํ ์คํธ
- API
- JPA
- ์ด์งํ์
- ToyProject
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ผ์ฑ๊ธฐ์ถ
- ๋งคํธ๋ฉ
- Crawling
- ์ ๋ ๋์
- python
- matlab
- ์นด์นด์ค
- ํ์ด์ฌ
- ์นํฌ๋กค๋ง
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค๊ธฐ์ถ
- ๊ทธ๋ฆฌ๋
- ํด์
- webcrawling
- ๋ฐฑ์ค
- ํด์๋ฒ
- ์์์ฒ๋ฆฌ
- selenium
- BFS
- ํฌ๋กค๋ง
DevKim
[OS] ์ฅ์น ๊ฐ ์๋ ์ฐจ ๊ฐ์ 2 - ์ธํฐ๋ฝํธ(interrupt) ๋ฐฉ์, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ณธ๋ฌธ
[OS] ์ฅ์น ๊ฐ ์๋ ์ฐจ ๊ฐ์ 2 - ์ธํฐ๋ฝํธ(interrupt) ๋ฐฉ์, ๋ณ๋ ฌ ์ฒ๋ฆฌ
on_doing 2021. 7. 20. 23:19๐ 01. ์ธํฐ๋ฝํธ interrupt ๐
์ค๋๋ ์๋ ์ปดํจํฐ์๋ ๋ง์ ์ฃผ๋ณ ์ฅ์น๋ค์ด ์๊ธฐ ๋๋ฌธ์,
CPU๊ฐ ๋ชจ๋ ์ ์ถ๋ ฅ์ ๊ด์ฌํ๊ฒ ๋๋ค๋ฉด ์์ ํจ์จ์ด ํ์ ํ๊ฒ ๋จ์ด์ง๊ฒ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ์ธํฐ๋ฝํธ ๋ฐฉ์์ด๋ค.
์๋ฆฌ์ฌ๊ฐ ์ฃผ๋ฐฉ ๋ณด์กฐ๋ฅผ ๋๋ ๊ฒ๊ณผ ์ ์ฌํ๋ค.
[ ์ป์ ์ ์๋ ์ด์ ]
CPU์ ์์ ๊ณผ ์ ์ฅ์ฅ์น์ ๋ฐ์ดํฐ ์ด๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด์ํจ์ผ๋ก์จ ํจ์จ์ ๋์ผ ์ ์๋ค.
[ ๋์ ๊ณผ์ ]
1. CPU๊ฐ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์์๊ฒ ์ ์ถ๋ ฅ ๋ช ๋ น์ ๋ณด๋
2. ์ ์ถ๋ ฅ ๊ด๋ฆฌ์๋ ๋ช ๋ น๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ธ๋ค๋๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ์ฅ์น๋ก ์ฎ๊น
3. ๋ฐ์ดํฐ ์ ์ก์ด ์๋ฃ๋๋ฉด ์ ์ถ๋ ฅ ๊ด๋ฆฌ์๋ CPU์๊ฒ ์๋ฃ์ ํธ (์ธํฐ๋ฝํธ)๋ฅผ ๋ณด๋
4. ์ด๋ CPU๋ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์์๊ฒ ๋ช ๋ น์ ๋ณด๋ด๊ณ ๋ค๋ฅธ ์ผ์ ํ๋ค๊ฐ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์ผ๋ฉด ํ๋ ์ผ์ ์ค๋จํ๊ณ ์ฎ๊ฒจ์ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
[ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ]
- ๋ช ๋ น์ ๋ฐ์ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์๋ CPU๊ฐ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ธ๋ค ๋์์ผํ๋๋ฐ,
๋ฉ๋ชจ๋ฆฌ๋ CPU๋ง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง ์์ ๊ณต๊ฐ์ด๋ผ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ํ ์ ์๋๋ก ๊ถํ์ด ํ์ํ๋ฐ,
์ด๋ ์ด๋ฌํ ๊ถํ์ '์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ (DMA)' ์ด๋ผ๊ณ ํ๋ค.
์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ํ ์ ์ด๊ธฐ์ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด, ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ ์ด๊ธฐ๊ฐ
์์คํ ๋ฒ์ค์ ์ ์ถ๋ ฅ ๋ฒ์ค์ ์ฌ์ด์์ ์์ชฝ์ผ๋ก ์๋ค๊ฐ๋ค ํ ์ ์๊ฒ๋ ๊ตฌ์ฑ๋์ด์๋ค.
[ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ์ถ๋ ฅ ]
- ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ฌ์ฉํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ์๋ ์ ์ถ๋ ฅ ์ฅ์น๊ฐ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ CPU๊ฐ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๊ฐ ์์ฌ์๋ค.
์ด๋ฅผ ์ํด CPU๊ฐ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ ์ฅ์น๊ฐ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ถ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ๋์ ๋์๋ค.
์ด๋ ๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ผ์ ๊ณต๊ฐ์ ์ ์ถ๋ ฅ์ ํ ๋นํ๋ ๊ธฐ๋ฒ์ '๋ฉ๋ชจ๋ฆฌ ๋งคํ ์ ์ถ๋ ฅ (Memory mapped I/O) '์ด๋ผ๊ณ ํ๋ค.
[ ์ฌ์ดํด ํ์น๊ธฐ ]
CPU์ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋, CPU์ ์์ ์๋๊ฐ ์ ์ถ๋ ฅ ์ฅ์น์ ์๋๋ณด๋ค ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๊ถํ์ ์๋ณดํ๊ฒ ๋๋ค.
์ด๋ CPU ์ ์ฅ์์๋ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ์ฌ์ดํด(์์)์ ํ์ณ๊ฐ ๊ฒ์ด๋ฏ๋ก ์ฌ์ดํด ํ์น๊ธฐ๋ผ๊ณ ์ผ์ปซ๋๋ค.
[ ์ถ๊ฐ์ ์ผ๋ก ]
- CPU๋ ์ ์ถ๋ ฅ ๊ด๋ฆฌ์์๊ฒ ์ฌ๋ฌ๊ฐ์ ์ผ์ ๋์์ ์ํฌ ์ ์๋๋ฐ, ์ด๋๋ง๋ค ์ธํฐ๋ฝํธ๋ฅผ ์ฌ๋ฌ๋ฒ ๋ณด๋ด๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ฏ๋ก ์ธํฐ๋ฝํธ vector๋ฅผ ์ฌ์ฉํ๋ค.
- ์ธํฐ๋ฝํธ๋ ๋ค์ํ ์ข ๋ฅ์ ์ธํฐ๋ฝํธ๊ฐ ์๋ค ( ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋์์ ๋..๋ฑ)
๐ 02. ๋ณ๋ ฌ์ฒ๋ฆฌ ๐
[ ์๋ก ]
CPU์ ์ฑ๋ฅ์ ํฅ์ ์ํค๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
CPU์ ํด๋ก์ ๋์ด๊ฑฐ๋, ์บ์์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฑฐ๋..
ํ์ง๋ง ์ด๋ฐ ๊ฒ๋ค์ ํ์ฌ ๊ธฐ์ ๋ก์ฌ ๋ฐ์ด๋ฌธ์ ์ ๋น์ฉ๋ฌธ์ ๊ฐ ์ผ๊ธฐ๋๋ค.
๋ฐ๋ผ์ ํ์ฌ๋, CPU ์ฑ๋ฅ์ ํฅ์ ์ํค๊ธฐ์ํด
#1. CPU์ ํต์ฌ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ฝ์ด๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ค๊ฑฐ๋
#2. ๋์์ ์คํ๊ฐ๋ฅํ ๋ช ๋ น์ ๊ฐ์๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
[ ๊ฐ๋ ]
- ๋์์ ์ฌ๋ฌ๊ฐ์ ๋ช ๋ น์ ์ฒ๋ฆฌํ์ฌ ์์ ์ ๋ฅ๋ฅ ์ ์ฌ๋ฆฌ๋ ๋ฐฉ์์ ๋งํ๋ค.
- ์ฌ๋ฌ๊ฐ์ ๋ช ๋ น์ ๋์์ ์ฒ๋ฆฌํ๋ '๋ณ๋ ฌ์ฒ๋ฆฌ'๋ ์ฝ์ด๊ฐ ์ฌ๋ฌ๊ฐ์ธ CPU๋ ๋ฌผ๋ก ์ด๊ณ
์ฝ์ด๊ฐ ํ๋์ธ CPU์์๋ ์๋ ๊ฐ๋ฅํ๋ค.
(ex. ๋ ธํธ๋ถ์ ๋์ผ์ฝ์ด, ์ฟผ๋์ฝ์ด๋ ์ฉ์ด๊ฐ ๋ฐ๋ก CPU์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ์ฝ์ด๊ฐ 1๊ฐ๊ฐ ์๋๋ผ 2,4๊ฐ๋ผ๋ ๋ป์ด๋ค)
[ ๋ณ๋ ฌ์ฒ๋ฆฌ์ ๊ณ ๋ ค์ฌํญ ]
1. ์ํธ ์์กด์ฑ์ด ์์ด์ผํ๋ค.
- ์์ ์ผ์ด ๋ค์ ์ผ์ ์ํฅ์ ๋ฏธ์น์ง ์์์ผํ๋ค,
2. ๊ฐ ๋จ๊ณ์ ์๊ฐ์ ์ผ์ ํ๊ฒ ๋ง์ถฐ์ผ ๋ณ๋ ฌ์ฒ๋ฆฌ๊ฐ ์๋งํ๊ฒ ์ด๋ฃจ์ด์ง๋ค.
- ๊ฐ ๋จ๊ณ์ ์๊ฐ์ด ๋์ฅ๋ ์ฅ์ด๋ผ๋ฉด,
์์ ์์ ์ด ๋จผ์ ๋๋๋๋ผ๋ ๊ฐ์ฅ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๋จ๊ณ์์ '๋ณ๋ชฉ ํ์'์ด ๋ฐ์ํ๋ค.
- ์ฆ, ์งํ์ด ์ ๋ฐ์ ์ผ๋ก ๋ฐ๋ ค์ ์ ์ฒด ์์ ์๊ฐ์ด ๋์ด๋๋ค.
3. ์ ์ฒด ์์ ์๊ฐ์ ๋ช ๋จ๊ณ๋ก ๋๋์ง ์ ๋ฐ์ ธ๋ณด์์ผํ๋ค.
- ์์ ์ ๋๋ฌด ๋ง์ ๋จ๊ณ๋ก ๋๋๋ฉด,
๊ฐ ๋จ๊ณ๋ง๋ค ์์ ์ ์ด๋ํ๊ณ ์๋ก์ด ์์ ์ ๋ถ๋ฌ์ค๋๋ฐ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๊ฑธ๋ ค์ ์คํ๋ ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
- ์ด๋ฌํ ์ค๋ฒํค๋๋ฅผ ๊ณ ๋ คํ์ฌ ๋ณดํต ๊น์ด๋ฅผ 10~20์ ๋๋ก ํ๋ค๊ณ ํ๋ค.
[ ๋ณ๋ ฌ์ฒ๋ฆฌ ๊ธฐ๋ฒ ]
01. ํ์ดํ๋ผ์ธ ๊ธฐ๋ฒ
- ํ ์ฃผ๋ฐฉ์์ ์ฌ๋ฌ๊ฐ์ ๋ณถ์๋ฐฅ์ ๋์์ ๋ง๋๋ ๊ฒ
= ํ๋์ ์ฝ์ด์ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋(thread)๋ฅผ ์ด์ฉํ๋ ๊ฒ
= ํ์ดํ๋ผ์ธ ๊ธฐ๋ฒ
* ์ค๋ ๋(thread) : CPU๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ์์ ์ ๋จ์
* ๋ฉํฐ ์ค๋ ๋ : ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๋ฅผ ์ด์ฉํ๋ ๊ฒ
02. ์ํผ์ค์นผ๋ผ ๊ธฐ๋ฒ
- ํ ์ฃผ๋ฐฉ์์ ์ฌ๋ฌ๊ฐ์ ์กฐ๋ฆฌ ์์ค์ ๊ฐ์ถ๊ณ ์ฌ๋ฌ๊ฐ์ ์๋ฆฌ๋ฅผ ๋์์ ํ๋ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
= ์ฌ๋ฌ๊ฐ์ ์ฝ์ด์์ ์ฌ๋ฌ๊ฐ์ ์์ ์ ๋์์ ์ฒ๋ฆฌ
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ์ฅ์น ๊ฐ ์๋ ์ฐจ ๊ฐ์ 1 - ๋ฒํผ , ์คํ ,์บ์ cache (0) | 2021.01.19 |
---|---|
[ํ๋์จ์ด] ํ๋์จ์ด์ ๊ตฌ์ฑ, CPU,๋ฉ๋ชจ๋ฆฌ ์ ๋ฆฌ (0) | 2020.12.29 |
[OS] ์ด์์ฒด์ ์ ๊ตฌ์กฐ - kernel & interface & system call &driver (0) | 2020.12.29 |
[OS] ์ด์์ฒด์ ์ ๋ค์ํ system (0) | 2020.12.29 |
[OS] ์ด์์ฒด์ remind (0) | 2020.12.19 |