- ํ๋ก์ธ์ค
: ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ
: ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค - ์ฌ์ฉ์๊ฐ ๋ณด๋ ์์์ ์คํ๋๋ ํ๋ก์ธ์ค
: ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค - ์ฌ์ฉ์๊ฐ ๋ณด์ง ๋ชปํ๋ ๋ค์์ ์คํ๋๋ ํ๋ก์ธ์ค (์ ๋์ค - ๋ฐ๋ชฌ, ์๋์ฐ - ์๋น์ค)
- ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก (PCB)
: OS๋ PCB๋ฅผ ์ด์ฉํด ํ๋ก์ธ์ค์ ์คํ ์์๋ฅผ ๊ด๋ฆฌํ๊ณ CPU๋ฅผ ๋น๋กฏํ ์์์ ๋ฐฐ๋ถํจ
: PCB๋ ์ปค๋์์ญ, ํ๋ก์ธ์ค ์์ฑ ์ ๋ง๋ค์ด์ง๋ฉฐ ์คํ์ด ๋๋๋ฉด ํ๊ธฐ๋จ
: ๋ค์ ์ ๋ณด๋ค์ ๋ด๊ณ ์๋ค
1) ํ๋ก์ธ์ค ID (PID) : ํน์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ธฐ ์ํ ๊ณ ์ ๋ฒํธ
2) ๋ ์ง์คํฐ ๊ฐ : ํด๋น ํ๋ก์ธ์ค๊ฐ ์คํํ๋ฉฐ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ฅผ ๋น๋กฏํ ๋ ์ง์คํฐ ๊ฐ๋ค์ ์ ์ฅํจ.
3) ํ๋ก์ธ์ค ์ํ : ๋ฐ์์ ๋ค๋ฃธ
4) CPU ์ค์ผ์ค๋ง ์ ๋ณด : ํ๋ก์ธ์ค๊ฐ ์ธ์ , ์ด๋ค ์์๋ก CPU๋ฅผ ํ ๋น๋ฐ์์ง์ ๋ํ ์ ๋ณด
5) ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด : ํ๋ก์ธ์ค๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์์น๊ฐ ๋ฌ๋ผ ์ฃผ์์ ๋ํ ์ ๋ณด์ ํ์ด์ง ํ ์ด๋ธ์ด ๋ด๊น
6) ์ฌ์ฉํ ํ์ผ๊ณผ ์ ์ถ๋ ฅ์ฅ์น ๋ชฉ๋ก
- ๋ฌธ๋งฅ ๊ตํ
: ๋ฌธ๋งฅ(Context) - ํ๋์ ํ๋ก์ธ์ค ์ํ์ ์ฌ๊ฐํ๊ธฐ ์ํด ๊ธฐ์ตํด์ผ ํ ์ ๋ณด
: ๋ฌธ๋งฅ๊ตํ (Context Switching) : ๊ธฐ์กด ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ์ PCB์ ๋ฐฑ์ ํ๊ณ , ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํ ๋ฌธ๋งฅ์ PCB๋ก ๋ถํฐ ๋ณต๊ตฌํ์ฌ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ (๋๋ฌด ์์ฃผํ๋ฉด ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์)
- ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ
1) ์ฝ๋ ์์ญ(=ํ ์คํธ ์์ญ) : ๊ธฐ๊ณ์ด๋ก ์ด๋ฃจ์ด์ง ๋ช ๋ น์ด ์ ์ฅ, ์ฝ๊ธฐ ์ ์ฉ(read-only) ๊ณต๊ฐ
2) ๋ฐ์ดํฐ ์์ญ : ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ ์งํ ๋ฐ์ดํฐ ์ ์ฅ(์ ์ญ๋ณ์ ๋ฑ)
3) ํ ์์ญ : ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ์ฌ๋์ด ์ง์ ํ ๋นํ ์ ์๋ ๊ณต๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฌธ์ ์ฃผ์
4) ์คํ ์์ญ : ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๊ณต๊ฐ
- ํ๋ก์ธ์ค ์ํ
1) ์์ฑ ์ํ(new) : ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด PCB๋ฅผ ํ ๋น๋ฐ์ ์ํ
2) ์ค๋น ์ํ(ready) : CPU๋ฅผ ํ ๋น๋ฐ์ ์คํํ ์ ์์ง๋ง, ์์ง ์์ ์ ์ฐจ๋ก๊ฐ ์๋๊ธฐ์ ๋๊ธฐ ์ค
(์ค๋น ์ํ์ธ ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ๋ก ์ ํ๋๋ ๊ฒ์ ๋์คํจ์น๋ผ ํจ)
3) ์คํ ์ํ(running) : CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ ์ค์ธ ์ํ๋ฅผ ์๋ฏธ
4) ๋๊ธฐ ์ํ(blocked) : ์ ์ถ๋ ฅ์ฅ์น์ ์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
5) ์ข ๋ฃ ์ํ(terminated) : ํ๋ก์ธ์ค ์ข ๋ฃ ์ํ, PCB์ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ ์ ๋ฆฌ
- ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ
: ํ๋ก์ธ์ค๋ ์คํ ๋์ค ์์คํ ํธ์ถ์ ํตํด ๋ค๋ฅธ ํ๋ก์ธ์ค ์์ฑ ๊ฐ๋ฅ -> ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ํ๋ก์ธ์ค = ๋ถ๋ชจ ํ๋ก์ธ์ค, ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์ํด ์์ฑ๋ ํ๋ก์ธ์ค = ์์ ํ๋ก์ธ์ค
: ๋ค๋ฅธ ํ๋ก์ธ์ค์์ผ๋ก PID๋ ๋ค๋ฆ. (์ผ๋ถ ์ด์์ฒด์ ์์ ๋ถ๋ชจ ํ๋ก์ธ์ค์ PID์ธ PPID๊ฐ ๊ธฐ๋ก๋๊ธฐ๋)
: ์ต์ด ํ๋ก์ธ์ค PID๋ ํญ์ 1๋ฒ
- ํ๋ก์ธ์ค ์์ฑ
: ๋ถ๋ชจ ํ๋ก์ธ์ค๋ฅผ ํตํด ์์ฑ๋ ์์ ํ๋ก์ธ์ค๋ค์ fork()๋ฅผ ํตํด ์์ ์ ๋ณต์ฌ๋ณธ์ ์์ ํ๋ก์ธ์ค๋ก ์์ฑํ๊ณ , ์์ ํ๋ก์ธ์ค๋ exec๋ฅผ ํตํด ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ต์ฒดํจ.
: fork์ exec๋ system call.
1) fork : ์๊ธฐ ์์ ํ๋ก์ธ์ค์ ๋ณต์ฌ๋ณธ์ ๋ง๋ฆ, PID๊ฐ์ด๋ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ ๋ค๋ฆ
2) exec : ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ก์ด ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฎ์ด์ (์๋ก์ด ํ๋ก๊ทธ๋จ์ผ๋ก ์ ํํด ์คํํ๋ ์์คํ ํธ์ถ)
=> forkํ ํ exec๋ฅผ ์คํํ์ง ์๋ ๊ฒฝ์ฐ : ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์์ ํ๋ก์ธ์ค๋ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณํํ๋ฉฐ ์คํํ๋ ํ๋ก์ธ์ค๊ฐ ๋จ.
- ์ค๋ ๋(thread)
: ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์คํ์ ๋จ์๋ก ํ๋์ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์. (ํ๋์ ์ค๋ ๋์์ ์ฌ๋ฌ ๋ถ๋ถ์ ๋์์ ์คํ ๊ฐ๋ฅ)
* ์ ์ฌ์ง์ ๋ณผ ์ ์๋ค์ํผ ํ๋ก์ธ์ค์ ์ค๋ ๋๋ ํ์ํ ์ต์ํ์ ์ ๋ณด(ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๋ฑ์ ๋ ์ง์คํฐ, ์คํ)๋ง์ ์ ์งํ ์ฑ ํ๋ก์ธ์ค ์์์ ๊ณต์ ํ๋ฉฐ ์คํ๋๋ค -> ์ฝ๋/๋ฐ์ดํฐ/ํ ์์ญ/ ํ์ผ
- ๋ฉํฐํ๋ก์ธ์ค์ ๋ฉํฐ์ค๋ ๋
: ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ๋ ๊ฒ์ ๋ฉํฐํ๋ก์ธ์ค, ์ฌ๋ฌ ์ค๋ ๋๋ก ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ๋ ๊ฒ์ ๋ฉํฐ์ค๋ ๋๋ผ ํจ
: ๋ฌด์์ด ๋ค๋ฅธ๊ฐ? -> ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ๊ณต์ ํ์ง ์๊ณ ๋ชจ๋ ์์์ด ๋ณต์ ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ค. (PID์ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ ์ธ) -> ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น
: ๋ฉํฐ์ค๋ ๋์์ ํ๋์ ํ๋ก์ธ์ค์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํ๋ก์ธ์ค ์ ์ฒด์ ๋ฌธ์ ๊ฐ ์๊ธธ ์๋ ์์
'๐ค Study > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[06] ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ (1) | 2024.03.28 |
---|---|
[05] ๊ต์ฐฉ ์ํ (0) | 2024.03.25 |
[04] ํ๋ก์ธ์ค ๋๊ธฐํ (0) | 2024.03.24 |
[03] CPU ์ค์ผ์ค๋ง (0) | 2024.03.19 |
[01] ์ด์์ฒด์ ์ ์์ (0) | 2024.03.13 |