1. ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์ .
ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ์ ๋ํด์ ์ค๋ช
๋๋ฆด๋ ค๋ฉด, ๋จผ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋์ด ์ฐ๋ ๋ฐฉ๋ฒ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ์ ๋ํด์ ์ค๋ช
ํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ํ๋, ๊ณ์ ํด์ ๋์ผ ์์์ ๋๋ ค ์ฐ๋ CPU ๊ฐ์ํ์ ๋ฌ๋ฆฌ, ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ชผ๊ฐ๊ณ , ๊ฐ ๋ถ๋ถ์ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋์์ํค๋ ๋ฐฉ์์ ๋งํฉ๋๋ค. ์ด๋ฅผ ํตํด, ๊ฐ ํ๋ก์ธ์ค๋ค์ ๋ง์น ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ ์ด ํผ์ ์ฐ๊ณ ์๋ ๊ฒ ๊ฐ์ ์ฐฉ๊ฐ์ ํ๊ฒ ๋๊ณ ์ด ์ชผ๊ฐ์ง ํ๋ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ํฉ๋๋ค.
์ด๋ ํ๋ก์ธ์ค ํ๋ ํ๋์ ๋์๋๋ ๊ฐ์ํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค์ ์ฃผ์๊ณต๊ฐ์ด๋ผ๊ณ ๋ ํํํฉ๋๋ค.
ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ํฌ๊ฒ ์ฝ๋ ์์ญ, ๋ฐ์ดํฐ ์์ญ, ์คํ ์์ญ, ํ ์์ญ์ผ๋ก ๋๋ฉ๋๋ค.
1. ์ฝ๋ ์์ญ |
ํ๋ก์ธ์ค๋ฅผ ์๋์ํฌ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ, ์ฌ๋์ด ์ง์ง ์ง๋ ์ฝ๋๊ฐ ์๋๋ผ, ์ปดํจํฐ๊ฐ ์์๋ฃ๋ ๊ธฐ๊ณ์ด๊ฐ ์ ์ฅ๋ ์์ญ ์ ๋๋ค. |
2. ๋ฐ์ดํฐ ์์ญ |
์ ์ญ ๋ณ์, ์ ์ ๋ณ์, ์์ ๋ฑ์ด ์์นํ๋ ์์ญ ์ ๋๋ค. |
3. ์คํ ์์ญ |
ํจ์์ ํธ์ถ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์์ญ ์
๋๋ค. ํน์ ํจ์๊ฐ ํธ์ถ๋ ๋๋ง๋ค, ์คํ ์์ญ์ ํด๋น ์คํ Context๊ฐ ์์ด๊ฒ ๋๊ณ , ์คํ ๋งจ ์์ ์์ธ ์์๋๋ก ์คํ๋๊ณ ์คํ์์ ์ ๊ฑฐ ๋ฉ๋๋ค. |
4. ํ ์์ญ |
๋ฐํ์์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ ์์ญ์ด๊ณ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ํ ์์ญ์ ๊ฐ๋ฐ์๊ฐ UserMode์์ ์ง์ ์ ์ดํ ์ ์๋ ์์ญ์ผ๋ก malloc()๋ฅผ ํตํด ํ ๋นํ๊ณ , ํด์ ๋ free()ํจ์๋ฅผ ์ด์ฉํด ํ ์ ์์ต๋๋ค. |
โ ์ด๊ธฐํ ํ์ง ์์ ๋ณ์๋ค์ ์ด๋์ ์ ์ฅ๋ ๊น์?
data ์์ญ์ ์ ์ฅํ๋ ๊ฐ์ ํน์ฑ์ ๋ฐ๋ผ data ์์ญ(์ด๋ฆ์ด ๋ถ๋ชจ์ ๊ฐ์ต๋๋ค...) BSS ์์ญ์ด ์กด์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๋ค์ BSS ์์ญ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ธฐํ ์ฌ๋ถ์ ๋ฐ๋ผ ๊ตฌ๋ถํ์ฌ ์ ์ฅํ๋ ์ด์ ๋ ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๋ค์ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ง ์์ญ์ ์ก์์ฃผ๋ฉด ๋๊ณ , ํ์์๋ ๊ทธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ ์ฅํ ํ์๊ฐ ์์ผ๋, ์ด๊ธฐํ๊ฐ ์ด๋ฏธ ๋ ๋ณ์๋ ๊ทธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ ์ฅํ๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๊ฒ BSS ์์ญ์ด ์กด์ฌํ๋ ์ด์ ์ ๋๋ค. BSS ์์ญ ๋์ ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๊ฐ ๋ง์์ ธ๋ ํ๋ก๊ทธ๋จ์ ์คํ์ฝ๋ ์ฌ์ด์ฆ๋ ์ปค์ง์ง ์์ต๋๋ค.
โ์ผ๋ฐ์ ์ธ ์ฃผ์๊ณต๊ฐ ๊ทธ๋ฆผ์ฒ๋ผ, Stack๊ณผ Heap์ ํฌ๊ธฐ๋ ๋งค์ฐ ํฌ๋ค๊ณ ํ ์ ์์๊น์? ๊ทธ๋ ์ง ์๋ค๋ฉด, ๊ทธ ํฌ๊ธฐ๋ ์ธ์ ๊ฒฐ์ ๋ ๊น์?
๊ทธ๋ฆผ์ ๋ณด์๋ฉด, ์คํ๊ณผ ํ ์์ญ์ ์ ํํ๊ฒ ์์ญ์ด ์ ํด์ ธ ์์ง ์์ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด์ ๋ ๋ ์ฌ์ด ๊ฒฝ๊ณ๊ฐ ์ฒ์๋ถํฐ ํ์ด๋ ์คํ ์ด๋ ํ๋์ ํ ๋น๋์ด์๋ ๊ฒ์ด ์๋๋ผ, ๋ ์ค ํ ์์ญ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ ํ์ํ ๋ ํ ๋น์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋๋ ํ ์์ญ์ด ๊ฐ์ง ์ ์๋ ์ต๋ ์์ญ์ ์ ํด์ ธ ์๊ธฐ ๋๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋น์ฃผ์ผ ์คํ๋์ค์ ๊ฒฝ์ฐ์๋ Stack ์์ญ์ ์ต๋ ํฌ๊ธฐ๋ 1MB๋ก ์ ํด์ ธ ์๊ณ , ๊ทธ ๋ณด๋ค ๋ง์ด ์ผ์ ๊ฒฝ์ฐ์ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ์ข ๋ฃ ๋ฉ๋๋ค.
https://bozeury.tistory.com/90
โ Stack๊ณผ Heap ๊ณต๊ฐ์ ๋ํด ์ ๊ทผ ์๋๊ฐ ๋ ๋น ๋ฅธ ๊ณต๊ฐ์ ์ด๋์ผ๊น์?
์คํ์ด ํ ๋น ์๋๊ฐ HEAP์ ๋นํด ํจ์ฌ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ Stack์ ์ ๊ทผํ๋ ์๋๊ฐ ํจ์ฌ ๋น ๋ฆ ๋๋ค. ์คํ์ ์ด๋ฏธ ํ ๋น ๋์ด์๋ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด๊ณ ํ์ ์ฌ์ฉ์๊ฐ ๋ฐ๋ก ํ ๋นํด์ ์ฌ์ฉํ๋ ๊ณต๊ฐ ์ ๋๋ค. ๋ค๋ง ์คํ์ ๊ณต๊ฐ์ด ๋งค์ฐ ์ ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ฉ์์ ์คํ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
โ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋๋๋ ์ด์ ๊ฐ ์์๊น์?
์์ ๊ฐ์ด 4๊ฐ์ง๋ก ๊ตฌ์ญ์ ๋๋ ์ด์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ธฐ ์ํด์ ์ ๋๋ค. CODE์ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ ์์ฒด์์๋ ๋ชจ๋ ๊ฐ์ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌํ์ฌ ๊ณต์ ํ๊ณ , Stack๊ณผ Data๋ฅผ ๋๋ ์ด์ ๋ ์คํ ๊ตฌ์กฐ์ ํน์ฑ๊ณผ ์ ์ญ ๋ณ์์ ํ์ฉ์ฑ์ ์ํด์ ์ ๋๋ค.
โ ์ค๋ ๋์ ์ฃผ์๊ณต๊ฐ์ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์๊น์?
์ค๋ ๋ ์ฃผ์ ๊ณต๊ฐ์ด๋, ์ค๋ ๋๊ฐ ์์ฑ๋๊ณ ์คํ๋๋ ๋์ ์ ๊ทผ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ ๋ด์ ํ์ฑํฉ๋๋ค. ์ค๋ ๋ ์ฃผ์ ๊ณต๊ฐ์ ์ค๋ ๋ ์ฌ์ ๊ณต๊ฐ๊ณผ ์ค๋ ๋ ์ฌ์ด์ ๊ณต์ ๊ณต๊ฐ์ผ๋ก ๋๋์ด์ง๋ฉฐ, ์ฌ์ ๊ณต๊ฐ์ ์ค๋ ๋ ์ฝ๋, ์ค๋ ๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ค๋ ๋ ์ฌ์ฉ์ ์คํ, ์ค๋ ๋ ์ปค๋ ์คํ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๊ณ , ๊ณต์ ๊ณต๊ฐ์๋ ํ๋ก์ธ์ค ์ฒ๋ผ ์ค๋ ๋ ์ฝ๋, ๋ฐ์ดํฐ,ํ, ์คํ ์์ญ์ผ๋ก ๋๋์ด์ ธ ์์ต๋๋ค.
โ IPC์ Shared Memory ๊ธฐ๋ฒ์ ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ์ ์ด๋์ ๋ค์ด๊ฐ๋์? ๊ทธ๋ฐ ์ด์ ๊ฐ ์์๊น์?
shared Memory ๊ธฐ๋ฒ์ ์ปค๋ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ณ์๋ฅผ ํ ๋นํ์ฌ, ๊ณต์ ๋ณ์์ฒ๋ผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋๋ค. ํ๋ก์ธ์ค๊ฐ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ปค๋์ ์์ฒญํ๋ฉด ์ปค๋์ ํด๋น ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ค๋๋ค. ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํ๋ก์ธ์ค ์ฃผ์๊ณต๊ฐ ๋ด์ ๊ตฌ์ถ๋ ์ดํ์๋ ๋ชจ๋ ์ ๊ทผ์ด ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ผ๋ก ์ทจ๊ธ๋๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ์ปค๋์ ๋์ ์์ด๋ ๊ฐ ํ๋ก์ธ์ค์ ํด๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
2. ๋จ๊ธฐ ์ค๊ธฐ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ๋ํ์ฌ
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ , ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋นํ์ ๋ฃ์ ๊ฒ์ธ๊ฐ? ๋ฅผ ๋ด๋นํฉ๋๋ค.
์์ ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋น ํ์ ์ฝ์ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ํฉ๋๋ค.
๋จ๊ธฐ ์ค์ผ์ค๋ฌ(short term scheduler) : ์ด๋ค ํ๋ก์ธ์ค์๊ฒ cpu๋ฅผ ํ ๋นํด ์ค ๊ฒ์ธ๊ฐ ?
์ค๊ธฐ ์ค์ผ์ค๋ฌ(medium term scheduler) : ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค ์ ๊ด๋ฆฌ
โ ํ๋ก์ธ์ค ์ํ ์ ์ด
โ ์น์ธ (Admitted) : ํ๋ก์ธ์ค ์์ฑ์ด ๊ฐ๋ฅํ์ฌ ์น์ธ๋จ.
โ ์ค์ผ์ค๋ฌ ๋์คํจ์น (Scheduler Dispatch) : ์ค๋น ์ํ์ ์๋ ํ๋ก์ธ์ค ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์คํ์ํค๋ ๊ฒ.
โ ์ธํฐ๋ฝํธ (Interrupt) : ์์ธ, ์ ์ถ๋ ฅ, ์ด๋ฒคํธ ๋ฑ์ด ๋ฐ์ํ์ฌ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋น ์ํ๋ก ๋ฐ๊พธ๊ณ , ํด๋น ์์ ์ ๋จผ์ ์ฒ๋ฆฌํ๋ ๊ฒ.
โ ์ ์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ๋๊ธฐ (I/O or Event wait) : ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ์ด๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ ์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋ชจ๋ ๋๋ ๋๊น์ง ๋๊ธฐ ์ํ๋ก ๋ง๋๋ ๊ฒ.
โ ์ ์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ์๋ฃ (I/O or Event Completion) : ์ ์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋น ์ํ๋ก ์ ํํ์ฌ ์ค์ผ์ค๋ฌ์ ์ํด ์ ํ๋ ์ ์๋๋ก ๋ง๋๋ ๊ฒ.
โ ๋น์ ์ ์ค์ผ์ค๋ง์ ๋ํ์ฌ
๋น์ ์ ์ค์ผ์ค๋ง์ด๋ Context Switching ์์ด ์จ ์์ ๊ทธ๋๋ก ์ผ์ด ์งํ๋๋ ์ค์ผ์ค๋ง์ ๋งํ๋ค. ๋น์ ์ ์ค์ผ์ค๋ง์๋
- FCFS (First Come First Served)
- ํ์ ๋์ฐฉํ ์์๋๋ก CPU ํ ๋น
- ์คํ ์๊ฐ์ด ์งง์ ๊ฒ ๋ค๋ก ๊ฐ๋ฉด ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง
- SJF (Shortest Job First)
- ์ํ์๊ฐ์ด ๊ฐ์ฅ ์งง๋ค๊ณ ํ๋จ๋๋ ์์ ์ ๋จผ์ ์ํ
- FCFS ๋ณด๋ค ํ๊ท ๋๊ธฐ ์๊ฐ ๊ฐ์, ์งง์ ์์ ์ ์ ๋ฆฌ
- HRN (Hightest Response-ratio Next)
- ์ฐ์ ์์๋ฅผ ๊ณ์ฐํ์ฌ ์ ์ ๋ถํ๋ฑ์ ๋ณด์ํ ๋ฐฉ๋ฒ(SJF์ ๋จ์ ๋ณด์)
- ์ฐ์ ์์ = (๋๊ธฐ์๊ฐ + ์คํ์๊ฐ) / (์คํ์๊ฐ)
โ ์ ์ ์ค์ผ์ค๋ง์ ๋ํ์ฌ
- Priority Scheduling
- ์ ์ /๋์ ์ผ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ฌ ์ฐ์ ์์๊ฐ ๋์ ์์๋๋ก ์ฒ๋ฆฌ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๊ฐ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ Starvation ์ด ์๊ธธ ์ ์์
- Aging ๋ฐฉ๋ฒ์ผ๋ก Starvation ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
- Round Robin
- FCFS์ ์ํด ํ๋ก์ธ์ค๋ค์ด ๋ณด๋ด์ง๋ฉด ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ์๊ฐ์ Time Quantum ๋งํผ CPU๋ฅผ ํ ๋ฌ ๋ฐ์
- Time Quantum or Time Slice : ์คํ์ ์ต์ ๋จ์ ์๊ฐ
- ํ ๋น ์๊ฐ(Time Quantum)์ด ํฌ๋ฉด FCFS์ ๊ฐ๊ฒ ๋๊ณ , ์์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ (Context Switching) ์ฆ์์ ธ์ ์ค๋ฒํค๋ ์ฆ๊ฐ
- FCFS์ ์ํด ํ๋ก์ธ์ค๋ค์ด ๋ณด๋ด์ง๋ฉด ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ์๊ฐ์ Time Quantum ๋งํผ CPU๋ฅผ ํ ๋ฌ ๋ฐ์
- Multilevel-Queue (๋ค๋จ๊ณ ํ)
- ์์ ๋ค์ ์ฌ๋ฌ ์ข ๋ฅ์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ์ฌ๋ฌ ๊ฐ์ ํ๋ฅผ ์ด์ฉํ๋ ๊ธฐ๋ฒ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ค์ด ์คํ ๋ชปํ๋ ๊ฑธ ๋ฐฉ์งํ๊ณ ์ ๊ฐ ํ๋ง๋ค ๋ค๋ฅธ Time Quantum์ ์ค์ ํด์ฃผ๋ ๋ฐฉ์ ์ฌ์ฉ
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ ์์ Time Quantum ํ ๋น. ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ ํฐ Time Quantum ํ ๋น.
- 4.Multilevel-Feedback-Queue (๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ)
- ๋ค๋จ๊ณ ํ์์ ์์ ์ Time Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ๊ณ ์์ ์ Time Quantum์ ๋ค ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ์๋ ํ ๊ทธ๋๋ก
- Time Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ CPU burst ํ๋ก์ธ์ค๋ก ํ๋จํ๊ธฐ ๋๋ฌธ
- ์งง์ ์์ ์ ์ ๋ฆฌ, ์ ์ถ๋ ฅ ์์ฃผ(Interrupt๊ฐ ์ฆ์) ์์ ์ ์ฐ์ ๊ถ์ ์ค
- ์ฒ๋ฆฌ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ Turnaround ํ๊ท ์๊ฐ์ ์ค์ฌ์ค
- ๋ค๋จ๊ณ ํ์์ ์์ ์ Time Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ๊ณ ์์ ์ Time Quantum์ ๋ค ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ์๋ ํ ๊ทธ๋๋ก
โ Process Context Switching vs Thread Context Switching
ํ๋ก์ธ์ค๋ ํ๋ ์ด์์ ์ฐ๋ ๋๋ฅผ ํฌํจํ๋ค. ์ด ์ฐ๋ ๋๋ค์ ๊ณ ์ ํ Stack์์ญ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ณ ์ ํ registers๋ฅผ ํ ๋น ๋ฐ์ผ๋ฉฐ Heap์์ญ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ธ๋ ๋ฐ์ดํฐ๋ ์๋ก ๊ณต์ ํ๋ค.
๋์ผํ ํ๋ก์ธ์ค ์์์ thread context switching์ด ๋ฐ์ํ ๊ฒฝ์ฐ processor๋ stack์์ญ์ ์ฃผ์์ registers ์ฃผ์๋ฅผ ํฌํจํ thread์ context ์ ๋ณด๋ง์ ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
ํ์ง๋ง process context switching์ด ๋ฐ์ํ ๊ฒฝ์ฐ processor๋ thread์ context๋ฟ๋ง ์๋๋ผ process์ context๊น์ง ๋ชจ๋ ๋ณ๊ฒฝํด์ผ ํ๋ค.
์ ์ , ๋น์ ์ ๋ชจ๋์ ์กด์ฌํ ์ ์๋ ์ํ๊ฐ ์๋์?
-๋ค, ์กด์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ธ๋ก ์ํ๊ฐ ์์ต๋๋ค. ๋ธ๋ก ์ํ๋ ์์ ์คํ์ด ๋ถ๊ฐ๋ฅํ ์ํ๋ก, ์์ ์ด ์ฌ์ ์ ์๋ ๋ค๋ฅธ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ์ํ์ด ์ค์ง๋๋ ์ํ์ ๋๋ค. ๋ฐ๋ผ์ ๋ธ๋ก ์ํ๋ preemptive ๋ฐ non-preemptive ์ค์ผ์ค๋ง ๋ชจ๋์ ์กด์ฌํ ์ ์์ต๋๋ค.