์ฅ๊ธฐ ์ค์ผ์ค๋ฌ(long term scheduler)
์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋นํ์ ๋ฃ์ ๊ฒ์ธ๊ฐ ๊ฒฐ์
์์ ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋นํ์ ์ฝ์ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค. ๋์คํฌ์์ ํ๋์ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ธ์ ์ปค๋์ ๋ฑ๋กํ๋ฉด ํ๋ก์ธ์ค๊ฐ ๋๋๋ฐ ์ด๋ ๋์คํฌ์์ ์ด๋ค ํ๋ก๊ทธ๋จ์ ๊ฐ์ ธ์ ์ปค๋์ ๋ฑ๋กํ ์ง(์ค๋นํ์ ๋ฑ๋กํ ์ง) ๊ฒฐ์ ํ๋ค.
- ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋ ์์ญ ์ด ๋ด์ง ์ ๋ถ ๋จ์๋ก ๊ฐ๋ ํธ์ถ๋๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์๋๊ฐ ๋๋ฆฐ ๊ฒ์ด ํ์ฉ๋ฉ๋๋ค.
- ๋ํ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ฌ๋ผ๊ฐ ์๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์กฐ์ ํ๋ ์ญํ ์ ํ๋ค.
ํ์ง๋ง ํ๋์ ์๋ถํ ์์คํ ์์ ์ฌ์ฉ๋๋ ์ด์ ์ฒด์ ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋ฅผ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค. ๊ณผ๊ฑฐ์๋ ์ ์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ํ ๋นํ๋ฉด ํ๋ก์ธ์ค๋น ๋ฉ๋ชจ๋ฆฌ ๋ณด์ ๋์ด ์ ์ด์ ธ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์ด๋ฅผ ์กฐ์ ํ๋ ์ญํ ์ ํ์ง๋ง ํ๋์ ์ด์์ฒด์ ์์๋ ํ๋ก์ธ์ค๊ฐ ์์๋๋ฉด ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ ์์ด ๋ฐ๋ก ๊ทธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด ์ค๋น ํ์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ค.
์ค๊ธฐ ์ค์ผ์ค๋ฌ(medium term scheduler)
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค ์ ๊ด๋ฆฌ
๋๋ฌด ๋ง์ ํ๋ก์ธ์ค์๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด ์์คํ ์ ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค์ ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๊ธฐ ์ํด ์ถ๊ฐ๋ ์ค์ผ์ค๋ฌ.
- ์ค์ํ(Swapping) : ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์กฐ์ ํ๋ ์ญํ ์ ํ๋ค.
- ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ ์์ ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋์ด ํ๋ก์ธ์ค ๋น ๋ณด์ ํ๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋์ด ๊ทน๋๋ก ์ ์ด์ง๋ฉด CPU ์ํ์ ๋น์ฅ ํ์ํ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์กฐ์ฐจ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ธฐ ์ด๋ ค์ด ์ํฉ์ด ๋ฐ์ํ๊ฒ ๋๋ค.
- ๊ทธ๋ ๊ฒ ๋๋ฉด ๋์คํฌ I/O๊ฐ ์์๋ก ๋ฐ์ํ๊ฒ ๋์ด ์์คํ
์ ์ฑ๋ฅ์ด ์ฌ๊ฐํ๊ฒ ์ ํ๋ ์ ์๋ค.
- ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์ฒด์ ์์ ๋๋ฌด๋ง์ ํ๋ก์ธ์ค๊ฐ ์ ์ฌ๋๋ฉด ํ๋๋์คํฌ ์ ์ถ๋ ฅ์ด ๊ณผ๋คํด์ ธ์ ์์คํ ์ด ๊ฑฐ์ ๋ฉ์ถ๋ ํ์์ด ๋ฐ์(Trashing)
- Trashing : ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ๊ฒ ๋ ๋, ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง ๋ถ์ฌ(=ํ์ด์ง ํดํธ(Page fault)์จ์ด ๋์ ๊ฒ์ ์๋ฏธ
- ์ด๋ฐ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก์ธ์ค ์ค ์ผ๋ถ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํต์งธ๋ก ๋นผ์์ ๊ทธ ๋ด์ฉ์ ๋์คํฌ์ ์ค์ ์์ญ์ ์ ์ฅํด ๋๋ค. ์ด์ ๊ฐ์ ํ์๋ฅผ ์ค์ ์์(swap out)์ด๋ผ๊ณ ํฉ๋๋ค.
- ๋์คํฌ๋ก ์ค์ ์์์์ผ์ผ ํ๋ ๊ฒฝ์ฐ ๋ด์ ์ํ(์ค๋จ ์ํ)์ ์๋ ํ๋ก์ธ์ค๋ค์ ์ฒซ๋ฒ์งธ๋ก ์ค์ ์์ ์ํต๋๋ค. ์ด์ ๋ ๋ด์ ์ํ์ ํ๋ก์ธ์ค๋ค์ ๋น์ฅ CPU๋ฅผ ํ๋ํ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ด์ ์ํ์ ํ๋ก์ธ์ค๋ค์ ์ค์ ์์์์ผ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๋ ๊ฒฝ์ฐ ์ค๊ธฐ ์ค์ผ์ค๋ฌ๋ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํด ์ค๋น ํ๋ก ์ด๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ค์์์ ์ํจ๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฉด ๋ค์ ์ ์ฌ(swap in)ํ๋ค.
์ค๊ธฐ ์ค์ผ์ค๋ฌ์ ๋ฑ์ฅ์ผ๋ก ํ๋ก์ธ์ค์ ์ํ์๋ ์ค์ง(suspenden, stopped) ์ํ๊ฐ ์ถ๊ฐ ๋์์ผ๋ฉฐ ์ค์ง ์ํ์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํต์งธ๋ก ๋นผ์๊ธฐ๊ณ ๋์คํฌ๋ก ์ค์ ์์๋๋ค. ์ค์ง ์ํ๋ ์ค์ง ์ค๋น ์ํ์ ๋ด์ ์ค์ง ์ํ๊ฐ ์๋ค.
- ์ค์ง ์ค๋น(suspended ready) : ์ค๋น ์ํ์ ํ๋ก์ธ์ค๊ฐ ์ค๊ธฐ ์ค์ผ์ค๋ฌ์ ์ํด ๋์คํฌ๋ก swap out
- ๋ด์ ์ค์ง(suspended block) : ๋ด์ ์ํ์ ํ๋ก์ธ์ค๊ฐ ์ค๊ธฐ ์ค์ผ์ค๋ฌ์ ์ํด ๋์คํฌ๋ก swap out
์ค์ง ๋ด์ ์ํ์ธ ํ๋ก์ธ์ค๊ฐ ๋ด์ ๋์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๊ฒ ๋๋ฉด ์ด ํ๋ก์ธ์ค์ ์ํ๋ ์ค์ง ์ค๋น ์ํ๋ก ๋ฐ๋๊ฒ ๋๋ค. ์ค์ง ์ํ์ ์๋ ํ๋ก์ธ์ค๋ค์ ์ค์ง ์ค๋น ์ํ์ด๋ ์ค์ง ๋ด์ ์ํ์ด๋ ๊ด๊ณ์์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์กฐ๊ธ๋ ๋ณด์ ํ์ง ์๊ณ ๋์คํฌ์ ํต์งธ๋ก ์ค์ ์์๋ ์ํ๋ก ์กด์ฌํ๊ฒ ๋๋ค.
๋จ๊ธฐ ์ค์ผ์ค๋ฌ(short term scheduler)
๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ค๋น ์ํ์ ์๋ ์์ ์ค ์คํ ํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ์ฌ CPU๋ฅผ ํ ๋น
CPU์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ ํ๋ฉฐ ์ค๋น ์ํ์ ํ๋ก์ธ์ค ์ค์์ ์ด๋ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ๋ฒ์ ์คํ ์ํ๋ก ๋ง๋ค ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. ์๋ถํ ์์คํ ์์ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ๋ฉด ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ํธ์ถ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ค์ผ์ค๋ฌ๋ผ ํจ์ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๋ฅผ ์๋ฏธํ๋ฉฐ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๋ ๋ฏธ๋ฆฌ ์ ํ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ cpu๋ฅผ ํ ๋น ํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ค.
- ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๋ ๋ฐ๋ฆฌ ์ธ์ปจํธ(ms) ์ดํ์ ์๊ฐ ๋จ์๋ก ๋งค์ฐ ๋น๋ฒํ๊ฒ ํธ์ถ๋๊ธฐ ๋๋ฌธ์ ์ํ ์๋๊ฐ ์ถฉ๋ถํ ๋นจ๋ผ์ผ ํ๋ค.
์ ๋ฆฌ
์ค์ผ์ค๋ฌ ์ข ๋ฅ | ๊ด๋ จ๋ ์ํ |
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ | ์์ฑ ์ํ ๊ด๋ฆฌ |
์ค๊ธฐ ์ค์ผ์ค๋ฌ | ์ค๋จ๋ ์ค๋น, ์ค๋น, ์ค๋จ๋ ๋๊ธฐ, ๋๊ธฐ ์ํ ๊ด๋ฆฌ |
๋จ๊ธฐ ์ค์ผ์ค๋ฌ | ์ค๋น, ์คํ, ๋๊ธฐ ์ํ ๊ด๋ฆฌ |
์ฐธ๊ณ
'๐CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ํ๋ก์ธ์ค vs ์ค๋ ๋ (0) | 2021.08.18 |
---|---|
[OS] CPU ์ค์ผ์ค๋ง (0) | 2021.08.11 |
[OS] ๋ธ๋ญ/๋ ผ๋ธ๋ญ, ๋๊ธฐ/๋น๋๊ธฐ (0) | 2021.07.28 |
[OS] ์ํธ๋ฐฐ์ ๋ฐฉ๋ฒ : ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ (0) | 2021.05.02 |
[OS] ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฐฉ๋ฒ(Inter Process Communication, IPC) (1) | 2021.05.02 |
๋๊ธ