1. ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ ์ธํฐ๋ฝํธ
ํ๋ก๊ทธ๋จ์ด cpu์์ ๋ช ๋ น์ ์ํํ๋ ค๋ฉด ํด๋น ๋ช ๋ น์ ๋ด์ ํ๋ก๊ทธ๋จ์ ์ฃผ์ ์์ญ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์์ด์ผ ํ๋ค.
ํ๋ก๊ทธ๋จ์ ์ฃผ์ ์์ญ : ์ฝ๋(code), ๋ฐ์ดํฐ(data), ์คํ(stack) ์์ญ์ผ๋ก ๊ตฌ๋ถ๋จ
- ์ฝ๋(code) : ์์ฑํ ํ๋ก๊ทธ๋จ ํจ์๋ค์ ์ฝ๋๊ฐ cpu์์ ์ํํ ์ ์๋ ๊ธฐ๊ณ์ด ๋ช ๋ น ํํ๋ก ๋ณํ๋์ด ์ ์ฅ๋๋ ๋ถ๋ถ
- ๋ฐ์ดํฐ(data) : ์ ์ญ ๋ณ์ ๋ฑ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ถ๋ถ
- ์คํ(stack) : ํจ์๊ฐ ํธ์ถ๋ ๋ ํธ์ถ๋ ํจ์์ ์ํ์ ๋ง์น๊ณ ๋ณต๊ทํ ์ฃผ์ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ๋ ๋ฐ์ ์ฌ์ฉ๋๋ ๊ณต๊ฐ
ex) X๋ผ๋ ํจ์ ์ํ ์ค Y๋ผ๋ ํจ์๋ฅผ ํธ์ถํ ์ํฉ
ํ๋ก๊ทธ๋จ์ Xํจ์์์ Yํจ์๋ฅผ ํธ์ถํ ์ง์ ์ ์คํ์ ์ ์ฅํด๋์๋ค๊ฐ Y ํจ์๊ฐ ์ํ๋ ํ ์คํ์ ์ ์ฅ๋ ์ฃผ์ ์์น๋ก ๋ค์ ๋์์ ์ฝ๋๋ฅผ ๊ณ์ ์ํํ๋ค.
ex) A๋ผ๋ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ ๋์ค ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ์ํฉ
A๋ ํ์ฌ ์ํ ์ค์ธ ๋ช ๋ น์ ์์น๋ฅผ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค ์ ์ด๋ธ๋ก(PCB)์ ์ ์ฅํ๋ค.
PCB(Proccess Control Block)
- PCB๋ ๊ฐ๊ฐ์ ํ๋ก๊ทธ๋จ๋ง๋ค ํ๋์ฉ ์กด์ฌํ๋ฉฐ ํด๋น ํ๋ก๊ทธ๋จ์ ์ด๋ ๋ถ๋ถ์ด ์คํ ์ค์ด์๋์ง ์ ์ฅํ๊ณ ์์ (๋ฉ๋ชจ๋ฆฌ ์ฃผ์, ๋ ์ง์คํฐ๊ฐ, ํ๋์จ์ด ์ํ ๋ฑ.
- ์ด์์ฒด์ ๊ฐ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋น ์ ์งํ๋ ์ ๋ณด
2. ์ปดํจํฐ ์์คํ ์ ์๋ ๊ฐ์
ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC) : CPU๊ฐ ์ํํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ์ง์คํฐ
CPU๋ ๋งค๋ฒ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(PC)๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์น์ ๋ช ๋ น์ ์ฒ๋ฆฌํจ
๋ฉ๋ชจ๋ฆฌ์๋ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ๋ค๊ณผ ์ด์์ฒด์ ๊ฐ ๊ฐ์ด ์ฌ๋ผ๊ฐ ์๋ค.
- ์ปค๋๋ชจ๋(kernel mode) : pc๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ค ์ด์์ฒด์ ๊ฐ ์กด์ฌํ๋ ๋ถ๋ถ์ ๊ฐ๋ฆฌํค๊ณ ์์
- ์ฌ์ฉ์๋ชจ๋(user mode) : pc๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ค ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์กด์ฌํ๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์
- ์ผ๋ฐ๋ช ๋ น : ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด ์ํํ ์ ์๋ ๋ช ๋ น(๋ฉ๋ชจ๋ฆฌ์์ ์๋ฃ๋ฅผ ์ฝ์ด์ cpu์์ ๊ณ์ฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๋ ์ผ๋ จ์ ๋ช ๋ น)
- ํน๊ถ๋ช ๋ น : ์ด์์ฒด์ ๋ง ์ํํ ์ ์๋ ๋ช ๋ น(๋ณด์์ด ํ์ํ ๋ช ๋ น์ผ๋ก ์ ์ถ๋ ฅ ์ฅ์น, ํ์ด๋จธ ๋ฑ ๊ฐ์ข ์ฅ์น์ ์ ๊ทผํ๋ ๋ช ๋ น)
Mode bit
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ์ฅ์น(ํ๋์จ์ด์ ๊ตฌํ)
์ผ๋ฐ๋ช
๋ น๊ณผ ํน๊ถ๋ช
๋ น์ ๊ตฌ๋ถํ๊ฒ ๋์์ค๋ค
์์คํ
์ฝ(system call)
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๊ฒ ํน๊ถ๋ช
๋ น์ ๋ํ์ ์์ฒญํ๋ ๊ฒ
3. ํ๋ก๊ทธ๋จ์ ์คํ
ํ๋ก์ธ์ค(process) : ํ์ฌ ์ํ ์ค์ธ ํ๋ก๊ทธ๋จ
- ์ปค๋์ ์คํ์ ์ผ๋ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์คํ๊ณผ ๋ฌ๋ฆฌ ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์ค ๋ง๋ค ๋ณ๋์ ์คํ์ ๋์ด ๊ด๋ฆฌํ๋ค
- PCB : ์ด์์ฒด์ ๊ฐ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋น ์ ์งํ๋ ์ ๋ณด
โ ์ฃผ์ํด์ผ ํ ์ฌํญ
ํ๋ก๊ทธ๋จ ๋ด์ ํจ์ํธ์ถ ์ : ํด๋น ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ณต๊ท ์ฃผ์๋ฅผ ์ ์ฅ
์์คํ ์ฝ์ด๋ ์ธํฐ๋ฝํธ ๋ฐ์์ผ๋ก CPU์ ์ํ ์ฃผ์ฒด๊ฐ ์ด์์ฒด์ ๋ก ๋ฐ๋๋ ์๊ฐ : ์คํ์ด ์๋ PCB์ ๋ณต๊ท ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค!
4. ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ํจ์
์ฌ์ฉ์ ์ ์ํจ์
ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ์์ฑํ ํจ์
ํจ์ํธ์ถ ์ ์์ ์ ์ฃผ์ ๊ณต๊ฐ์ ์๋ ์คํ์ ์ฌ์ฉ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์
ํ๋ก๊ทธ๋๋จธ ๋ณธ์ธ์ด ์ง์ ์์ฑํ์ง๋ ์์์ง๋ง ์ด๋ฏธ ๋๊ตฐ๊ฐ๊ฐ ์์ฑํด๋์ ํจ์๋ฅผ ํธ์ถ๋ง ํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
ํจ์ํธ์ถ ์ ์์ ์ ์ฃผ์ ๊ณต๊ฐ์ ์๋ ์คํ์ ์ฌ์ฉ
์ปค๋ํจ์
์์คํ ์ฝ ํจ์์, ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ํจ์
์ด์์ฒด์ ์ปค๋์ ์ฃผ์ ๊ณต๊ฐ์ ์ฝ๋๊ฐ ์ ์๋๋ค.
5. ์ธํฐ๋ฝํธ
์์น์ ์ผ๋ก๋ ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ ์ค์ ๋๋ค๋ฅธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ์ฉํ์ง ์๋๋ค.
(๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ์ ์ง๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ)
but
์ธํฐ๋ฝํธ๋ง๋ค ์ค์๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ ์๋์ ์ผ๋ก ๋ฎ์ ์ค์๋๋ฅผ ๊ฐ์ง ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ค ์ค์๋๊ฐ ๋ ๋์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ํ๋ฝํ ํ์๊ฐ ์๋ค.
6. ์์คํ ์ฝ (์ํํธ์จ์ด ์ธํฐ๋ฝํธ = ํธ๋ฉ)
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๊ฒ I/O๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ ์ธํฐ๋ฝํธ
์ผ๋ฐ ํจ์ํธ์ถ๊ณผ๋ ์์ดํ ๋ฐฉ๋ฒ์ ์ฌ์ฉ : ํ๋ก๊ทธ๋จ ์์ ์ด ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํฐ๋ฝํธ๋ฅผ ์ธํ ํ๋ ๋ช ๋ น์ ํตํด ์ด๋ฃจ์ด์ง
ํ๋ก๊ทธ๋จ์ด ์ค์ค๋ก ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๋ค๋ ์ ๋ง ๋ค๋ฅผ ๋ฟ ์ผ๋ฐ์ ์ธ ์ธํฐ๋ฝํธ์ ๋ฐ์๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ด๋ค.
๐กํ๋์จ์ด ์ธํฐ๋ฝํธ
์ผ๋ฐ์ ์ผ๋ก ๋งํ๋ ์ธํฐ๋ฝํธ, ํ๋์จ์ด๊ฐ ๋ฐ์์ํจ ์ธํฐ๋ฝํธ
๐ก ์ํํธ์จ์ด ์ธํฐ๋ฝํธ(ํธ๋ฉ,Trap)
Exception : ํ๋ก๊ทธ๋จ์ด ์ค๋ฅ๋ฅผ ๋ฒํ ๊ฒฝ์ฐ
System call : ํ๋ก๊ทธ๋จ์ด ์ปค๋ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ
ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๋นผ์๊ธฐ๋ ๊ฒฝ์ฐ ๋ ๊ฐ์ง
- ํ์ด๋จธ ์ธํฐ๋ฝํธ : ํน์ ํ๋ก๊ทธ๋จ์ ์ํด CPU๊ฐ ๋ ์ ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ธํฐ๋ฝํธ, ์๋ถํ ์์คํ ์ ๊ตฌํ์ ์ํ ํ์์ ์์ (ํ์ด๋จธ๋ HW์ด๋ค)
- ์ ์ถ๋ ฅ์ ์์ฒญ์ ์ํ ์์คํ ์ฝ : ์ ์ถ๋ ฅ ์์ฒญ์ ์ํด ์์คํ ์ฝ์ ํ๋ ๊ฒฝ์ฐ, CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ด์ํ๊ฒ ๋๋ค.(๊ธฐ๋ค๋ฆฌ๋ฉด ๋นํจ์จ์ ์์ ํ์ฉ)
7. ํ๋ก์ธ์ค์ ๋ ๊ฐ์ง ์คํ ์ํ
- ์ฌ์ฉ์๋ชจ๋์์์ ์คํ ์ํ : ์ฌ์ฉ์ ์ ์ํจ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์
- ์ปค๋๋ชจ๋์์์ ์คํ ์ํ : ์ ์ถ๋ ฅ ์์คํ ์ฝ
์์คํ ์ฝ์ ํตํด ์คํ๋๋ ๊ฒ์ด ํ๋ก์ธ์ค A์ ์ฝ๋๊ฐ ์๋ ์ด์์ฒด์ ์ปค๋์ ์ฝ๋์ด์ง๋ง, ์์คํ ์ฝ์ด ์ํ๋๋ ๋์ ์ปค๋์ด ์คํ์ํ์ ์๋ค๊ณ ํ์ง ์๊ณ ํ๋ก์ธ์ค A๊ฐ ์คํ ์ํ์ ์๋ค๊ณ ๋งํ๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํ์ด ๋๋ ๋์๋ ์ปค๋๋ชจ๋๋ก ์ง์ ํด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค!
'๐์ปดํจํฐ๊ณผํ:CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ]6์ฅ. cpu์ค์ผ์ค๋ง (2) | 2024.01.16 |
---|---|
[์ด์์ฒด์ ]5์ฅ - ํ๋ก์ธ์ค ๊ด๋ฆฌ (1) | 2024.01.05 |
[์ด์์ฒด์ ]3์ฅ-์ปดํจํฐ ์์คํ ์ ๋์ ์๋ฆฌ (0) | 2023.06.20 |
[์ด์์ฒด์ ]2์ฅ-์ด์์ฒด์ ๊ฐ์ (0) | 2023.06.20 |
[์ด์์ฒด์ ]1์ฅ-์ปดํจํฐ ๋ฐ ์ ๋ณด๊ธฐ์ ์ ์ญ์ฌ (0) | 2023.06.20 |