Context Switching
๐Ÿ™Š

Context Switching

Created
Jan 17, 2024 05:33 AM
Last edited time
Last updated April 26, 2024
Tags
CS
Language
URL

Context Switching ์ด๋ž€ ?

๐Ÿ’ก
ํ˜„์žฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” Task(Process, Tread)์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ์ง„ํ–‰ํ•  Task์˜ ์ƒํƒœ ๊ฐ’์„ ์ฝ์–ด ์ ์šฉํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.
ย 
  • ๋งค๋ฒˆ ํ•˜๋‚˜์˜ Task๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‹ค์Œ Task๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜์‘ ์†๋„๊ฐ€ ๋งค์šฐ ๋Š๋ฆฌ๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ๋ถˆํŽธํ•œ๋‹ค.
  • Task์˜ ๋Œ€๋ถ€๋ถ„ ์ •๋ณด๋Š” Register์— ์ €์žฅ๋˜๊ณ  PCB(Process Control Block)๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค.
  • ํ˜„์žฌ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” Task์˜ PCB ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. (Process Stack, Ready Queue)
  • ๋‹ค์Œ ์‹คํ–‰ํ•  Task์˜ PCB ์ •๋ณด๋ฅผ ์ฝ์–ด Register์— ์ ์žฌํ•˜๊ณ  CPU๊ฐ€ ์ด์ „์— ์ง„ํ–‰ํ–ˆ๋˜ ๊ณผ์ •์„ ์—ฐ์†์ ์œผ๋กœ ์ˆ˜ํ–‰์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ž‘์—… ๋‹จ์œ„ ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋˜๋Š” ์Šค๋ ˆ๋“œ ๊ฐ„์—์„œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

PCB(Process Control Block)

  • ํฌ์ธํ„ฐ
    • ํ”„๋กœ์„ธ์Šค์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๋Š” ํฌ์ธํ„ฐ ์ •๋ณด.
  • ํ”„๋กœ์„ธ์Šค ์ƒํƒœ
    • ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ ์ƒํƒœ (์ƒ์„ฑ(New), ์ค€๋น„(Ready), ์‹คํ–‰(Running), ๋Œ€๊ธฐ(Waiting), ์ข…๋ฃŒ(Terminated))๋ฅผ ์ €์žฅ.
  • ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—๋Š” ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž๋ฅผ ์ €์žฅํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ID ๋˜๋Š” PID๋ผ๋Š” ๊ณ ์œ  ํ•œ ID๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ
    • ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์‹คํ–‰๋  ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์นด์šดํ„ฐ๋ฅผ ์ €์žฅ.
  • ๋ ˆ์ง€์Šคํ„ฐ
    • ๋ˆ„์‚ฐ๊ธฐ, ๋ฒ ์ด์Šค, ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” CPU ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ์ •๋ณด.
  • ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ
    • ์ด ํ•„๋“œ์—๋Š” ์šด์˜ ์ฒด์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ๋‹ค.ย ์—ฌ๊ธฐ์—๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”, ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ๋“ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก
    • ์ด ์ •๋ณด์—๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ดย ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋กย ์ด ํฌํ•จ๋œ๋‹ค.
notion image
ย 
๐Ÿ’ก
์šด์˜์ฒด์ œ๋Š” ๋น ๋ฅด๊ฒŒ PCB์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ”„๋กœ์„ธ์Šค PCB๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
ย 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์˜ ์ฐจ์ด์ 

  1. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ
      • ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ ๋ณดํ†ต ๋” ๋งŽ์€ ๋น„์šฉ(์‹œ๊ฐ„ ๋ฐ ์ž์›)์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋…๋ฆฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์Šค์œ„์นญ ์‹œ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
      • CPU ๋ ˆ์ง€์Šคํ„ฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ, ๋ฉ”๋ชจ๋ฆฌ ๋งต ๋“ฑ์„ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  1. ์Šค๋ ˆ๋“œ ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ
      • ์Šค๋ ˆ๋“œ ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์Šค์œ„์นญ๋ณด๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” ์Šค๋ ˆ๋“œ๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
      • ์ฃผ๋กœ CPU ๋ ˆ์ง€์Šคํ„ฐ์™€ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋งŒ ๊ฐฑ์‹ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
      ย 
      ย 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๊ณผ์ •

  1. ํ˜„์žฌ ์Šค๋ ˆ๋“œ์˜ ์ปจํ…์ŠคํŠธ ์ €์žฅ: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ, ์˜ˆ๋ฅผ ๋“ค์–ด CPU ๋ ˆ์ง€์Šคํ„ฐ, ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ, ์Šคํƒ ํฌ์ธํ„ฐ ๋“ฑ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  1. ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ ์ €์žฅ: ํ˜„์žฌ ์Šค๋ ˆ๋“œ์™€ ํ•จ๊ป˜, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์ „์ฒด ์ƒํƒœ๋„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด(์˜ˆ: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”), ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก, ๋ณด์•ˆ ๋ฐ ๊ถŒํ•œ ์„ค์ • ๋“ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ ๋ณต์›: ๋‹ค์Œ์— ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ๋ฅผ CPU์™€ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด, ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ์ž์›์˜ ์—ฐ๊ฒฐ ๋“ฑ์ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  1. ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ์˜ ์ปจํ…์ŠคํŠธ ๋ณต์›: ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ํŠน์ • ์Šค๋ ˆ๋“œ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ณต์›ํ•˜์—ฌ, ์Šค๋ ˆ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ๋˜ ์ง€์ ๋ถ€ํ„ฐ ์ž‘์—…์„ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
ย 
ย 
๐Ÿ’ก
์Šค๋ ˆ๋“œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋ฐœ์ƒํ• ๋•Œ๋Š” ํ˜„์žฌ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์—ฐ์‚ฐ์„ cpu๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์ธ๊ฐ€?
์Šค๋ ˆ๋“œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋ฐœ์ƒํ•  ๋•Œ, CPU๋Š” ์ด๋ฏธ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๊ฐ€ ์†ํ•ด ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ(๋ฉ”๋ชจ๋ฆฌ, ์—ด๋ฆฐ ํŒŒ์ผ, ๋ณด์•ˆ ์ •๋ณด ๋“ฑ)๋ฅผ ๋กœ๋“œํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์„ ๊ณต์œ ํ•˜๋ฏ€๋กœ, ์Šค๋ ˆ๋“œ ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.
์ด๋•Œ ์Šค๋ ˆ๋“œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ์œ„ํ•ด ์ฃผ๋กœ ๊ฐฑ์‹ ๋˜๋Š” ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
  • CPU ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ƒํƒœ
  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ
  • ์Šคํƒ ํฌ์ธํ„ฐ
์ด ์ •๋ณด๋“ค์€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ์˜ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ์Šค๋ ˆ๋“œ ๊ฐ„ ์Šค์œ„์นญ ์‹œ ์ด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ ์‹คํ–‰ํ•  ์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ๋ฅผ CPU์— ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋‚ด์—์„œ ์ผ์–ด๋‚˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ๊ณผ ๋น„๊ตํ•˜๋ฉด ๋น„๊ต์  ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ CPU๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋กœ ์ „ํ™˜ํ•  ๋•Œ, ํ”„๋กœ์„ธ์Šค์˜ ์ „์ฒด ์ปจํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š” ์—†์ด ๋” ๋น ๋ฅด๊ฒŒ ์Šค์œ„์นญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ํ”„๋กœ์„ธ์Šค๋ณด๋‹ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๊ณ , ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ํšจ์œจ์ด ์ข‹๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ย 

Loading Comments...