๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป iOSun
article thumbnail

 

 

ํ”„๋กœ์„ธ์Šค ํ˜น์€ ์Šค๋ ˆ๋“œ์˜ ๋™๊ธฐํ™”๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ๋™๊ธฐํ™”๋ž€?
    • ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋งŒ ๊ณต์œ  ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒํ˜ธ ๋ฐฐ์ œ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋™๊ธฐํ™”๋ฅผ ํ•ด์•ผํ•˜๋Š” ์ด์œ 
    • ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์ธ ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๊ฐ€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ์— ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ์ƒํ™ฉ(๊ฒฝ์Ÿ ์ƒํ™ฉ)์ด ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋Ÿฐ ๊ฒฝ์Ÿ ์ƒํ™ฉ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋™๊ธฐํ™” ๋ฌธ์ œ์ด๋‹ค.
    • ์ด๋Ÿฐ ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ํ˜น์€ ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋งŒ์ด ํ•œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋™๊ธฐํ™” ๋ฐฉ๋ฒ•
    • Mutex(๋ฎคํ…์Šค), Semaphore(์„ธ๋งˆํฌ์–ด) ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ๋ฎคํ…์Šค๋Š” ํ•œ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋งŒ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์„œ ๊ฒฝ์Ÿ ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์„ธ๋งˆํฌ์–ด๋Š” ์ง€์ •ํ•œ ์ˆ˜ ๋งŒํผ์˜ ์“ฐ๋ ˆ๋“œ๋งŒ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์ˆ˜์ค€์˜ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ๋Š” ์ƒ์„ฑ ์ฃผ์ฒด๊ฐ€ ๋ˆ„๊ตฌ๋ƒ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„

์‚ฌ์šฉ์ž๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ์ด๊ณ , OS์˜ ์ปค๋„์ด ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ

 

 

์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์Šค๋ ˆ๋“œ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.
  • ์Šค๋ ˆ๋“œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ–‰์œ„๋ฅผ ์‚ฌ์šฉ์ž ์˜์—ญ์—์„œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ปค๋„์€ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ์˜ ์กด์žฌ๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ณ , ์Šค๋ ˆ๋“œ ๊ตํ™˜์— ๊ฐœ์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ N๊ฐœ๊ฐ€ ์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ 1๊ฐœ์— ๋งคํ•‘๋˜๋ฏ€๋กœ, ๋‹ค๋Œ€์ผ ์Šค๋ ˆ๋“œ ๋งคํ•‘์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์žฅ์ 

  • ์ปค๋„์— ๋…๋ฆฝ์ ์œผ๋กœ ์Šค์ผ€์ค„๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค → ๋ชจ๋“  ์šด์˜์ฒด์ œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค, ์ด์‹์„ฑ์ด ๋†’๋‹ค.
  • ์Šค์ผ€์ค„๋ง์ด๋‚˜ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ปค๋„์„ ํ˜ธ์ถœx → ์ปค๋„ ์˜์—ญ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
  • ์ปค๋„์ด ์•„๋‹Œ ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์Šค๋ ˆ๋“œ ์Šค์ผ€์ค„๋ง์„ ์ œ์–ด → ์œ ์—ฐํ•œ ์Šค์ผ€์ค„๋ง์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋‹จ์ 

  • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋“ค ์ค‘, ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด, ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋“ค์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.
  • ์ปค๋„์ด ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ์— ๊ฐœ์ž…ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ณดํ˜ธ์— ์ปค๋„์˜ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ˆ˜์ค€์˜ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•๊นŒ์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

  • ์ปค๋„์ด ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ๋ฅผ ์•Œ์ง€ ๋ชปํ•œ๋‹ค
    • ์žฅ์ : ์Šค์ผ€์ค„๋ง์ด๋‚˜ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ปค๋„์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค → ์ปค๋„ ์˜์—ญ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
    • ๋‹จ์ : ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ณดํ˜ธ์— ์ปค๋„์˜ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ

์ปค๋„์ด ์Šค๋ ˆ๋“œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ์™€ ์ปค๋„ ์ˆ˜์ค€ ์Šค๋ ˆ๋“œ๊ฐ€ 1๋Œ€1๋กœ ๋งคํ•‘๋œ๋‹ค.

 

๋‹จ์ 

์ปค๋„์ด ์ง์ ‘ ์Šค์ผ€์ค„๋งํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„์˜ ๊ด€๋ฆฌ ์ง€์›์„ ๋งŽ์ด ๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ๋งŒํผ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค.

