2.1 ์ด์์ฒด์ , ํ๋ก์ธ์ค, ์ค๋ ๋์ ๊ทผ๋ณธ ์ดํดํ๊ธฐ
๋จผ์ ์ด์์ฒด์ , ํ๋ก์ธ์ค, ์ค๋ ๋๋ฅผ ์ดํดํ๋ ค๋ฉด CPU ์ PC(Register), Memory ์ ๊ฐ๋จํ ๊ตฌ์กฐ๋ถํฐ ์์์ผ ํ๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ ์ปดํจํฐ์์ ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ CPU, PC(Register), Memory ๋ฑ์ด ํ์ํ๋ค. ๊ฐ๊ฐ์ ์ญํ ์ด ๋ถ๋ช ํ๋ค. CPU ๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ช ๋ น์ด๋ฅผ ํ๋ ๊ฐ์ ธ์์ ์คํํ๊ณ ๋ค์ ๊ฐ์ ธ์ค๋ ๊ฒ๋ง ๋ฐ๋ณตํ๋ค. ๋ค์์ ์คํํ ๋ช ๋ น์ด์ ์ฃผ์๋ PC(Register)๊ฐ ๊ฐ๊ณ ์๋ค.
PC(Register)์ ์ฃผ์๊ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก 1์ฉ ์ฆ๊ฐํ์ง๋ง if๋ฌธ๊ณผ ๊ฐ์ ๋ถ๊ธฐ๋ฌธ์ ๋ง๋๋ฉด ํด๋น ์ฃผ์๋ก ๋์ ์ผ๋ก ๋ฐ๋ ์ ์๋ค. ์ต์ด์ PC(Register) ๊ฐ ์ ์ฅํ ๊ฐ์ ๊ฐ ์ธ์ด๋ณ main ๋ฌธ์ผ๋ก ์ง์ ๋๋ค.
์ฆ, CPU ๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ฒ ํ๋ ค๋ฉด 1. ์คํ ํ์ผ์ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌํ ํ 2. main ํจ์์ ํด๋นํ๋ ์ฒซ ๋ฒ์งธ ๊ธฐ๊ณ ๋ช ๋ น์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐพ๊ณ 3. ๊ทธ ์ฃผ์๋ฅผ PC ๋ ์ง์คํฐ์ ์ ์ฌํ๋ฉด ๋๋ค.
์ด ๋, ํ๋ก๊ทธ๋จ์ ์ ์ฌํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฐพ๊ณ , ํ๋์จ์ด์ ์ฐ๊ฒฐํ๊ณ , ์ถ๋ ฅ๋ฌธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด ์ญ์ ๋ชจ๋ ์๋์ผ๋ก ๊ฐ๋ฐํด์ผ ํ๋ค. ์ด ๋ฒ๊ฑฐ๋ก์ด ์ผ์ ํด์ฃผ๋ ๊ฒ์ด ์ด์์ฒด์ ์ด๋ค.
์คํ์ค์ธ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ํ ์ ๋ณด(Context)๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ ์ด์์ฒด์ ๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ Process ๋ผ๋ ์ด๋ฆ์ผ๋ก ์คํ ์์๋ฅผ ๊ด๋ฆฌํ๋ค.
Process ๋ด์ ์์ญ์ ์์ ๊ฐ์ด ๋๋์ด ์๋ค. ์ฝ๋ ์์ญ, ๋ฐ์ดํฐ ์์ญ, ํ ์์ญ, ์คํ ์์ญ.
1. ์ฝ๋ ์์ญ: ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋
2. ๋ฐ์ดํฐ ์์ญ: ์ ์ญ ๋ณ์, ์ ์ ๋ณ์
3. ํ ์์ญ: ๋์ ๋ณ์(๋ฐํ์์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋จ)
4. ์คํ ์์ญ: ์ง์ญ ๋ณ์, ๋งค๊ฐ ๋ณ์ ๋ฑ(์ปดํ์ผ ํ์์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋จ)
2.5 ์ฝ๋ฐฑ ํจ์
1) ํจ์ ๋ณ์(์ฝ๋ฐฑ ํจ์): ๋ณ์๋ฅผ ์ ๋ฌํด์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ๊ฒ ์ฒ๋ผ ํจ์๋ฅผ ์ ๋ฌํ ์ ์๋ค.
๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋๋ ์คํ ๊ฐ๋ฅํ ์ฝ๋.
void make_donut(func f){
…
f();
…
}
2) ๋น๋๊ธฐ ์ฝ๋ฐฑ(asynchronous callback): ํธ์ถ ์ค๋ ๋๊ฐ ์ฝ๋ฐฑ ํจ์ ์คํ์ ์์กดํ์ง ์๋ ๊ฒ
์ค๋ ๋๋ฅผ ์์ฑํ๊ณ ๊ทธ ์ค๋ ๋๊ฐ ํจ์๋ฅผ ์คํํ๊ฒ ํ๋ ๊ฒ.
void real_make_donut(func f){
…
f();
…
}
void make_donut(func f){
thread t(real_make_donut, f);
}
3) ๋๊ธฐ ํธ์ถ vs ๋น๋๊ธฐ ํธ์ถ
: ์ฝ๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ธฐ๋ค๋ฆฌ๊ณ ์ ์ฐจ์ด๋ก ๋๊ธฐํธ์ถ๊ณผ ๋น๋๊ธฐ ํธ์ถ์ ๋๋ ์ ์๋ค.
์ฃผ๋ก ๋คํธ์ํฌ ํต์ , ํ์ผ ์ฝ๊ณ ์ฐ๊ธฐ ๋ฑ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ ์์ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋น๋๊ธฐ ํธ์ถ๋ก ์คํํ๋ค.
4) ๋๊ธฐ ์ฝ๋ฐฑ vs ๋น๋๊ธฐ ์ฝ๋ฐฑ
๋น๋๊ธฐ ์ฝ๋ฐฑ์์ ๋ณ์๋ฅผ ๋ฐ์์ ๋ค์ ์ฝ๋ฐฑํจ์๋ฅผ ํธ์ถํด์ผํ๋ ์ฝ๋๋ฅผ ์งค ๋ ์ฝ๋ฐฑ ์ง์ฅ์ ์ฃผ์ํ์.
2.7 ๋ธ๋กํน๊ณผ ๋ ผ๋ธ๋กํน
1) ๋ธ๋กํน ํธ์ถ vs ๋ ผ ๋ธ๋กํน ํธ์ถ
- ๋ธ๋กํน ํธ์ถ: ์ค๋ ๋ ๋๋ ํ๋ก์ธ์ค๊ฐ ์ผ์ ์ค์ง ๋๋ ๊ฒ. ๋๊ธฐ
- ๋ ผ๋ธ๋กํน ํธ์ถ: ์ค์ง X. ๋น๋๊ธฐ
'๐ Computer Science > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ ๋ฐ๋ฐ๋ฅ์ ๋น๋ฐ] 4์ฅ. CPU (1) | 2025.02.01 |
---|---|
[์ปดํจํฐ ๋ฐ๋ฐ๋ฅ์ ๋น๋ฐ] 3์ฅ. ๋ฉ๋ชจ๋ฆฌ Memory (0) | 2025.01.26 |
[SQLD ์๊ฒฉ์ฆ] ์๊ฒฉ ์๊ตฌ๊ฐฑ์ ๋ฐ ๋ณด์๊ต์ก ์๋ฃ ๋ฐฉ๋ฒ (0) | 2023.05.18 |
[Diagram] ๋ค์ด์ด๊ทธ๋จ ๊ทธ๋ฆฌ๋ ๋ฌด๋ฃ ์ฌ์ดํธ ๊ณต์ /์ถ์ฒ (0) | 2021.08.12 |
[Database] SQL ๋ฌธ ์ ๋ฆฌ(์ฝ๋ฉ ํ ์คํธ ๋๋น) (0) | 2021.07.20 |