CS/CS ์Šคํ„ฐ๋””

CPU ์Šค์ผ€์ค„๋ง

One-armed-boy 2023. 3. 25. 18:46

์ถœ์ฒ˜: https://choi-geonu.medium.com/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%93%A4%EC%9D%B4-%EC%95%8C%EC%95%84%EC%95%BC%ED%95%A0-%EB%8F%99%EC%8B%9C%EC%84%B1-4-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81-e684331afc77

ํ˜„๋Œ€์— ๋“ค์–ด์„œ PC์˜ ์ปดํ“จํŒ… ์„ฑ๋Šฅ์ด ์ฆ๊ฐ€ํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋„์›Œ ์‚ฌ์šฉํ•˜๋Š” ์ผ์ด ์žฆ๋‹ค.

์šด์˜์ฒด์ œ ์ž…์žฅ์—์„œ๋Š” ๋™์‹œ๋‹ค๋ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์— ๋Œ€ํ•ด, 

๋น„๋ก CPU ์ฝ”์–ด๊ฐ€ ํ•˜๋‚˜๋ผ์„œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋งŒ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ผ์ง€๋ผ๋„,

์‚ฌ์šฉ์ž๋กœ ํ•˜์—ฌ๊ธˆ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ณ‘๋ ฌ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๋Š” ์ฐฉ๊ฐ์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋งŒ์•ฝ PC๋ฅผ ํ†ตํ•ด ์Œ์•…์„ ๋“ค์œผ๋ฉด์„œ ์›น์„œํ•‘์„ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ,

์Œ์•… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๊ฒ€์ƒ‰์ฐฝ์— ํƒ€์ดํ•‘์ด ์•ˆ๋œ๋‹ค๋ฉด ์ด๋Š” ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์„ ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค.

์ด๋ฅผ ์œ„ํ•ด, ์šด์˜์ฒด์ œ๋Š” CPU๋ฅผ ํ• ๋‹นํ•  ์ž‘์—…๋“ค์— ๋Œ€ํ•œ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

๋‹จ์ˆœํžˆ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด, ์ด๋ฅผ ์ž˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

 

์Šค์ผ€์ค„๋ง์˜ ํ‰๊ฐ€ ํ•ญ๋ชฉ

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์Šค์ผ€์ค„๋ง์„ ํ•ด์•ผ ์ด๋ฅผ ์ž˜ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์„๊นŒ?

์–ด๋–ค ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•๋“ค์ด ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ์— ์•ž์„œ,

์Šค์ผ€์ค„๋ง์—์„œ ํ™œ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ‰๊ฐ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

๋Œ€ํ‘œ์ ์ธ ์Šค์ผ€์ค„๋ง์˜ ํ‰๊ฐ€ ํ•ญ๋ชฉ์—๋Š” ๋‹ค์Œ์˜ ์š”์†Œ๋“ค์ด ์กด์žฌํ•œ๋‹ค.

  • ๋ฐ˜ํ™˜ ์‹œ๊ฐ„(turnaround time): ํŠน์ • ์ž‘์—…์ด ์ž‘์—… ๋ชฉ๋ก์— ๋„์ฐฉํ•˜๊ณ , ํ•ด๋‹น ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์†Œ์š”๋œ ์‹œ๊ฐ„
  • ๊ณต์ •์„ฑ(fairness): ํŠน์ • ํ”„๋กœ์„ธ์Šค์— ์น˜์šฐ์น˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ๊ณต์ •ํ•˜๊ฒŒ CPU๊ฐ€ ํ• ๋‹น๋˜๋Š”๊ฐ€
  • ์‘๋‹ต ์‹œ๊ฐ„(response time): ํŠน์ • ์ž‘์—…์ด ์ž‘์—… ๋ชฉ๋ก์— ๋„์ฐฉํ•˜๊ณ , ํ•ด๋‹น ์ž‘์—…์ด ์ฐฉ์ˆ˜๋  ๋•Œ๊นŒ์ง€ ์†Œ์š”๋œ ์‹œ๊ฐ„

