์ค์ผ์ค๋ฌ
Ready Queue์ ์กด์ฌํ๋ ํ๋ก์ธ์ค๋ค์
ํน์ ํ ์ฐ์ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก CPU๋ฅผ ํ ๋น๋ฐ๊ฒ ํ๋ ์ญํ ๋ก
์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์๋ค.
ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ๊ธฐ ์ํ queue์ ์ข ๋ฅ
1. Job Queue : ํ์ฌ ์์คํ ๋ด์ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ์งํฉ
2. Ready Queue : ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ผ๋ฉด์ CPU๋ฅผ ํ ๋น ๋ฐ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค์ ์งํฉ
3. Device Queue : Device I/O ์์ ์ ๋๊ธฐํ๊ณ ์๋ ํ๋ก์ธ์ค ์งํฉ
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ Long - Term Scheduler
์ํํ job์ด 10๊ฐ, ๋ฉ๋ชจ๋ฆฌ์๋ 6๊ฐ ๋ฐ์ ์ฌ๋ฆด ์ ์๋ ์ํฉ
job 10๊ฐ ์ค 6๊ฐ๋ฅผ ๊ณจ๋ผ์ ์ฌ๋ ค์ผ ํ๋๋ฐ ์ด๋ job์ ๊ณ ๋ฅด๋ ์ญํ ์ ํ๋ ๊ฒ์ด ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ
๋ฐ๋ผ์ ์ก ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
ready queue์ ์ ์ฌํ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋นํ๋ ์ค์ผ์ค๋ฌ์ธ๋ฐ, I/O bound ์ค์ฌ์ ํ๋ก์ธ์ค๋ค๊ณผ CPU bound ํ๋ก์ธ์ค๋ค์ ์ ์ ํ ๋น์จ์ ์กฐ์ ํด ์ฌ๋ฆฐ๋ค.
* I/O bound process : ์ ์ถ๋ ฅ ๋ง์ ํ๋ก์ธ์ค (์ด ๋น์จ์ด ๋์ผ๋ฉด ๋๊ณ ์๋ cpu ๋ง์์ง)
CPU bound process : CPU๊ฐ ๊ณ์ฐ์ ํด์ค์ผ ํ๋ ๋น์ค์ด ํฐ ํ๋ก์ธ์ค (์ด ๋น์จ์ด ๋์ผ๋ฉด ์ฌ์ฉ์์ ์ํธ์ ์ด์ง ๋ชปํด์ ์ค์๊ฐ์ ์ธ ์๋ฏธ ์์ด์ง)
1. ์ด๋ค ํ๋ก์ธ์ค๋ฅผ Ready Queue์ ์ฝ์ ํ ์ง ๊ฒฐ์
2. ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋น
3. ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น
4. ๋ฉ๋ชจ๋ฆฌ์ ๋์์ ์ฌ๋ผ๊ฐ ์๋ ํ๋ก์ธ์ค์ ์๋ฅผ ์กฐ์
5. ํ๋ก์ธ์ค์ ์ํ[new -> ready(inmemory)]
๋จ๊ธฐ ์ค์ผ์ค๋ฌ Short - Term Scheduler
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋ฅผ ํตํด์ job์ 6๊ฐ๋ฅผ ๊ณ ๋ฅธ ์ํ
CPU์์ ํ๋๋ฅผ ์ํ์๋ฃํ๊ณ ๋๋จธ์ง job์ค ์์ ํ๋๋ฅผ ๊ณจ๋ผ์ผํ๋๋ฐ ์ด๊ฑธ ๊ณจ๋ผ์ฃผ๋ ์ค์ผ์ค๋ฌ
๋ฐ๋ผ์ CPU ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
CPU๊ฐ ๋ญ๋น๋์ง ์๊ฒ A๋ผ๋ ํ๋ก์ธ์ค๊ฐ ์ํ๋๋ค๊ฐ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ธฐ ์ํด cpu๊ฐ ๋๊ธฐํ๋ ์ํฉ์ด ๋๋ฉด ๋ฐ๋ก B ํ๋ก์ธ์ค๋ก ๊ต์ฒดํด์ ์ํ์ํจ๋ค. ๊ทธ๋ฌ๋ค ์ฌ์ฉ์์ I/O๊ฐ ๋๋๋ฉด ๋ค์ Aํ๋ก์ธ์ค๋ฅผ cpu๋ก ๋ถ๋ฌ์จ๋ค.
์ต์ 100๋ฐ๋ฆฌ ์ธ์ปจ์ฆ๋ง๋ค ์ํ๋์ด ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๋ผ ๋ถ๋ฆฐ๋ค.
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ -> CPU ์ค์ผ์ค๋ฌ
์์ฆ์ virtual memory management๊ฐ ๋ฐ๋ฌํด์ job์ด 10๊ฐ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ก 10๊ฐ๊ฐ ๋ค ์ฌ๋ผ์จ๋ค.
์ฆ, ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ์๋ฏธ๊ฐ ์๋ค๋ ๊ฒ์ธ๋ฐ, long term์ด ์๋ค๋ฉด short term์ ์๋ฏธ๊ฐ ๋ฌด์ํด์ง๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก CPU ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
1. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋นํ๋ฉฐ CPU ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ํจ
2. Ready Queue์ ์กด์ฌํ๋ ํ๋ก์ธ์ค๋ค ์ค ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ CPU๋ฅผ ํ ๋นํ ํ๋ก์ธ์ค ์ ํ
3. ํ๋ก์ธ์ค์ ์ํ[ready -> running -> waiting -> ready]
์ค๊ธฐ ์ค์ผ์ค๋ฌ Medium - Term Scheduler
์ฅ๊ธฐ/๋จ๊ธฐ ์ดํ์ ๋์๋ค. ์์์ ๋งํ๋ฏ์ด ํ์ฌ ๊ฐ๋ ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์ ์ค๊ธฐ ์ค์ผ์ค๋ฌ ๋ํ ์ด์ฉ๋์ง ์๋๋ค.
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ์ํด 10๊ฐ ์ค 6๊ฐ์ job์ ์ฌ๋ ค์ ์ํ์ค์ธ ์ํ
CPU๊ฐ ์ํํ๋ ค๊ณ ๋ณด๋ ๊ฐ๋นํ๊ธฐ์ ๋๋ฌด ๋ง์ ๋ฌธ์ ๊ฐ ์๊ฒจ 6๊ฐ ์ค 2๊ฐ๋ฅผ ๋ด๋ ค๋ณด๋ด๋ฉด ์ํฉ์ด ํด๊ฒฐ๋ ๊ฒ
6๊ฐ ์ค ๋ญ ๋ด๋ ค๋ณด๋ผ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ค๊ธฐ ์ค์ผ์ค๋ฌ์ ์ญํ
Swapper๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋ด๋ฆด ๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ์ ํ๋ก์ธ์ค๋ ์ผ์ ์๊ฐ ๋์ ํ์ฑํ๋์ง ์์๋ ํ๋ก์ธ์ค๋ค์ ๋ด๋ฆฐ๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋ด๋ฆฌ๊ณ (swapping out) ๋ค์ ์ฌ๋ ค์ง๋ (swapping in) swapping๊ณผ์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ swapper๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
1. ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค์ ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์
2. ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ํ๋ก์ธ์ค์ ์๊ฐ ๋ง์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํต์งธ๋ก ๋์คํฌ์ ์ค์ ์์ญ์ ์ ์ฅ(Swap Out)
3. ํ๋ก์ธ์ค์ ์ํ[ready -> suspended]
<์ฐธ๊ณ >
https://kmseop.tistory.com/119 https://jhnyang.tistory.com/372
'๐ฅ > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ์ธํฐ๋ฝํธ Interrupt (0) | 2021.08.25 |
---|---|
[์ด์์ฒด์ ] ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ (0) | 2021.08.25 |
[์ด์์ฒด์ ] ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด (0) | 2021.08.18 |
[์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ฌ (0) | 2021.08.11 |
[์ด์์ฒด์ ] PCB์ Context Switching (0) | 2021.08.04 |