CS/์šด์˜์ฒด์ œ

[์šด์˜์ฒด์ œ] PCB(Process Control Block)

1eehyunji 2023. 8. 28. 19:39

PCB๋Š” ์šด์˜์ฒด์ œ์—์„œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•œ๋‹ค. 'ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก'์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด, ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น PCB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ ,

ํ”„๋กœ์„ธ์Šค ์ฃผ์†Œ ๊ฐ’๋“ค์— ์•ž์„œ ์„ค๋ช…ํ•œ ์Šคํƒ, ํž™ ๋“ฑ์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋“ค์ด PCB์— ์ €์žฅ๋˜์–ด ๊ด€๋ฆฌ๋œ๋‹ค. 

PCB์—๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ปค๋„ ์Šคํƒ์˜ ๊ฐ€์žฅ ์•ž๋ถ€๋ถ„์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค. 

* ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ : ๋ฐ์ดํ„ฐ์— ๊ด€ํ•œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์ด์ž ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ, ๋Œ€๋Ÿ‰์˜ ์ •๋ณด ๊ฐ€์šด๋ฐ์—์„œ ์ฐพ๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฐพ์•„๋‚ด์„œ ์ด์šฉํ•˜๊ธฐ

์œ„ํ•ด ์ผ์ •ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด ๋ถ€์—ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ

 

PCB์˜ ๊ตฌ์กฐ

PCB๋Š” ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์ƒํƒœ, ํ”„๋กœ์„ธ์Šค ID ๋“ฑ์˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์ƒํƒœ: '์ค€๋น„', '๋Œ€๊ธฐ', '์‹คํ–‰' ๋“ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ์„ ์–ป์€ ์ดํ›„์˜ ์ƒํƒœ
  • ํ”„๋กœ์„ธ์Šค ID : ํ”„๋กœ์„ธ์Šค ID, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ž์‹ ํ”„๋กœ์„ธ์Šค ID
  • ํ”„๋กœ์„ธ์Šค ๊ถŒํ•œ : ์ปดํ“จํ„ฐ ์ž์› ๋˜๋Š” I/O ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•œ ๊ถŒํ•œ ์ •๋ณด
  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ : ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ
  • CPU ๋ ˆ์ง€์Šคํ„ฐ : ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅํ•ด์•ผ ํ•  ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด
  • CPU ์Šค์ผ€์ค„๋ง ์ •๋ณด : CPU ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ์ค‘๋‹จ๋œ ์‹œ๊ฐ„ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด
  • ๊ณ„์ • ์ •๋ณด : ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์— ์‚ฌ์šฉ๋œ CPU ์‚ฌ์šฉ๋Ÿ‰, ์‹คํ–‰ํ•œ ์œ ์ €์˜ ์ •๋ณด
  • I/O ์ƒํƒœ ์ •๋ณด : ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ I/O ๋””๋ฐ”์ด์Šค ๋ชฉ๋ก

 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ(context switching)

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด๋ž€ ์•ž์„œ ์„ค๋ช…ํ•œ PCB๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

ํ•œ ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์‹œ๊ฐ„์ด ๋๋‚˜๊ฑฐ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ๋ฐœ์ƒํ•œ๋‹ค. 

์ปดํ“จํ„ฐ๋Š” ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์–ด๋– ํ•œ ์‹œ์ ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋‹จ ํ•˜๋‚˜์ด๋ฉฐ, ๋งŽ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๊ตฌ๋™๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€์˜ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์•„์ฃผ ๋น ๋ฅธ ์†๋„๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์‚ฌ์‹ค ํ˜„๋Œ€ ์ปดํ“จํ„ฐ๋Š” ๋ฉ€ํ‹ฐ์ฝ”์–ด CPU๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•œ ์‹œ์ ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ฐœ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์‹คํ–‰๋œ๋‹ค.

์•„๋ž˜ ์„ค๋ช…์—์„œ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ์„ค๋ช…ํ•  ๋•Œ๋Š” ์‹ฑ๊ธ€ ์ฝ”์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค. 

  1. P0 ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ํ•˜๋‹ค ์–ด๋–ค ์ธํ„ฐ๋ŸฝํŠธ๋‚˜ ์‹œ์Šคํ…œ ์ฝœ์— ์˜ํ•ด ๋ฉˆ์ถ˜๋‹ค.
  2. ํ”„๋กœ์„ธ์Šค P0์˜ PCB๋ฅผ ์ €์žฅํ•œ๋‹ค.
  3. ์‹คํ–‰ํ•˜๋ ค๋Š” ํ”„๋กœ์„ธ์Šค P1์˜ PCB๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.
  4. ํ”„๋กœ์„ธ์Šค P1 ์‹คํ–‰ ์ค‘ ์ธํ„ฐ๋ŸฝํŠธ๋‚˜ ์‹œ์Šคํ…œ์ฝœ์— ์˜ํ•ด ๋ฉˆ์ถ˜๋‹ค.
  5. ํ”„๋กœ์„ธ์Šค P1์˜ PCB๋ฅผ ์ €์žฅํ•œ๋‹ค.
  6. ๋‹ค์Œ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋กœ ์ •ํ•ด์ง„ P0์˜ PCB๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์ผ์–ด๋‚  ๋•Œ, ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์œ ํœด์‹œ๊ฐ„(idle time)์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ์™ธ์—๋„ ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

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