๊ทธ ์™ธ์—๋„ CPU ์ด์šฉ๋ฅ , ์˜ค๋ฒ„ํ—ค๋“œ ๋“ฑ์ด ์ถ”๊ฐ€๋กœ ์กด์žฌํ•˜๋‚˜ ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์œ„ 3๊ฐœ์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.

 

 

์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์˜ ๋ถ„๋ฅ˜ ๊ธฐ์ค€

์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•๋“ค์€ ๋‹ค์–‘ํ•œ ๋ถ„๋ฅ˜ ๊ธฐ์ค€์„ ๊ฐ–๋Š”๋‹ค. ๊ฐ„๋‹จํžˆ ์ด๋ฅผ ๋จผ์ € ์†Œ๊ฐœํ•œ ๋’ค ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์—๋Š” ์–ด๋–ค ๊ฒƒ๋“ค์ด ์กด์žฌํ•˜๋Š”์ง€ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค.

์„ ์ ํ˜• vs ๋น„์„ ์ ํ˜•

์„ ์ ์ด๋ผ๋Š” ๋ง์˜ ์˜๋ฏธ๋Š”,

์ด๋ฏธ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•ด ์šด์˜์ฒด์ œ๊ฐ€ CPU์˜ ์ œ์–ด๊ถŒ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด์„œ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋น„์„ ์ ํ˜•์€ ๋ฐ˜๋Œ€๋กœ ํ•œ๋ฒˆ CPU์— ์ž‘์—…์ด ํ• ๋‹น๋˜๋ฉด ํ•ด๋‹น ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ CPU์˜ ์ œ์–ด๊ถŒ์„ ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ๋ ค๋ฐ›์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

์ •์  vs ๋™์ 

์—ฌ๊ธฐ์„œ ์ •์ ๊ณผ ๋™์ ์ด๋ผ๋Š” ๋ง์˜ ๋Œ€์ƒ์€ ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰ ์ •์  ๋ฐฉ์‹์—์„œ๋Š” ํ•œ๋ฒˆ ๊ฒฐ์ •๋œ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๊ณ ,  

๋ฐ˜๋Œ€๋กœ ๋™์  ๋ฐฉ์‹์—์„œ๋Š” ํ•œ๋ฒˆ ๊ฒฐ์ •๋œ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ์ดํ›„ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค.

๋‹จ์ผ ๋Œ€๊ธฐ์—ด(queue) vs ๋‹ค์ค‘ ๋Œ€๊ธฐ์—ด

์ด๋Š” ๋ง ๊ทธ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋Œ€๊ธฐ์—ด์ด ํ•˜๋‚˜์ธ์ง€ ์•„๋‹ˆ๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์ธ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€์ด๋‹ค.

 

 

์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜

์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์—๋Š” ๋‹ค์Œ์˜ ๊ธฐ๋ฒ•๋“ค์ด ์กด์žฌํ•œ๋‹ค.

  • FCFS ์Šค์ผ€์ค„๋ง
  • SJF ์Šค์ผ€์ค„๋ง
  • STCF ์Šค์ผ€์ค„๋ง
  • RR ์Šค์ผ€์ค„๋ง
  • MLFQ ์Šค์ผ€์ค„๋ง
  • CFS ์Šค์ผ€์ค„๋ง

 

FCFS ์Šค์ผ€์ค„๋ง(FIFO)

First Come First Served์˜ ์•ฝ์ž๋กœ, ์˜๋ฏธ ๊ทธ๋Œ€๋กœ ๋จผ์ € ๋“ค์–ด์˜จ ์ž‘์—… ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๋จผ์ € ๋“ค์–ด์˜จ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง์ด๊ณ ,

ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ •์  ์Šค์ผ€์ค„๋ง์ด๋ฉฐ, ๋‹จ์ผ ๋Œ€๊ธฐ์—ด ์Šค์ผ€์ค„๋ง์ด๋‹ค.

๋จผ์ € ๋“ค์–ด์˜จ ์ž‘์—…์„ ์ตœ์šฐ์„ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์–ผํ•๋ณด๊ธฐ์—๋Š” ํƒ€๋‹นํ•ด ๋ณด์ด๊ณ  ๊ณต์ •์„ฑ์˜ ์ธก๋ฉด์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ด์ง€๋งŒ,