์žฅ์ 

์ปค๋„์ด ๊ฐ ์Šค๋ ˆ๋“œ๋“ค์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ํ• ๋‹น๋œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋“ค ์ค‘ ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋Œ€๊ธฐ์ƒํƒœ๊ฐ€ ๋˜๋”๋ผ๋„, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋“ค์€ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

  • <์ปค๋„>์ด ์Šค๋ ˆ๋“œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…์„ ๊ด€๋ฆฌ

 

CPU ์Šค์ผ€์ค„๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

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

 

nonpreemptive(๋น„์„ ์ ํ˜•)

  • ๊ฐ•์ œ๋กœ ๋นผ์•—์ง€ ์•Š๊ณ  ์ž์ง„ ๋ฐ˜๋‚ฉ

preemptive(์„ ์ ํ˜•)

  • ๊ฐ•์ œ๋กœ ๋นผ์•—์Œ

 

์Šค์ผ€์ค„๋ง ์„ฑ๋Šฅ ํ‰๊ฐ€

CPU utilization (์ด์šฉ๋ฅ )

  • ์ „์ฒด ์‹œ๊ฐ„ ์ค‘์—์„œ CPU๊ฐ€ ์ผ์„ ํ•œ ์‹œ๊ฐ„์˜ ๋น„์œจ
  • keep the CPU as busy as possible

Throughput (์ฒ˜๋ฆฌ๋Ÿ‰)

  • ์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋™์•ˆ ์ค€๋น„ ํ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ๋ช‡ ๊ฐœ๋ฅผ ๋๋งˆ์ณค๋Š”์ง€ ๋‚˜ํƒ€๋ƒ„
  • ์ฆ‰ CPU์˜ ์„œ๋น„์Šค๋ฅผ ์›ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ๋ช‡ ๊ฐœ๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ์˜ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฒˆ CPU ๋ฒ„์ŠคํŠธ๋ฅผ ๋๋‚ด์–ด ์ค€๋น„ ํ๋ฅผ ๋– ๋‚ฌ์ง€ ์ธก์ •ํ•œ ๊ฒƒ
  • ๋” ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋“ค์ด CPU ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ์งง์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์šฐ์„ ์ ์œผ๋กœ CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌ
  • number of processes that complete their execution per time until

Turnaround time (์†Œ์š” ์‹œ๊ฐ„, ๋ฐ˜ํ™˜ ์‹œ๊ฐ„)

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์š”์ฒญํ•œ ์‹œ์ ๋ถ€ํ„ฐ ์ž์‹ ์ด ์›ํ•˜๋Š” ๋งŒํผ CPU๋ฅผ ๋‹ค ์“ฐ๊ณ  CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„
  • (์ค€๋น„ ํ์—์„œ ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„) + (์‹ค์ œ๋กœ CPU๋ฅผ ์‚ฌ์šฉํ•œ ์‹œ๊ฐ„)
  • amount of time to execute a particular process

Waiting time (๋Œ€๊ธฐ ์‹œ๊ฐ„)

  • CPU ๋ฒ„์ŠคํŠธ ๊ธฐ๊ฐ„ ์ค‘ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค€๋น„ ํ์—์„œ CPU๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์˜ ํ•ฉ์„ ๋œปํ•œ๋‹ค.
  • ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, ํ•œ ๋ฒˆ์˜ CPU ๋ฒ„์ŠคํŠธ ์ค‘์—๋„ ์ค€๋น„ ํ์—์„œ ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋•Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๋๋‚˜๊ธฐ๊นŒ์ง€ ์ค€๋น„ ํ์—์„œ ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์˜ ํ•ฉ์„ ๋œปํ•˜๊ฒŒ ๋œ๋‹ค.
  • amount of time a process has been waiting in the ready queue

Response time (์‘๋‹ต ์‹œ๊ฐ„)

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค€๋น„ ํ์— ๋“ค์–ด์˜จ ํ›„ ์ฒซ ๋ฒˆ์งธ CPU๋ฅผ ํš๋“ํ•˜๊ธฐ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์„ ๋œปํ•œ๋‹ค.
  • ์‘๋‹ต ์‹œ๊ฐ„์€ ๋Œ€ํ™”ํ˜• ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•œ ์„ฑ๋Šฅ ์ฒ™๋„๋กœ์„œ, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์„ฑ๋Šฅ ์ฒ™๋„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

CPU ์Šค์ผ€์ค„๋ง ๋ฐฉ๋ฒ•์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”?

