์ค๋์, ํ๋ก์ธ์ค์ ๊ฐ๋ ๊ณผ ํ๋ก์ธ์ค์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ๋ฑ์ ์์๋ณด๊ณ
์ฐ๋ ๋์ ๊ดํด์๋ ํ ๋ฒ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด์.
Process(ํ๋ก์ธ์ค)๋?
---> ํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ด๋ค.(๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋ ํํ)
๋ํ ํ๋ก์ธ์ค๋ ๊ณ์ธต์ ์ด๋ค. (๋ถ๋ชจ ์์์ด ์กด์ฌ)
๋ง์ฝ, ์ฌ์ฉ์๊ฐ ๋ฐฐ๊ฒฝํ๋ฉด์ ์๋ ์์ด์ฝ์ ์คํํ๊ธฐ ์ํด ๋๋ธ ํด๋ฆญ์ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
๊ทธ๋ฌ๋ฉด ์ฒซ๋ฒ์งธ๋ก ํ๋๋์คํฌ์ ์๋ ์คํ ํ๋ก๊ทธ๋จ์ด ๋ณํ๋ก๋๋ฅผ ํตํด ํ๋ก์ธ์ค๋ก ๋ณํ์ด ๋๋ค.
๊ทธ ํ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ์ ํ๋ ๋ฐฉ์์ด๋ค.
์ด๋ ๊ฒ ํ๋ก์ธ์ค๋ก ๋ณํํ๋ ๊ณผ์ ์์ PCB๋ผ๋ ๊ฒ์ด ์์ฑ์ด ๋๋๋ฐ PCB๋ ํ๋ก์ธ์ค์ ์ ๋ณด๋ค์ด๋ผ๊ณ
์๊ฐํ๋ฉด ํธํ๋ค. ๊ทธ์ ๋์์ ์ฌ๋ถ์ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์ด Swap ํ ์ ์๋๋ก ์ค๋นํด๋๋๋ค.
๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค๋ค์ด ๊ฝ ์ฐจ๊ฒ ๋๋ฉด, ๋น์ฅ ํ์์๋ ํ๋ก์ธ์ค๋ค์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ Swap์ผ๋ก ์ฎ๊ฒจ๋๋๊ฒ์ด๋ค.
PCB์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ด๋ฌํ ํ๋ก์ธ์ค๋ค์ ์ฌ๋ฌ๊ฐ ํ ๋ฒ์ ์ด์ฉํ๋ ๊ฒ์
๋ฉํฐ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค์ ๋ถ๋ฅ
1. ์์คํ (์ปค๋) ํ๋ก์ธ์ค : ์ด์์ฒด์ ๋ถํ ํ ๋ ์์ฑ์ด ๋๋ค
2. ์ฌ์ฉ์ ํ๋ก์ธ์ค : ์์ด์ฝ ๋๋ธํด๋ฆญ ์ ์๊ธฐ๋ ํ๋ก์ธ์ค๋ค์ด๋ค
3. ๋ณํ ํ๋ก์ธ์ค : ํ๋ก์ธ์ค๊ฐ 2๊ฐ ๋์์ ์คํ๋๋ ๊ฒ์ด๋ค.
ํ๋ก์ธ์ค์ ์ํ ๋ณ์ด
์ด๋ฒ์ ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ์๋์ ๋ด๋ถ์ ์ผ๋ก ํ๊ณ ์๋์ง๋ฅผ ์์๋ณด์.
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ์์ด์ฝ์ ๋๋ธํด๋ฆญ์ ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์์ฑ์ด ๋๋ฉด ์ฐ์ "์์ฑ ์ํ"๋ก ๋ค์ด๊ฐ๊ฒ ๋๋๋ฐ
๊ทธ ๋์์ ํ๋ก์ธ์ค๊ฐ ์์ฑ์ด ๋๋ฉด์ PCB๋ฅผ ๊ฐ์ด ์์ฑํ๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฉด ์์ฑ๋ ํ๋ก์ธ์ค๋ค์ Ready Q๋ผ๋ ํ์ ์์ด๊ฒ ๋๋ค(๋จ, ํ๋ก์ธ์ค๊ฐ ์๋๋ผ PCB๊ฐ ์์ด๋ ๊ฒ์).
๊ทธ๋ฌ๋ฉด ๋์คํจ์ฒ๋ผ๋ ์ค์ผ์ค๋ฌ๊ฐ CPU๋ก ํ๋ก์ธ์ค๋ฅผ ๋ณด๋ด์ฃผ๋ ์ญํ ์ ํ๋๋ฐ CPU๋ ํ ๊ฐ์ด๊ธฐ ๋๋ฌธ์
์์๋๋ก ์ฐ์ ์์(์ ๋์ค,๋ฆฌ๋ ์ค์์ nice value๊ฐ ์ฐ์ ์์ ์กฐ์ ํด์ค)์ ๋ง๊ฒ CPU๋ก ์ ๋ฌํด์ฃผ๋ ์ญํ ์ ํ๋ค.
๊ทธ๋ ๊ฒ ์คํ์ํ๊ฐ ๋ PCB๋ ์คํ์ด ๋๊ณ ์๋ฃ๊ฐ ๋๋ฉด PCB๊ฐ ์ญ์ ๋๊ณ ์๋ฃ ์ํ๊ฐ ๋๋ค.
ํ์ง๋ง, ์คํ์ํ์์ ์๊ฐ์ด ๋๋ฌด ์ง์ฒด๋๋ ๋ฐ๋์ ํ์ ์์์ด ๋๋ฉด, ๋ค์ ์ค๋น์ํ ์ฆ, Ready Q๋ก ๋์์ค๊ฒ ๋๋ฉฐ
๋งจ ๋ค๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ์์์์ด ๋ง์ด ์ผ์ด๋๋ฉด ์ํด์ธ ๊ฒ์ด๋ค.
๋ํ, ๋๊ธฐ ์ํ ์ฆ, ๋ณด๋ฅ๋ก ์ค๋จ ์ํฌ ์๋ ์๋ค.
ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ ๊ตํ
ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ๊ตํ์ ํ๋ก์ธ์ค๊ฐ 2๊ฐ ์ด์์ผ ๋ ๋ฐ์ํ๋ ๊ตํ์ด๋ค.
์ฆ, ๋ฉํฐ ํ๋ก์ธ์ค ์์คํ ์ด๋ผ๋ ๊ฒ์ด๋ค.
1. ํ๋ก์ธ์ค 1์ด ์คํ๋๋ค๊ฐ ํ์์์์ด ๋์ด์ ์ค๋จ๋๋ค.
2. ํ๋ก์ธ์ค1์ ์ํ๋ฅผ PCB1์ ์ ์ฅํ๊ณ (CPU๊ฐ ์คํํจ), PCB2์์ ํ๋ก์ธ์ค2์ ์ํ๋ฅผ ๊ฐ์ ธ์จ๋ค.
3. ํ๋ก์ธ์ค2๋ฅผ ์คํํ๋ค๊ฐ ํ์์์์ด ๋๋ฉด ํ๋๊ฑธ ์ ์ฅํ๊ณ ๋ค์ ํ๋ก์ธ์ค1๋ก ๋ณํํ๋ค.
์ด๊ฒ์ด ๋ฌธ๋งฅ๊ตํ์ด๋ค. ํ์ง๋ง ์ด๋ฌํ ๊ตํ์ ํ์๊ฐ ๋ง์์ง๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
*** CPU๊ฐ ์๋ ํด์ผํ ์ผ์ธ ์คํ, ์ค๋น ๋ฑ๋ฑ์ ๋ฌธ๋งฅ๊ตํ๊น์ง ํ๋ฉด ์๊ฐ์ด ๋น์ฐํ ์ค์ด๋ค์ผ๋ ์ฑ๋ฅ๋ ์ ํ๋๋ค.
Thread(์ฐ๋ ๋)๋?
--->
ํ๋ก๊ทธ๋จ ๋ช ๋ น์ ์คํํ๋ ํ๋ก์ธ์ค ๋ด์ ๊ฐ์ฒด์ด๋ค.
์ฐ๋ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๋๋, ์ ์ญ ๋ฐ์ดํฐ, ํ์ ๊ณต๋์ผ๋ก ์ฌ์ฉํ๋ค.
์ฆ, ๊ฐ ์ฐ๋ ๋๋ฅผ ๊ตฌ๋ถ์์ผ์ฃผ๋ ์์๋, ์ฐ๋ ๋์ ์คํ ํ๊ฒฝ์ ๋ณด๋, ์ง์ญ ๋ฐ์ดํฐ ๊ทธ๋ฆฌ๊ณ ์คํ ๋ด์ ์๋ ์ ๋ณด๋ค์ด๋ค.
์ฆ, ๊ฐ์ ํ๋ก์ธ์ค ๋ด๋ถ์ ์๋ ์ฐ๋ ๋๋ค์ ๋์ผํ ์ฃผ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค๋ ์๋ฏธ์ด๋ค.
*** ์ฐ๋ ๋๋ ๋ณ๋ ฌ์ํ์ ํ๊ธฐ๋ ํ๋๋ฐ, ํ๋ก์ธ์ค๊ฐ ํ๋์ธ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์์์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ๋ถ๋ถ์
๋์์ ์คํํ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ์ฐ๋ ๋๋ฅผ ๋ณ๋ ฌ์ํ์ ํ๋ฉด ์ข์ ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ฌ์ฉ์ ์๋ต์ฑ ์ฆ๊ฐ
2. ํ๋ก์ธ์ค์ ์์๊ณผ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๊ฐ๋ฅ
3. ๊ฒฝ์ ์ฑ์ด ์ข์
4. ๋ค์ค์ฒ๋ฆฌ๋ก ์ฑ๋ฅ๊ณผ ํจ์จ ํฅ์
๋ค์์, ๋ค์ค ์ฐ๋ ๋์ ์์์ด๋ค.
* ์ฌ์ค ์ง์ญ๋ฐ์ดํฐ ์ฆ, ์ง์ญ ๋ณ์๋ ์คํ ๋ด์ ์ ์ฅ๋์ด ์๋ค.
TCB
--->
TCB๋ Thread Control Block์ด๋ผ๋ ์๋ฏธ๋ก ์ฐ๋ ๋์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ์๋ ๊ณณ์ด๋ค.
๋ง์ง๋ง์ผ๋ก ์ฐ๋ ๋์ ์ข ๋ฅ 3๊ฐ์ง๋ฅผ ๊ณต๋ถํ๊ณ ๋ง๋ฌด๋ฆฌ ํ๊ฒ ๋ค.
1. User Level Thread
- ์ปค๋๊ณผ ์๊ด์์ด ์ฌ์ฉ์๊ฐ ์ฐ๋ ๋๋ฅผ ์ค์ค๋ก ๋ง๋ ๋ค. ์ฆ, ์ปค๋์ด ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ง ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ง์ ๊ด๋ฆฌํด์ผํ๋ค
์ฌ์ฉ์์ ์์ญ ์์์ ์คํ๋๋ค.
2. Kernel lever thread
- ์ฐ๋ ๋๋ฅผ ์ปค๋์ด ๊ด๋ฆฌํ๋ค.
1 : 1 ๋์ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์ปค๋์ ์์ด ์ฆ๊ฐํ๋ฉด CPU๋ฅผ ์ฐจ์งํ๊ธฐ ์ํ ๊ฒฝ์์ด ์ฆ๊ฐํ๋ฏ๋ก ์ฑ๋ฅ์ด ์ ํ๋๋ค.
3. Hybrid level thread
- ์ ๋ ๊ฐ์ ๋ฐฉ์์ ํฉ์น ๋ฐฉ๋ฒ์ด๋ค.
- thread์ ์์ฑ์ ์ฌ์ฉ์ ์์ญ์์ ์์ํ๋ค
- User level threads์์ ๋งคํ์ ์์ํ๋ค.
- Kernel level thread๋ก ์ด์ด์ง๋ค.
๊ฒฝ๋ ํ๋ก์ธ์ค ์ฐ๋ ๋๊ฐ ์ค๊ฐ์ ๋งคํ์ ํด์ฃผ๋ ์ญํ ์ ์ํํ๋ค.
์ฌ๊ธฐ๊น์ง ์ฐ๋ ๋์ ํ๋ก์ธ์ค์ ๊ดํด์ ๊ณต๋ถํ๋ค
๊ฐ๋จํด๋ณด์ด์ง๋ง ์ธ์ธ ๊ฒ์ด ๋ง์ผ๋ ํท๊ฐ๋ฆฌ์ง ์๊ฒ ์ ๊ณต๋ถํด๋์

'๊ณต๋ถ > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์์ฒด์ : ๋ณํ ํ๋ก์ธ์ค (4) | 2024.10.02 |
---|---|
์ด์์ฒด์ : ์ด์์ฒด์ ์ ํ ๋ณ ํน์ง (6) | 2024.09.17 |
์ด์์ฒด์ : ์ด์์ฒด์ ๋? (2) | 2024.09.13 |
์ด์์ฒด์ ์ ๊ธฐ๋ณธ ๋ฐ ์์๋ณด๊ธฐ (2) | 2024.09.05 |