๋งŒ์•ฝ ๋จผ์ € ๋“ค์–ด์˜จ ์ž‘์—…์ด ๋‹ค๋ฅธ ์ž‘์—…์— ๋น„ํ•ด ๊ณผ๋„ํ•˜๊ฒŒ ๋ฉ์น˜๊ฐ€ ํฐ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

CPU ์Šค์ผ€์ค„๋ง์˜ ๊ด€์ ์—์„œ ๊ณต์ •์„ฑ์ด๋ž€ ๊ฒฐ๊ตญ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋น„์Šทํ•œ ์ˆ˜์ค€์œผ๋กœ CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, 

๋จผ์ € ๋“ค์–ด์˜จ ์ž‘์—…์ด ๋‹ค๋ฅธ ์ž‘์—…์— ๋น„ํ•ด ๋ฉ์น˜์˜ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๋’ค์— ๋“ค์–ด์˜จ ์ž‘์—…์€ CPU๋ฅผ ๊ฑฐ์˜ ํ• ๋‹น๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ Convoy Effect๋ผ๊ณ  ํ•˜๋Š”๋ฐ

ํ•ด๋‹น ์ƒํ™ฉ์—์„œ๋Š” ๋ฐ˜ํ™˜ ์‹œ๊ฐ„๊ณผ ์‘๋‹ต ์‹œ๊ฐ„์˜ ์ธก๋ฉด์—์„œ๋„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Œ์—๋„ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

SJF ์Šค์ผ€์ค„๋ง

Shortest Job First์˜ ์•ฝ์ž๋กœ, ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ€์žฅ ์งง์€ ์ž‘์—…์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๋‹จ์ผ ๋Œ€๊ธฐ์—ด๋กœ ๊ตฌํ˜„๋œ๋‹ค.

๋˜ํ•œ ํ•ด๋‹น ๋ฐฉ์‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์„ ์ ํ˜•์œผ๋กœ ๊ตฌํ˜„๋˜๋ฉฐ,

ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ CPU ์‚ฌ์šฉ ์‹œ๊ฐ„(CPU burst time)์— ๋Œ€ํ•œ ์˜ˆ์ธก์น˜๋กœ ๊ฒฐ์ •๋˜๋Š” ๋™์  ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์ด๋‹ค.

SJF ์Šค์ผ€์ค„๋ง์€ ๋ชจ๋“  ์ž‘์—…์ด ๋™์‹œ์— ๋Œ€๊ธฐ์—ด์— ๋“ค์–ด์˜ค๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์‘๋‹ต ์‹œ๊ฐ„, ๊ณต์ •์„ฑ์˜ ํ‰๊ฐ€ ๊ธฐ์ค€ ์ƒ ์ตœ์ ์˜ ๊ธฐ๋ฒ•์ด์ง€๋งŒ,

ํ˜„์‹ค์˜ ์ƒํ™ฉ์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. 

๋”ฐ๋ผ์„œ ๋จผ์ € ๋ฉ์น˜๊ฐ€ ํฐ ์ž‘์—…์ด ๋“ค์–ด์˜จ ๋’ค์—, ์ˆœ์ฐจ์ ์œผ๋กœ ์งง์€ ์ž‘์—…์ด ๋“ค์–ด์˜จ๋‹ค๋ฉด

FCFS ์Šค์ผ€์ค„๋ง์—์„œ ๋ฐœ์ƒํ–ˆ๋˜ Convoy Effect๊ฐ€ ๋™์ผํ•˜๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค.

๋˜ํ•œ ๊ฐ ์ž‘์—…์˜ CPU burst time์„ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ์ œ์ ๋„ ์กด์žฌํ•œ๋‹ค.

 

STCF ์Šค์ผ€์ค„๋ง

Shortest Time-to-Completion First์˜ ์•ฝ์ž๋กœ,

