[OS] Process๋ ๋ฌด์์ด๊ณ , Thread์์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น?
by rlaehddnd0422ํ๋ก์ธ์ค๋?
- ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋งํฉ๋๋ค.
- ๋์คํฌ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด CPU๋ก๋ถํฐ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ํ ๋น์ ๋ฐ์ ์ ์์ต๋๋ค.
- ์ด์์ฒด์ ๋ก๋ถํฐ ์ฃผ์ ๊ณต๊ฐ, ํ์ผ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ํ ๋น๋ฐ๋๋ฐ ์ด๋ฅผ ์ด์นญํ์ฌ ํ๋ก์ธ์ค๋ผ๊ณ ํฉ๋๋ค.
ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ?
"ํ๋ก๊ทธ๋จ"์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น(SSD, ํ๋๋์คํฌ)์ ์กด์ฌํ๋ฉฐ ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ช ๋ น์ด์ ์ ์ ์ธ ๋ฐ์ดํฐ์ ๋ฌถ์์ ๋๋ค. ์ฆ ํ๋ก๊ทธ๋จ์ ๋จ์ํ ๋ช ๋ น์ด์ ๋ฐ์ดํฐ์ ๋ฌถ์์ผ ๋ฟ, ์๋ช ์ ๊ฐ์ง๊ณ ์์ง์์ต๋๋ค.
์ด ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ์ ์ ๋ฐ์ดํฐ๊ฐ "๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ"๋๋ ์๊ฐ ์๋ช ์ด ์๋ ํ๋ก์ธ์ค๊ฐ ๋๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ์ ์ ๋ฐ์ดํฐ --- (๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ) ---> ํ๋ก์ธ์ค
ํ๋ก์ธ์ค์ ๊ตฌ์ฑ
: ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ ํ๋ก์ธ์ค ์ ์ด๋ธ๋ก, PCB(Process Control Block)๋๋ ํ๋ก์ธ์ค ๊ธฐ์ ์(Process Descriptor)๋ผ๊ณ ๋ถ๋ฅด๋ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ๋ฉ๋๋ค. ๋๋ถ๋ถ PCB๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ PCB์๋ ์๋์ ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ๋์์ ๊ณ ์ ํ PCB ๋ฅผ ์์ฑํฉ๋๋ค..
1) PID
- ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ณํ ์ ์๋ ์๋ณ ๋ฒํธ
2) ํ๋ก์ธ์ค ์ํ
- new, ready, running, waiting, terminated ๋ฑ์ ์ํ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ํ๋ก์ธ์ค๋ค์ ์ํ ์ ์ด๋ฅผ ํตํด ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
3) ์ค์ผ์ค๋ง ์ฐ์ ์์
์ด์์ฒด์ ๋ ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ํ์์ ์ ๊ณตํฉ๋๋ค.
- ์ด์์ฒด์ ๊ฐ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ CPU์์ ์คํ๋๋ ์์๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ์ค์ผ์ฅด๋ง์ด๋ผ๊ณ ํฉ๋๋ค.
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ ๋จผ์ ์คํ๋ ์ ์์ต๋๋ค.
4) ๊ถํ
- ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํ ์ ์๋ ์์์ ๊ฒฐ์ ํ๋ ์ ๋ณด
5) ํ๋ก์ธ์ค์ ๋ถ๋ชจ์ ์์ ํ๋ก์ธ์ค
- ์ต์ด๋ก ์์ฑ๋๋ int ํ๋ก์ธ์ค๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ํ๋ก์ธ์ค๋ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ฅผ ๋ณต์ ํด์ ์์ฑ๋๊ณ ์ด ๊ณ์ธต ๊ตฌ์กฐ๋ ํธ๋ฆฌ ํํ๋ก ๋์ด ์์ต๋๋ค.
- ๊ฐ ํ๋ก์ธ์ค๋ ์์ ํ๋ก์ธ์ค์ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์
6) ํ๋ก์ธ์ค์ "๋ฐ์ดํฐ์ ๋ช ๋ น์ด"๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ
- ํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ ๋ํ ์ ๋ณด๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ง๋ ์์ ๋ง์ ์ฃผ์ ๊ณต๊ฐ์ ์ ์ฅ์ด ๊ณต๊ฐ์ ๋ํ ํฌ์ธํฐ ๊ฐ์ ๋งํฉ๋๋ค.
์ด ์ฃผ์๊ณต๊ฐ์ Text, Data, BSS, Heap, Stack ์์ญ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ ์์ญ์์ ํ๋ก๊ทธ๋จ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์์ต๋๋ค.
์คํ์ ํ ์ฌ์ด์ ๋น ๊ณต๊ฐ์๋ ์ปดํ์ผ ๋จ๊ณ์์ ์ง์ญ ๋ณ์๋ฅผ ์ผ๋ง๋ ์ฌ์ฉํ ์ง ๋ฏธ๋ฆฌ ๊ณ์ฐํ ์ ์๊ธฐ ๋๋ฌธ์,
๋ฐํ์์์ ์ง์ญ๋ณ์ ์ ์ธ ์์์ ๋ฐ๋ผ ์คํ์์ญ์ ์์ชฝ์ผ๋ก ์ฃผ์๊ฐ์ ๋งค๊ธฐ๊ณ , ๋์ ํ ๋น ์ ํ์์ญ์ ์๋์ชฝ์ผ๋ก ์ฃผ์๊ฐ์ ๋งค๊น๋๋ค.
7 ) ํ๋ก์ธ์ค์ ํ ๋น๋ ์์๋ค์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ
- ๋ง ๊ทธ๋๋ก ํ ๋น๋ ์์๋ค์ด ์กด์ฌํ๋ ๊ณต๊ฐ์ ๋ํ ํฌ์ธํฐ ๊ฐ
8) ํ๋ก๊ทธ๋จ ์นด์ดํฐ (PC)
- CPU๊ฐ ๋ค์์ผ๋ก ์คํํ ๋ช ๋ น์ด๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ
- CPU๋ ๊ธฐ๊ณ์ด๋ฅผ ํ ๋จ์๋ก ์ฝ์ด์ ์ฒ๋ฆฌํ๋๋ฐ, ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํด ๋ค์์ผ๋ก ์คํํ ๊ธฐ๊ณ์ด๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ
์ด๋ป๊ฒ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋ ์ ์์๊น?
ํ๋์ CPU๋ ํ ์๊ฐ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์คํํ ์ ์์ต๋๋ค. ์ธ๋ป ๋ณด๋ฉด ์์ฒ๋ผ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๊ณ ์๋๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง, ์์ฒญ๋๊ฒ ๋น ๋ฅธ์๋๋ก CPU๊ฐ ์คํํ ํ๋ก์ธ์ค๋ฅผ ๊ต์ฒดํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๋ ๋(Thread)๋?
์ฐ๋ ๋๋ ์์์ ๋งํ "ํ๋ก์ธ์ค"์ ์คํ๋จ์์ ๋๋ค.
ํ๋ก์ธ์ค : ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์คํ
์ค๋ ๋ : ๋์ผํ ํ๋ก์ธ์ค ๋ด์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์คํ
- ํ ํ๋ก์ธ์ค ๋ด์์ ๋์๋๋ ์ฌ๋ฌ ์คํ ํ๋ฆ์ผ๋ก ํ๋ก์ธ์ค ๋ด์ ์ฃผ์ ๊ณต๊ฐ์ด๋ ์์์ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ํ๋ก์ธ์ค์๋ ํ ๊ฐ ์ด์์ ์ฐ๋ ๋๊ฐ ์กด์ฌํ์ฌ ์์ ์ ์ํํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ํ๋์ ํ๋ก๊ทธ๋จ์ ํ๋์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ํ๋ก๊ทธ๋จ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค์์ ์ฐ๋ ๋๋ฅผ ๊ฐ์ง๊ณ ๋์์ ์คํํ ์ ์์ผ๋ฉฐ ์ด๋ฌํ ๋์ ๋ฐฉ์์ "๋ฉํฐ ์ฐ๋ ๋ฉ"์ด๋ผ๊ณ ํฉ๋๋ค.
- ํ๋ก์ธ์ค์ ๊ฐ์ด ์คํ, ์ค๋น, ๋๊ธฐ ๋ฑ์ ์คํ ์ํ๋ฅผ ๊ฐ์ง๋ฉฐ ์คํ ์ํ๊ฐ ๋ณํ ๋๋ง๋ค ์ฐ๋ ๋ ๋ฌธ๋งฅ๊ตํ(context switching)์ ์ํํฉ๋๋ค.
- ๊ฐ ์ฐ๋ ๋๋ณ๋ก ์์ ๋ง์ ๋ ๋ฆฝ๋ ์คํ๊ณผ ๋ ์ง์คํฐ๋ฅผ ๊ฐ์ง๋๋ค.
- ์คํ์ ํจ์ ํธ์ถ ์ ์ ๋ฌ๋๋ ์ธ์, ๋๋์๊ฐ ์ฃผ์๊ฐ ๋ฐ ํจ์ ๋ด์์ ์ ์ธํ๋ ๋ณ์ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด๋ฏ๋ก ์คํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ ๋ฆฝ์ ์ด๋ผ๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ธ ํจ์ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๊ณ ์ด๋ ๋ ๋ฆฝ์ ์ธ ์คํ ํ๋ฆ์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๋ฐ๋ผ์ ๋ ๋ฆฝ์ ์ธ ์คํ ํ๋ฆ์ ์ํ ์ต์ ์กฐ๊ฑด์ผ๋ก ๋ ๋ฆฝ๋ ์คํ์ ํ ๋นํฉ๋๋ค.
<์ฐธ๊ณ ์๋ฃ>
'๐ CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ๋ฉํฐํ๋ก์ธ์ค์ ๋ฉํฐ ์ค๋ ๋์ ์ฐจ์ด์ ์ฅ/๋จ์ (0) | 2024.05.21 |
---|---|
[OS] Process์ ๋ํด ์์๋ณด์. (0) | 2024.05.17 |
[OS] ๋ฉ๋ชจ๋ฆฌ 4 ๊ณ์ธต ๊ตฌ์กฐ / ๋ ์ง์คํฐ, ์บ์, ์ฃผ๊ธฐ์ต์ฅ์น, ๋ณด์กฐ๊ธฐ์ต์ฅ์น (0) | 2024.05.17 |
[OS] ์ธํฐ๋ฝํธ์ ์ข ๋ฅ์ ์ฒ๋ฆฌ๊ณผ์ (0) | 2024.04.02 |
[OS] ์ด์์ฒด์ ์ ์ญํ , ๊ตฌ์กฐ (0) | 2023.08.13 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422