League Of Legends - Link Select [03] CPU ์Šค์ผ€์ค„๋ง
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿค“ Study/์šด์˜์ฒด์ œ

[03] CPU ์Šค์ผ€์ค„๋ง

by GAMEMING 2024. 3. 19.
728x90

 

 

- CPU ์Šค์ผ€์ค„๋ง (CPU scheduling)

 : OS๊ฐ€ ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ ๊ณต์ •/ํ•ฉ๋ฆฌ์ ์œผ๋กœ COU ์ž์›์„ ๋ฐฐ๋ถ„ํ•˜๋Š” ๊ฒƒ, ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ๊ณผ๋„ ์ง๊ฒฐ๋˜๋Š” ๋ฌธ์ œ

 

 

- ํ”„๋กœ์„ธ์Šค ์šฐ์„ ์ˆœ์œ„

 : OS๋Š” ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์šฐ์„ ์ˆœ์œ„(priority)๋ฅผ ๋ถ€์—ฌ, PCB์— ๋ช…์‹œํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋น ๋ฅธ ๊ฒƒ๋ถ€ํ„ฐ ์‹คํ–‰

 : ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์„ธ์Šค -> CPU์™€ ์ž…์ถœ๋ ฅ์žฅ์น˜๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ฉฐ ์‹คํ–‰(์‹คํ–‰๊ณผ ๋Œ€๊ธฐ์ƒํƒœ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์‹คํ–‰). 

 

 : ์ž…์ถœ๋ ฅ ์ง‘์ค‘ ํ”„๋กœ์„ธ์Šค(I/O bound process) : ๋น„๋””์˜ค์žฌ์ƒ, ๋””์Šคํฌ ๋ฐฑ์—… ์ž‘์—… ๋“ฑ

 : CPU ์ง‘์ค‘ ํ”„๋กœ์„ธ์Šค(CPU bound process) : ๋ณต์žกํ•œ ์ˆ˜ํ•™ ์—ฐ์‚ฐ, ์ปดํŒŒ์ผ ๋“ฑ

 ==> ์ž…์ถœ๋ ฅ ์ง‘์ค‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•œ ๋นจ๋ฆฌ ์‹คํ–‰ํ•ด ๋Š์ž„์—†์ด ์ž‘๋™ํ•˜๊ณ  ๊ทธ ๋‹ค์Œ CPU ์ง‘์ค‘ ํ”„๋กœ์„ธ์Šค์— ์ง‘์ค‘์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ . ( ์ž…์ถœ๋ ฅ ์ง‘์ค‘ ํ”„๋กœ์„ธ์Šค -> ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋  ์˜ˆ์ •์ด๊ธฐ์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU์‚ฌ์šฉ ๊ฐ€๋Šฅ)

 

 

- ์Šค์ผ€์ค„๋ง ํ

 : OS๊ฐ€ ๋งค๋ฒˆ ๋ชจ๋“  PCB๋ฅผ ๊ฒ€์‚ฌํ•ด ์ž์›์„ ์ด์šฉํ•  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋น„ํšจ์œจ์ .

 : OS๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์—๊ฒŒ '์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆด ๊ฒƒ'์„ ์š”๊ตฌํ•˜๋ฉฐ ์ด ์ค„(์Šค์ผ€์ค„๋ง ํ)์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•จ.

 : ์ค€๋น„ํ(CPU๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ์€ ํ”„๋กœ์„ธ์Šค), ๋Œ€๊ธฐํ(์ž…์ถœ๋ ฅ์žฅ์น˜๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐ์ƒํƒœ์— ์ ‘์–ด๋“  ํ”„๋กœ์„ธ์Šค)

 

 

- ์„ ์ ํ˜•๊ณผ ๋น„์ „์„ฌํ˜• ์Šค์ผ€์ค„๋ง

 : ์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง(preemptive scheduling) : ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU ์ž์›์„ ๊ฐ•์ œ๋กœ ๋นผ์•—์•„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ• ๋‹น\

 : ๋น„์„ ์ •ํ˜• ์Šค์ผ€์ค„๋ง : (non-preemptive) : ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์Šค์Šค๋กœ ๋Œ€๊ธฐ ์ƒํƒœ์— ์ ‘์–ด๋“ค๊ธฐ ์ „๊นŒ์ง€ ๋ผ์–ด๋“ค ์ˆ˜ ์—†์Œ

 

 

 

< CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ >

 

1. ์„ ์ž… ์„ ์ฒ˜๋ฆฌ ์Šค์ผ€์ค„๋ง(FCFS ์Šค์ผ€์ค„๋ง, First Come First Served Scheduling)

 : ์ค€๋น„ ํ์— ์‚ฝ์ž…๋œ ์ˆœ์„œ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง, ๋•Œ๋•Œ๋กœ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Œ. ํ˜ธ์œ„ํšจ๊ณผ(๋ชจ๋“  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ํ•˜๋‚˜์˜ ๊ธด ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์–‘๋„ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ) ๋ฐœ์ƒ

 

 

2. ์ตœ๋‹จ ์ž‘์—… ์šฐ์„  ์Šค์ผ€์ค„๋ง (SJF ์Šค์ผ€์ค„๋ง, Shortest Job First Scheduling)

 : ์ค€๋น„ ํ์— ์‚ฝ์ž…๋œ ํ”„๋กœ์„ธ์Šค ์ค‘ CPU ์ด์šฉ ์‹œ๊ฐ„์˜ ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค๋ถ€ํ„ฐ ์‹คํ–‰, ๋น„์„ ์ ํ˜•์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋‚˜, ์„ ์ ํ˜•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ (์š”๊ฒŒ ์ตœ์†Œ ์ž”์—ฌ ์‹œ๊ฐ„ ์šฐ์„  ์Šค์ผ€์ค„๋ง)

 

 

3. ๋ผ์šด๋“œ ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง (round robin scheduling)

 : ์„ ์ž… ์„ ์ฒ˜๋ฆฌ ์Šค์ผ€์ค„๋ง + ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค(๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •ํ•ด์ง„ ์‹œ๊ฐ„์„ ์˜๋ฏธ)

 

 

4. ์ตœ์†Œ ์ž”์—ฌ ์‹œ๊ฐ„ ์šฐ์„  ์Šค์ผ€์ค„๋ง (SRT, Shortest Remaining Time)

 : 2๋ฒˆ + 3๋ฒˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜

 : ํ”„๋กœ์„ธ๋“ค์€ ์ •ํ•ด์ง„ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค๋งŒํผ CPU๋ฅผ ์‚ฌ์šฉํ•˜๋˜, CPU ์‚ฌ์šฉ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋กœ๋Š” ๋‚จ์•„์žˆ๋Š” ์ž‘์—… ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์ ์€ ํ”„๋กœ์„ธ์Šค ์„ ํƒ

 

 

5. ์šฐ์„ ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง (priority scheduling)

 : ํ”„๋กœ์„ธ์Šค๋“ค์— ์šฐ์„ ์ˆœ์œ„ ๋ถ€์—ฌ, ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๋ถ€ํ„ฐ ์‹คํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 : ๋ฌธ์ œ ๋ฐœ์ƒ -> ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ„์† ์—ฐ๊ธฐ ์ƒํƒœ์— ๋น ์ ธ ๊ธฐ์•„ ํ˜„์ƒ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ.

 : ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ• - ์—์ด์ง•(aging) : ์˜ค๋žซ๋™์•ˆ ๋Œ€๊ธฐํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ ์ฐจ ๋†’์ž„

 

 

6. ๋‹ค๋‹จ๊ณ„ ํ ์Šค์ผ€์ค„๋ง (multilevel queue scheduling)

 : ์šฐ์„ ์ˆœ์œ„๋ณ„ ์ค€๋น„ ํ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•จ, ํ”„๋กœ์„ธ์Šค ์œ ํ˜•๋ณ„, ํ๋ณ„๋กœ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค ์—ฌ๋Ÿฌ ๊ฐœ ์ง€์ •, ํ๋งˆ๋‹ค ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ๊ธฐ์•„ ํ˜„์ƒ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

 

 

7. ๋‹ค๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ํ ์Šค์ผ€์ค„๋ง (multilevel feedback queue scheduling)

 : ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜, 6๋ฒˆ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋‚˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ํ ์‚ฌ์ด๋ฅผ ์ด๋™ ๊ฐ€๋Šฅํ•จ.