ํ˜„์žฌ ๋Œ€๊ธฐ์—ด์— ์กด์žฌํ•˜๋Š” ์ž‘์—…๋“ค ์ค‘ ์™„๋ฃŒ๊นŒ์ง€ ์ž”์—ฌ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ์ž‘์—…์„ ์šฐ์„ ์œผ๋กœ ์ˆ˜ํ–‰์‹œํ‚จ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์„ ์œ„ํ•ด์„œ๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ์™€์ค‘์—๋„ ์–ธ์ œ๋“ ์ง€ ์ž”์—ฌ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ์ž‘์—…์œผ๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์„ ์  ๋ฐฉ์‹์˜ ์Šค์ผ€์ค„๋ง์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ๋™์  ์Šค์ผ€์ค„๋ง์ด๋ฉด์„œ ๋‹จ์ผ ๋Œ€๊ธฐ์—ด์„ ๊ฐ–๋Š” ์Šค์ผ€์ค„๋ง์ด๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ SJF ์Šค์ผ€์ค„๋ง๊ณผ ๋‹ฌ๋ฆฌ, ๋ชจ๋“  ์ž‘์—…์ด ๋™์‹œ์— ๋Œ€๊ธฐ์—ด์— ํฌํ•จ๋˜์ง€ ์•Š๋”๋ผ๋„,

๋ฐ˜ํ™˜ ์‹œ๊ฐ„๊ณผ ๊ณต์ •์„ฑ ๋งŒ์„ ๊ณ ๋ คํ–ˆ์„ ๋•Œ๋Š” ์ •๋ง ํ›Œ๋ฅญํ•œ ๋ฐฉ์‹์ด๋‹ค.

ํ•˜์ง€๋งŒ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ณ ๋ คํ–ˆ์„ ๋•Œ๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

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

์ด๋Š” ์ด๋ฏธ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ชจ๋“  ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์‘๋‹ต ์‹œ๊ฐ„ ๊ด€์ ์—์„œ๋Š” ์ด๋ฏธ ์†Œ๊ฐœ๋œ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹๋“ค์€ ๋ชจ๋‘ ์ข‹์€ ๋ฐฉ์‹์€ ์•„๋‹ˆ๋‹ค.

 

RR ์Šค์ผ€์ค„๋ง

Round-Robin์˜ ์•ฝ์ž๋กœ,

ํ•ด๋‹น ๋ฐฉ์‹์€ ์‚ฌ์ „์— ํƒ€์ž„ ํ€€ํ…€ ๊ฐ’์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๊ฐ’์„ ์„ค์ •ํ•œ ํ›„ ๋ชจ๋“  ๋Œ€๊ธฐ์—ด ๋‚ด ํ”„๋กœ์„ธ์Šค๋“ค์— ๋Œ€ํ•ด 

ํƒ€์ž„ ํ€€ํ…€๋งŒํผ์”ฉ๋งŒ CPU๋ฅผ ์ ์œ ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋Œ€๊ธฐ์—ด ๋‚ด ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…๋“ค์ด ํƒ€์ž„ ๊ถŒํ…€ ๊ฐ’๋งŒํผ ํ•œ ๋ฒˆ์”ฉ ์ˆ˜ํ–‰๋˜๊ณ  ๋‚˜๋ฉด,

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๊ณผ์ •์„ ๊ณ„์†ํ•ด์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋™์ž‘ํ•˜๋Š” ํ•ด๋‹น ๋ฐฉ์‹์˜ ํŠน์„ฑ์ƒ ์„ ์ ํ˜•์ด๋ฉฐ ์ •์ ์ด๊ณ , ๋‹จ์ผ ๋Œ€๊ธฐ์—ด ์Šค์ผ€์ค„๋ง์ด๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๊ณต์ •์„ฑ์˜ ์ธก๋ฉด์—์„œ ๋ณด์•˜์„ ๋•Œ ์ •๋ง ํ›Œ๋ฅญํ•œ ๋ฐฉ์‹์ด๋‹ค.

๋˜ํ•œ ์‘๋‹ต ์‹œ๊ฐ„์˜ ์ธก๋ฉด์—์„œ๋„, ์œ„์—์„œ ์ด๋ฏธ ์–ธ๊ธ‰ํ•œ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹๋“ค์— ๋น„ํ•ด ํ›จ์”ฌ ๋‚˜์€ ๋ฐฉ์‹์ด๋‹ค.

