๐Ÿ€ Knowledge/์šด์˜์ฒด์ œ(OS)

[์šด์˜์ฒด์ œ] ํ”„๋กœ์„ธ์Šค ์Šค์œ„์น˜(Process Swtich)

TIlearn 2024. 3. 17. 19:00

 

 

Context Switch

 

 

 

์ด์ „์— ๋ฐฐ์šด ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์งš์–ด๋ณด์ž.

 

 

์ปค๋„ ๋ชจ๋“œ์™€ ์œ ์ € ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ Mode Change๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด Mode Change๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์•ˆ์—์„œ ๋™์ž‘ํ•œ๋‹ค.

 

 

๋ฐ˜๋Œ€๋กœ ์ปจํ…์ŠคํŠธ ์ฒด์ธ์ง€๋Š” Mode Change์™€ ๋‹ฌ๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ์ปค๋„๋กœ CPU ํ• ๋‹น์ด ๋ฐ”๋€Œ๋Š” Mode Change์™€๋Š” ๋‹ฌ๋ฆฌ Context Switch๋Š” ํ”„๋กœ์„ธ์Šค ๊ทธ ์ž์ฒด๊ฐ€ ๋ฐ”๋€œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋– ํ•œ ๊ฒฝ์šฐ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ”๊พธ๋Š” Context Switch๊ฐ€ ์ผ์–ด๋‚ ๊นŒ? ๋‹ค์Œ์„ ์‚ดํŽด๋ณด์ž.

 

 

  • ํ”„๋กœ์„ธ์Šค์˜ Termination(Termination of a process)
    • ํ”„๋กœ์„ธ์Šค์˜ ์—๋Ÿฌ๋‚˜ ์˜ˆ์™ธ ํ˜น์€ ์ผ๋ฐ˜์ ์ธ ์ข…๋ฃŒ(termination)
    • ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ dispatch๋  ๋•Œ ํ”„๋กœ์„ธ์Šค๋Š” terminate๋œ๋‹ค.
  • Blocking System Call์„ ๋ถˆ๋ €์„ ๋•Œ
    • ์ฆ‰, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ Block๋˜๋ฏ€๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
    • I/O request, file open
  • Time Slice๊ฐ€ ๋‹ค ๋˜์—ˆ์„ ๋•Œ
    • ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น ๋ฐ›์€ time slice๋ฅผ ๋ชจ๋‘ ์†Œ์ง„ํ•œ ๊ฒฝ์šฐ timeout๋˜๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ Context Swtichํ•ด์•ผํ•œ๋‹ค.
  • I/O interrupt
    • Event Occur๋˜๋Š” ์ƒํ™ฉ์—์„œ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ์–‘๋ณดํ•ด ๋‹ฌ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ
    • I/O ์ž‘์—…์ด ์™„๋ฃŒ๋จ์œผ๋กœ ์ธํ•ด Block ํ”„๋กœ์„ธ์Šค๊ฐ€ Ready ์ƒํƒœ๋กœ ๋ณ€ํ•จ
    • ๊ทธ๋ž˜์„œ ์ด Ready Process๋Š” CPU๋ฅผ ์ฐจ์ง€ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๋Š” ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด์„œ ์ •ํ•ด์ง„๋‹ค.

 

 

 

 

 

 

Steps of Context Switch

 

 

  1. Program Counter(PC)์™€ ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ PCB์— ์ €์žฅํ•œ๋‹ค.(save context)
  2. ํ˜„์žฌ Running ์ƒํƒœ์— ์žˆ๋Š” PCB๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  3. PCB๋ฅผ ์ ์ ˆํ•œ Queue๋กœ ์˜ฎ๊ธด๋‹ค. (Ready, Blocked, Ready/Suspended)
  4. ์‹คํ–‰์„ ์œ„ํ•œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค.
  5. ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค์˜ PCB๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.(state๋ฅผ running์œผ๋กœ)
  6.  ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด(code, data, stack)๋„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  7. ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค์˜ Context๋ฅผ ๋ณต๊ตฌํ•œ๋‹ค.