์Šค์ผ€์ค„๋Ÿฌ

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

+ Recent posts