๋‹ค๋งŒ, ๋ฐ˜ํ™˜ ์‹œ๊ฐ„์˜ ์ธก๋ฉด์—์„œ ๋ณด์•˜์„ ๋•Œ๋Š” ๊ฑฐ์˜ ์ตœ์•…์ด๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ณต์ •์„ฑ์„ ์šฐ์„ ์‹œํ•˜๋Š” ๋ฐฉ์‹์—์„œ๋Š” ๋ฐ˜ํ™˜ ์‹œ๊ฐ„๊ณผ ๊ฐ™์€ ํ‰๊ฐ€ ์ฒ™๋„๋Š” ๋‚˜์˜๊ฒŒ ๋‚˜์˜ฌ ์ˆ˜๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋‹น์—ฐํ•œ ๊ฒฐ๊ณผ์ด๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๋˜ํ•œ ํƒ€์ž„ ํ€€ํ…€ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์ง„๋‹ค.

๋งŒ์•ฝ ํƒ€์ž„ ํ€€ํ…€ ๊ฐ’์„ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘๊ฒŒ ๊ฐ€์ ธ๊ฐ„๋‹ค๋ฉด, ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„์€ ๋”์šฑ ์ข‹์•„์งˆ ๊ฒƒ์ด๋‹ค.

๋‹ค๋งŒ ํƒ€์ž„ ํ€€ํ…€ ๊ฐ’์ด ๋„ˆ๋ฌด ์ž‘์•„์ง€๊ฒŒ ๋˜๋ฉด, ์ฝ˜ํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋„ˆ๋ฌด ์ž์ฃผ ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ ์ƒ ์ข‹์ง€ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. 

๋”ฐ๋ผ์„œ ๋ผ์šด๋“œ๋กœ๋นˆ ๋ฐฉ์‹์—์„œ๋Š” ํ•ด๋‹น trade-off๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ ์ ˆํ•œ ํƒ€์ž„ ํ€€ํ…€ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋ฐ˜ํ™˜ ์‹œ๊ฐ„์˜ ์ธก๋ฉด์—์„œ ๊ทธ๋ฆฌ ์ข‹์ง€ ๋ชปํ•œ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋งŽ์ด ์“ฐ์ด๋Š” ๋ฐฉ์‹์ด๋‹ค. 

๊ทธ ์ด์œ ๋กœ๋Š”, 

ํ˜„๋Œ€์˜ ์ปดํ“จํ„ฐ์—์„œ ์‘๋‹ต ์‹œ๊ฐ„์€ ๊ฐ€์žฅ ์ฒด๊ฐ์ด ์ž˜๋˜๋Š” ์„ฑ๋Šฅ ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜๋ผ๋Š” ์ ๊ณผ

๋ง ๊ทธ๋Œ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋ฐ˜ํ™˜ ์‹œ๊ฐ„์ด ์•ˆ ์ข‹์€ ๊ฒƒ์ด์ง€ ์ปดํ“จํŒ… ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์œผ๋กœ ์ ˆ๋Œ€์ ์œผ๋กœ๋Š” ๊ทธ ์ฐจ์ด๊ฐ€ ๋ฏธ๋ฏธํ•˜๋‹ค๋Š” ์ ์ด ์žˆ๋‹ค. 

 

MLFQ ์Šค์ผ€์ค„๋ง

์ถœ์ฒ˜: https://www.geeksforgeeks.org/difference-between-multilevel-queue-mlq-and-multi-level-feedback-queue-mlfq-cpu-scheduling-algorithms/

Multi-level Feedback Queue์˜ ์•ฝ์ž๋กœ,

ํ•ด๋‹น ๋ฐฉ์‹์€ ๊ฐ ์ž‘์—…์˜ CPU burst time์„ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ํ•œ๊ณ„ ์†์—์„œ ์‘๋‹ต ์‹œ๊ฐ„๊ณผ ๋ฐ˜ํ™˜ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๋ฐฉ์‹์ด๋‹ค.

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ๋‹ค์ค‘ ๋Œ€๊ธฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ ์ด๋•Œ ๊ฐ ๋Œ€๊ธฐ์—ด์€ ํ•˜๋‚˜์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ฆ‰, ์šฐ์„  ์ˆœ์œ„ ๋ณ„๋กœ ๋Œ€๊ธฐ์—ด์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋•Œ ์šฐ์„ ์ˆœ์œ„๋Š” ์ •์ ์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ,

