์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐฑ์ค9012
- ์ฟ ํกERD
- ์คํธ๋ฆผ
- ์คํ์์ด
- ์คํ
- ๋ฐฑ์ค9093
- ์ฐ์ฐ์
- ๋ฐฑ์ค1874
- ๋
- StringBuilder
- java
- ์ฐ
- StringBuffer
- ๋ฐ์ดํฐํ์
- ์
- ๋ฌธ์์ด
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ์ฟ ํกDB
- ์๋ฐ
- stream
- ๋ฐฐ์ด
- Today
- Total
Tech Log ๐ ๏ธ
์ปค๋ ์์คํ ์์๋ณด๊ธฐ ๋ณธ๋ฌธ
์ปค๋์ด๋?
์ปค๋์ด๋ ์ด์์ฒด์ ๋ด๋ถ์์ ์์๋ค์ ๊ด๋ฆฌํ๊ณ ์ถ์ํ ํด์ค๋ค. ์ด ๋๋ถ์ ์ฌ์ฉ์๋ ๋ด๋ถ ํ๋์จ์ด์ ์ง์ ์ ๊ทผํ์ง ์๊ณ ๋ ๊ฐํธํ๊ฒ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค. ์ฌ๊ธฐ์ ์์์ CPU, ๋ฉ๋ชจ๋ฆฌ , ์ ์ถ๋ ฅ ์ฅ์น ๊ฐ์ ๊ฒ๋ค์ ๋ํ๋ธ๋ค.
๋ํ ์ปค๋์ ์์์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ฌ๋ฌ ๊ด๋ฆฌ์๋ค์ด ์๋ค.
- ํ ์คํธ ๊ด๋ฆฌ์ : ๋ฌผ๋ฆฌ์ ์์์ธ CPU๋ฅผ ์ถ์ ์์์ธ ํ ์คํฌ๋ก ์ ๊ณตํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ : ๋ฌผ๋ฆฌ์ ์์์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ์ ์์์ธ ํ์ด์ง๋ ์ธ๊ทธ๋จผํธ๋ก ์ ๊ณตํ๋ค.
- ํ์ผ ์์คํ ๊ด๋ฆฌ์ : ๋ฌผ๋ฆฌ์ ์์์ธ ๋์คํฌ๋ฅผ ์ถ์ ์์์ธ ํ์ผ๋ก ์ ๊ณตํ๋ค.
- ๋คํธ์ํฌ ๊ด๋ฆฌ์ : ๋ฌผ๋ฆฌ์ ์์์ธ ๋คํธ์ํฌ ์ฅ์น๋ฅผ ์ถ์ ์์์ธ ์์ผ์ผ๋ก ์ ๊ณตํ๋ค.
- ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ์ : ๊ฐ์ข ์ธ๋ถ ์ฅ์น(ํ๋ฆฐํฐ, GPU ๋ฑ)์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํ๋ค.
์ปค๋์ ๋์ ๋ฐฉ์
์ปค๋์ Memory Resident ํ ํ๋ก๊ทธ๋จ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋จ๋ค์ ๋์คํฌ์ ์์ฃผํด์๋๋ฐ, ์ปค๋์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ฌ ๋ช ๋ น๋ค์ ์ฒ๋ฆฌํ๋ค.
ํ์ง๋ง ์ปค๋์ ์ฌ์ฉ์์ ๋ช ๋ น์ ์ง์ ์ ์ผ๋ก ๋ฐ์ง ์๊ณ ์์ด๋ ํ๋ก๊ทธ๋จ์ ํตํด์ ๋ช ๋ น์ ์ ๋ฌ๋ฐ๋๋ค. ์ฆ ์์ ํตํด์ ์ปค๋์๊ฒ ๋ช ๋ น์ ๋ด๋ฆด ์ ์๋ ๊ฒ์ด๋ค.
์์ ์ญํ
ํ๋ก๊ทธ๋จ๋ค์ด ์ธ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋๊ณ ํด์ ๋๋์ง ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ฉฐ ์ปค๋์ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ ์ํํ๊ธฐ๋ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ด์์ฒด์ ๊ฐ ๋ถํ ๋๋ฉด Memory Residentํ ํน์ฑ์ ๊ฐ์ง๋ ์ปค๋์ด ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ๋ค.
๊ทธ ํ ์ ์ ๊ฐ ํฐ๋ฏธ๋์ ์คํํ๋ฉด ์์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๊ณ ์ ์ ๊ฐ ์ ๋ ฅํ ์ปค๋งจ๋์ ๋ง๋ ์ก(job)์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
์ด๋ฐ ๊ณผ์ ์ผ๋ก ์ ์ ๋ ํ๋ก๊ทธ๋จ์ ๋ด๋ถ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ ๊ฒฝ์ฐ์ง ์๊ณ ์คํ์ํฌ ์ ์๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ด๋ฐ ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ์ ๊ฒฝ์จ์ผ ํ ์ ์ด ํ๋ ์๋ค. ๋ฐ๋ก ๋ฉํฐ์ ์ ์์คํ ์ด๋ผ๋ ์ ์ด๋ค.
์๋์ฐ๋ ๊ฐ์ธpc์ฉ ์ด์์ฒด์ ์ฌ์ ๋ณด์์ ๋ํ ๋ถ๋ด์ด ๋ฆฌ๋ ์ค์ ๋นํด ์ ์ ์ ์์ง๋ง, ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ์ด์ฉํ๋ ๋ฆฌ๋ ์ค๋ ๋ณด์์ ํน๋ณํ ๋ ์ ๊ฒฝ์จ์ผํ๋ค.
๋ง์ฝ ์ ์ A๊ฐ ์ ์ B์ ํ์ผ์ ๋ง๋๋ก ์ ๊ทผํ ์ ์๋ค๋ฉด ์ด๋จ๊น? ์ด๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ด๋ํ ์ ์๋ค.
๋ฐ๋ผ์ ์ด์์ฒด์ ๋ ์ปค๋๋ชจ๋์ ์ ์ ๋ชจ๋๋ฅผ ๋๋์ด์ ์ ์ถ๋ ฅ ์์ ๊ฐ์ด ์์์ ์ ๊ทผํ๋ ์ผ๋ค์ ์ปค๋์์ ๋ด๋นํ๋๋ก ํ์๋ค.
์ด๋ ์ปค๋์๊ฒ ํด๋น ์์ ์ ์์ฒญํ๋ ๊ฒ์ ์์คํ ์ฝ์ด๋ผ๊ณ ํ๋ค.
์ ์ ๋ชจ๋์์ ์์คํ ์ฝ์ด๋ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉด ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ๋ค.
์์คํ ์ฝ์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ ์ญํ ๋ค์ ์ํํ๋ค.
ํ๋ก์ธ์ค/์ค๋ ๋ ๊ด๋ จ ์ฒ๋ฆฌ
ํ์ผ I/O ๊ด๋ จ ์ฒ๋ฆฌ
์์ผ ๊ด๋ จ ์ฒ๋ฆฌ
๋๋ฐ์ด์ค ๊ด๋ จ ์ฒ๋ฆฌ
ํ๋ก์ธ์ค ํต์ ๊ด๋ จ ์ฒ๋ฆฌ
๋ฌผ๋ก ๋ชจ๋ ์ปค๋งจ๋์ ๋ํด์ ์์คํ ์ฝ์ด ์ปค๋๋ก ๋ช ๋ น์ ์ ๋ฌํด์ฃผ๋ฉด ์ด๋ ๋ฌด์ฉ์ง๋ฌผ์ผ ๊ฒ์ด๋ค. ๊ทธ๋์ ํด๋น ๋ช ๋ น์ด ์ ํฉํ ๋ช ๋ น์ธ์ง๋ฅผ ํ๋จํ๋ ๋ฐ์ด๋๋ฆฌ ๋นํธ๋ฅผ CPU์ ๋๋๋ฐ, ์ด๋ฅผ mode bit๋ผ๊ณ ํ๋ค. 1์ด๋ฉด ์ปค๋๋ชจ๋ 0์ด๋ฉด ์ ์ ๋ชจ๋๋ผ๊ณ ์๋ ค์ ธ์๋ค.
์ปค๋๋ชจ๋์์๋ ๋ชจ๋ ์์์ ๋ํ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ฐ ์ด๋ I/O ๊ฐ์ ์์ ๋ค์ ์ํํ๊ณ ์์คํ ์ฝ์ ๋ฆฌํด๊ฐ์ผ๋ก ํด๋น ์์ ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ์์ ์ด ์ข ๋ฃ๋๋ฉด ๋ค์ ์ ์ ๋ชจ๋๋ก ๋์๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค. ์ด ์์ ์ด ํ๋ฒ๋ง ์งํ๋๋ ๊ฑด ์๋๊ณ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด์ ์์์ด ์ปค๋๋ชจ๋์ ์ ์ ๋ชจ๋๋ฅผ ์๋ค๊ฐ๋คํ๋ค.
์ธํฐ๋ฝํธ๋
์์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์์ ๋ ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ๋ค๊ณ ํ์๋ค. ์ด ๋ ์ธํฐ๋ฝํธ๋ ๋ฌด์์ด๊ณ ์ ๋ฐ์ํ ๊น?
์ธํฐ๋ฝํธ๋ ์์คํ ์์ ๋ฐ์ํ ๋ค์ํ ์ข ๋ฅ์ ์ด๋ฒคํธ ํน์ ๊ทธ๋ฐ ์ด๋ฒคํธ๋ค์ด ๋ฐ์ํ์ ๋ ์๋ ค์ฃผ๋ ๋ฉ์ปค๋์ฆ์ด๋ค.
์ธํฐ๋ฝํธ๋ค์ด ๋ฐ์ํ๋ฉด CPU์์๋ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ๋ค.
ํ๋์จ์ด ํน์ ํ๋ก๊ทธ๋จ์ด ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํฐ๋ฝํธ๋ฅผ ์ธํ ํ๋ฉด ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ ์ธํฐ๋ฝํธ ๋ฒกํฐ๋ฅผ ํตํด ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ์คํํด์ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ค.
์ธํฐ๋ฝํธ ๋ฒกํฐ
์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด(ํธ๋ค๋ฌ)์ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ํ ์ด๋ธ
์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด
์ค์ ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฃจํด
์ฐธ๊ณ ๋ก ํ๋ก๊ทธ๋จ ๋ ๋ฒจ์์ ๋ฐ์ํ๋ ์ธํฐ๋ฝํธ๋ ํธ๋ฉ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๋ค.
์ธ๋ถ ์ธํฐ๋ฝํธ
์ ์์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋
I/O ์์ ์ด ์๋ฃ๋์์ ๋
ํ์ด๋จธ ์๊ฐ์ด ๋๋ฌ์ ๋
๋ด๋ถ ์ธํฐ๋ฝํธ
0์ผ๋ก ๋๋ด์ ๋
์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผ์ ์๋ํ ๋
์ํํธ์จ์ด ์ธํฐ๋ฝํธ
ํ๋ก๊ทธ๋จ ์ฒ๋ฆฌ ์ค ๋ช ๋ น์ ์์ฒญ์ ์ํด ๋ฐ์ํ๋ ๋ฐ, ๋ํ์ ์ผ๋ก SVC์ ์ํ call์ด ์๋ค.
์ธํฐ๋ฝํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ค.
- ์ ์ ์ด์(Power fail)
- ๊ธฐ๊ณ ์ฐฉ์ค(Machine Check)
- ์ธ๋ถ ์ ํธ(External)
- ์ ์ถ๋ ฅ(I/O)
- ๋ช ๋ น์ด ์๋ชป
- ํ๋ก๊ทธ๋จ ๊ฒ์ฌ(Program Check)
- SVC(SuperVisor Call)
์์คํ ์ฝ & ์ธํฐ๋ฝํธ์ ๋์ ๊ณผ์ (์์)
์ฑ๊ธ ์ฝ์ด ํ๊ฒฝ์์ ์ฐ๋ ๋1(t1)๊ณผ ์ฐ๋ ๋2(t2)๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์
t1์์ file read ์์ฒญ์ด ๋ค์ด์๋ค.
์ด๋ file read์ ํด๋นํ๋ ์์คํ ์ฝ์ด ํธ์ถ๋๋ฉฐ ๊ธฐ์กด t1์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ๋ค.
์ปค๋๋ชจ๋์ ์ง์ ํ t1์ ํด๋น file์ด read ๊ฐ๋ฅํ ์ํ๊ฐ ๋ ๋๊น์ง waiting ํ๊ฒ ๋๋ฉฐ ๋ค์ ์ ์ ๋ชจ๋๋ก ์ง์ ํ t2๊ฐ ์คํ๋๊ฒ ๋๋ค.
t1์์ ์์ฒญํ file์ด read ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์๋ค.
์ด๋๋ ์๊น์ ๋ค๋ฅด๊ฒ ์์คํ ์ฝ์ด ์๋ ์ธํฐ๋ฝํธ๊ฐ ํธ์ถ๋๋ค. ๋ค์ CPU๋ t2์ ์ํ๋ฅผ ์ ์ฅํ๊ณ t1์ waiting์์ ready(runnable)๋ก ์ํ๋ฅผ ๋ฐ๊พผ๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ ๋ชจ๋๋ก ์ง์ ํ์ t2๋ฅผ ์คํํ๋ค.
๋ชจ์ข ์ ์ด์ ๋ก t2์ CPU ์ ์ ๊ฐ ์ค๋จ๋๋ ์ผ์ด ์๊ธธ ๊ฒ์ด๋ค.
CPU๋ ๋ค์ ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ์ t2๋ฅผ ready ์ํ๋ก ๋ฐ๊พผ๋ค. ์ด์ ๋ t1์ ์คํ ์ํ๋ก ๋ฐ๊พธ๊ณ ์์ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋๋ค.
ํ์ง๋ง ์ฌ์ฉ์๋ ์ง์ ์ ์ผ๋ก ์์คํ ์ฝ์ ํธ์ถํ ์ผ์ด ์๋๋ฐ ์ด๋ ํ์ด(high) ๋ ๋ฒจ ์ธ์ด๊ฐ ์์คํ ์ฝ์ ํธ์ถํ ์ ์๋๋ก ๋ํ(wrapping)์ ํตํด ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ์ ์ผ๋ก ์ค๋ ๋๋ฅผ start ํ ๋ native ์ฝ๋๋ฅผ ํตํด์ JNI(Java Native Interface)๊ฐ ํด๋น ์ด์์ฒด์ ์ ๋ง๋ ์์คํ ์ฝ์ ํธ์ถํด์ค๋ค.
private native void start0();
'Computer Science > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์บ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ ๋ฆฌ (0) | 2024.02.04 |
---|---|
CISC์ RISC์ ๊ฐ๋ ๊ณผ ์ฐจ์ด (1) | 2024.01.24 |
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๋ (๋ ผ๋ฆฌ์ฃผ์, ํ์ด์ง ํดํธ, ์ค์ํ) (1) | 2024.01.10 |
์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํ์ด์ง ๋ฐฉ์ (1) | 2024.01.03 |
๋ฐ๋๋ฝ์ด ๋ฐ์ํ๋ ์ด์ ์ ํด๊ฒฐ ์ ๋ต (2) | 2024.01.03 |