FCFS (First-Come First-Served)

  • ๋น„์„ ์ ํ˜• ์Šค์ผ€์ฅด๋ง
  • ๋จผ์ € ์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์Šค์ผ€์ค„๋ง
  • CPU๋ฅผ ์˜ค๋ž˜ ์“ฐ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์™€์„œ CPU๋ฅผ ํ• ๋‹น ๋ฐ›์œผ๋ฉด, ๋‚˜๋จธ์ง€ ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ „๋ถ€ ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋ฏ€๋กœ ํšจ์œจ์ ์ด์ง€ ์•Š์Œ

SJF (Shortest-Job-First)

  • SJF๋Š” CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ œ์ผ ๋จผ์ € CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹
  • ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๊ฐ€์žฅ ์งง๊ฒŒ ํ•˜๋Š” ์ตœ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹

  • nonpreemptive (๋น„์„ ์ ํ˜•)
    • ์ผ๋‹จ CPU๋ฅผ ์žก์œผ๋ฉด ๋” ์งง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์™€๋„ CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ CPU๋ฅผ ์„ ์ ๋‹นํ•˜์ง€ ์•Š์Œ
  • preemptive (์„ ์ ํ˜•)
    • SRTF (Shortest-Remaining-Time-First)
    • CPU๋ฅผ ์žก์•˜๋‹ค ํ•˜๋”๋ผ๋„ ๋” ์งง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜ค๋ฉด CPU๋ฅผ ๋นผ์•—๊น€

๋ฌธ์ œ์ 

  • Starvation (๊ธฐ์•„)
    • ์งง์€ ํ”„๋กœ์„ธ์Šค๋กœ ์ธํ•ด ๊ธด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜์›ํžˆ CPU๋ฅผ ์žก์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ
  • CPU ๋ฒ„์ŠคํŠธ ์‹œ๊ฐ„์„ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†์Œ
    • ๊ณผ๊ฑฐ CPU ์‚ฌ์šฉ ์‹œ๊ฐ„์„ ํ†ตํ•ด ์ถ”์ •๋งŒ ๊ฐ€๋Šฅ

์šฐ์„  ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง (Priority Scheduling)

  • ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์ œ์ผ ๋†’์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ํ• ๋‹น
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ์„  ์ˆœ์œ„ ๊ฐ’ (priority number)๊ฐ€ ์ž‘์„ ์ˆ˜๋ก ๋†’์€ ์šฐ์„  ์ˆœ์œ„

๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹

  • nonpreemptive (๋น„์„ ์ ํ˜•)
    • ์ผ๋‹จ CPU๋ฅผ ์žก์œผ๋ฉด ๋” ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์™€๋„ CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ CPU๋ฅผ ์„ ์ ๋‹นํ•˜์ง€ ์•Š์Œ
  • preemptive (์„ ์ ํ˜•)
    • CPU๋ฅผ ์žก์•˜๋‹ค ํ•˜๋”๋ผ๋„ ๋” ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜ค๋ฉด CPU๋ฅผ ๋นผ์•—๊น€
  • SJF๋Š” ์ผ์ข…์˜ ์šฐ์„  ์ˆœ์œ„ ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ (์šฐ์„  ์ˆœ์œ„ = ์˜ˆ์ƒ๋˜๋Š” ๋‹ค์Œ CPU ๋ฒ„์ŠคํŠธ ์‹œ๊ฐ„)

๋ฌธ์ œ์ 

  • Starvation (๊ธฐ์•„): ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋Š” ์˜์›ํžˆ CPU๋ฅผ ์žก์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  • Aging (๋…ธํ™”): ์•„๋ฌด๋ฆฌ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋ผ ํ•˜๋”๋ผ๋„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ์ง€๋‚˜๋ฉด ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ๊ธฐ๋ฒ•

Round Robin (RR)

  • ์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํ• ๋‹น ์‹œ๊ฐ„์ธ time quantum ์„ ๊ฐ€์ง
  • ํ• ๋‹น ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ๋นผ์•—๊ธฐ๊ณ  Ready Queue ๋งจ ๋’ค์— ๊ฐ€์„œ ์ค„์„ ์„œ๊ฒŒ ๋จ
  • ์งง์€ ์‘๋‹ต ์‹œ๊ฐ„์„ ๋ณด์žฅํ•จ
    • ์กฐ๊ธˆ์”ฉ CPU๋ฅผ ์คฌ๋‹ค ๋บ์—ˆ๋‹ค๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU๋ฅผ ์ตœ์ดˆ๋กœ ์–ป๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์งง์Œ
  • ์„ฑ๋Šฅ
    • q๊ฐ€ ์ปค์งˆ ์ˆ˜๋ก FCFS์— ๊ฐ€๊นŒ์›Œ์ง
    • q๊ฐ€ ์ž‘์„ ์ˆ˜๋ก context switch ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•จ
  • ์ผ๋ฐ˜์ ์œผ๋กœ SJF๋ณด๋‹ค **ํ‰๊ท  turnaround time(์†Œ์š” ์‹œ๊ฐ„)**์ด ๊ธธ์ง€๋งŒ, ์‘๋‹ต ์‹œ๊ฐ„์€ ์งง์Œ
  • ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” job๊ณผ ์งง๊ฒŒ ๊ฑธ๋ฆฌ๋Š” job์ด ์„ž์—ฌ ์žˆ์„ ๋•Œ๋Š” ํšจ์œจ์ ์ด์ง€๋งŒ, ๋ชจ๋“  ์‹œ๊ฐ„์ด ๋™์ผํ•œ job๋งŒ ์žˆ์„ ๋•Œ๋Š” ๋น„ํšจ์œจ์ 

 

 

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ, ๋ธ”๋กœํ‚น๊ณผ ๋„Œ๋ธ”๋กœํ‚น์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Blocking(๋ธ”๋กœํ‚น)๊ณผ Non-blocking(๋…ผ๋ธ”๋กœํ‚น)

  • A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ์ œ์–ด๊ถŒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.
  • ์ œ์–ด๊ถŒ
    • ์ œ์–ด๊ถŒ์€ ์ž์‹ (ํ•จ์ˆ˜)์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๊ถŒ๋ฆฌ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค. ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋Š” ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๋๊นŒ์ง€ ์‹คํ–‰ํ•œ ํ›„, ์ž์‹ ์„ ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜์—๊ฒŒ ๋Œ๋ ค์ค€๋‹ค.

1) ๋ธ”๋กœํ‚น

๋ธ”๋กœํ‚น์€ A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ์ œ์–ด๊ถŒ์„ A๊ฐ€ ํ˜ธ์ถœํ•œ B ํ•จ์ˆ˜์— ๋„˜๊ฒจ์ค€๋‹ค.

 

2) ๋…ผ๋ธ”๋กœํ‚น

๋…ผ๋ธ”๋กœํ‚น์€ Aํ•จ์ˆ˜๊ฐ€ Bํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด๋„ ์ œ์–ด๊ถŒ์€ ๊ทธ๋Œ€๋กœ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋‹ค.


Synchronous(๋™๊ธฐ)์™€ Asynchronous(๋น„๋™๊ธฐ)

  • ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ์˜ ์ฐจ์ด๋Š” ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์˜ ์ž‘์—… ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ์‹ ๊ฒฝ์“ฐ๋Š”์ง€์˜ ์—ฌ๋ถ€์˜ ์ฐจ์ด์ด๋‹ค.

1) ๋™๊ธฐ

ํ•จ์ˆ˜ A๊ฐ€ ํ•จ์ˆ˜ B๋ฅผ ํ˜ธ์ถœํ•œ ๋’ค, ํ•จ์ˆ˜ B์˜ ๋ฆฌํ„ด๊ฐ’์„ ๊ณ„์† ํ™•์ธํ•˜๋ฉด์„œ ์‹ ๊ฒฝ์“ฐ๋Š” ๊ฒƒ์ด ๋™๊ธฐ์ด๋‹ค.

 

2) ๋น„๋™๊ธฐ

ํ•จ์ˆ˜ A๊ฐ€ ํ•จ์ˆ˜ B๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•ด์„œ, ํ•จ์ˆ˜ B์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ํ•จ๊ป˜ ๋ณด๋‚ธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

ํ•จ์ˆ˜ A๋Š” ํ•จ์ˆ˜ B๋ฅผ ํ˜ธ์ถœํ•œ ํ›„๋กœ ํ•จ์ˆ˜ B์˜ ์ž‘์—… ์™„๋ฃŒ ์—ฌ๋ถ€์—๋Š” ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

 

'CS > ์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CS ๋ฉด์ ‘ ์งˆ๋ฌธ] ํ”„๋กœ์„ธ์Šค(1)  (2) 2023.05.17
profile

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป iOSun

@iosun

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!

profile on loading

Loading...