์ฒ˜์Œ ์ž‘์—…์ด ๋“ค์–ด์™”์„ ๋•Œ๋Š” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ฐ€ ์‹คํ–‰์ด ๋จ์— ๋”ฐ๋ผ ์ ์ฐจ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์•„์ง€๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•œ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๋‹ค์Œ์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  1. ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ํ์— ์กด์žฌํ•˜๋Š” ์ž‘์—…๋ถ€ํ„ฐ ์‹คํ–‰
  2. ํŠน์ • ํ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์ด ์กด์žฌํ•œ๋‹ค๋ฉด, ์ด๋Š” RR ๋ฐฉ์‹์œผ๋กœ ์Šค์ผ€์ค„๋ง
  3. ์ƒˆ๋กœ์šด ์ž‘์—…์ด ๋“ค์–ด์˜ค๋ฉด ์ด๋ฅผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ํ์— ๋ฐฐ์น˜
  4. ํŠน์ • ์ž‘์—…์ด ํƒ€์ž„ ํ€€ํ…€์„ ๋ชจ๋‘ ์†Œ์ง„ํ•˜์ง€ ๋ชปํ•œ ์ฑ„ CPU๋ฅผ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ์—” ๊ธฐ์กด ํ์— ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ํƒ€์ž„ ํ€€ํ…€์„ ๋ชจ๋‘ ์†Œ์ง„ํ•œ ๊ฒฝ์šฐ์—๋Š” ํ•œ๋‹จ๊ณ„ ๋‚ฎ์€ ํ๋กœ ์ด๋™
  5. ์‚ฌ์ „์— ์„ค์ •ํ•ด๋‘” ๊ธฐ๊ฐ„์ด ์ง€๋‚  ๊ฒฝ์šฐ ๋ชจ๋“  ํ์˜ ์ž‘์—…์„ ์ตœ์ƒ์œ„ ํ๋กœ ์ด๋™(Aging)

์ด๋ฅผ ํ†ตํ•ด MLFQ๋Š” ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ณ ๋ คํ•˜๋ฉด์„œ๋„ ์ž‘์—…๋“ค์˜ ์‘๋‹ต, ๋ฐ˜ํ™˜ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•œ๋‹ค. 

๋˜ํ•œ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…๋“ค์ด ๊ธฐ์•„ ์ƒํƒœ์— ๋น ์ง€๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์—ฌ Aging ๊ธฐ๋ฒ•์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ์„ ์ ํ˜•, ๋™์ , ๋‹ค์ค‘ ๋Œ€๊ธฐ์—ด ์Šค์ผ€์ค„๋ง์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ๋ฐฉ์‹์€ ๊ตฌํ˜„์— ๋‚œ์ด๋„๊ฐ€ ์žˆ๋Š” ๋ฐฉ์‹์ด์ง€๋งŒ

์‹ค์‹œ๊ฐ„์œผ๋กœ ์‘๋‹ต์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๋Œ€ํ™”ํ˜• ์ž‘์—…(ex. ํ‚ค๋ณด๋“œ ์ž…๋ ฅ)์— ๋Œ€ํ•ด ๋‚˜์˜์ง€ ์•Š์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๊ณ ,

๋ฉ์น˜๊ฐ€ ํฐ ์ž‘์—…๋“ค์ด ์ง€์†์ ์œผ๋กœ CPU๋ฅผ ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค๋Š” ์ ์—์„œ 

๋งŽ์€ ์šด์˜์ฒด์ œ์—์„œ ์ฑ„ํƒํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํŠนํžˆ, Windows ์šด์˜์ฒด์ œ์—์„œ ์ด๋ฅผ ๊ธฐ๋ณธ ์Šค์ผ€์ค„๋Ÿฌ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

CFS ์Šค์ผ€์ค„๋ง

์ถœ์ฒ˜: https://www.linuxjournal.com/node/10267

Completely Fair Scheduler์˜ ์•ฝ์ž๋กœ, ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ•ด๋‹น ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์€ ๊ณต์ •์„ฑ์„ ์ตœ์šฐ์„  ๋ชฉํ‘œ๋กœ ์žก๋Š”๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ํ•ด๋‹น ๋ฐฉ์‹์—์„œ๋Š” sched_latency์™€ min_granularity๋ผ๋Š” ๋‘ ๋ณ€์ˆ˜๋ฅผ ๋จผ์ € ์„ค์ •ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ’์€ ๊ฐ๊ฐ 48ms์™€ 6ms๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

์—ฌ๊ธฐ์—์„œ sched_latency๋Š” ํ˜„์žฌ ๋Œ€๊ธฐ์—ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…๋“ค์ด ๊ณต์œ ํ•˜๋Š” ํ•˜๋‚˜์˜ ์‚ฌ์ดํด ์ฃผ๊ธฐ์ด๋‹ค.

๋งŒ์•ฝ ๋Œ€๊ธฐ์—ด ๋‚ด ํ”„๋กœ์„ธ์Šค๊ฐ€ 4๊ฐœ ์กด์žฌํ•œ๋‹ค๋ฉด, 48ms๋ฅผ 4๋กœ ๋‚˜๋ˆ  ๊ฐ๊ฐ 12ms์”ฉ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.

์ด์ œ ๊ฐ ์ž‘์—…์€ 12ms์”ฉ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๊ณ , ๊ฐ ์ž‘์—…์ด ๊ฐ–๋Š” vruntime์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์‹คํ–‰ ์‹œ๊ฐ„์„ ์Œ“๋Š” ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

์ด ๋•Œ ๋‹ค์Œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์€ vruntime์ด ๊ฐ€์žฅ ์ž‘์€ ์ž‘์—…์„ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

๋งŒ์•ฝ ๋Œ€๊ธฐ์—ด ๋‚ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์€ ์ƒํ™ฉ์—์„œ๋Š”, ๊ฐ ์ž‘์—…์ด ํ• ๋‹น ๋ฐ›๋Š” ์‹œ๊ฐ„์ด ๊ต‰์žฅํžˆ ์งง์„ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋” ์ž์ฃผ ๋ฐœ์ƒํ•˜์—ฌ ์„ฑ๋Šฅ ์ƒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด min_granularity ๊ฐ’์ธ๋ฐ, ๊ฐ ์ž‘์—…์— ํ• ๋‹น๋˜๋Š” ์‹œ๊ฐ„์ด ํ•ด๋‹น ๊ฐ’๋ณด๋‹ค ์ž‘์•„์ง€๋”๋ผ๋„ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๋ฌด์กฐ๊ฑด min_granularity ๊ฐ’ ๋งŒํผ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰์‹œํ‚จ๋‹ค. 

CFS๊ฐ€ ๊ณต์ •์„ฑ์„ ์ตœ์šฐ์„  ๋ชฉํ‘œ๋กœ ์žก๊ธฐ๋Š” ํ•˜๋‚˜, ๊ทธ๋ ‡๋‹ค๊ณ  ์„ฑ๋Šฅ์ด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€๋งŒ์€ ์•Š๋‹ค.

CFS ๋ฐฉ์‹์—์„œ๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ž‘์—…๋“ค์„ Red-Black ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ์ž‘์—…๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ ํ•ด๋‹น ๋ถ„์•ผ์—์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹์— ๋น„ํ•ด, ํ™•์žฅ์„ฑ์ด ๋” ๋›ฐ์–ด๋‚˜๋‹ค.

CFS๋Š” ์œ„์™€ ๊ฐ™์€ ํŠน์ง•๋“ค์„ ํ†ตํ•ด ํ™•์žฅ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ์–ด๋А์ •๋„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์ด์— ๋ฆฌ๋ˆ…์Šค์—์„œ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์“ฐ์ด๋Š” ์Šค์ผ€์ค„๋Ÿฌ์ด๋‹ค. 

(nice ์กฐ์ •์„ ํ†ตํ•œ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ• ๋‹น ์‹œ๊ฐ„ ๊ฐ€์ค‘์น˜ ์กฐ์ •์€ ๊ธ€์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง„ ํƒ“์— ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ๋‹ค.)

 

 

 

์ฐธ์กฐ

OSTEP(Operating System Three Easy Pieces), 2015 - Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau