PCB์™€ ContextSwitching

๋ฌธ๋”คยท2022๋…„ 8์›” 10์ผ
0

PCB์˜ ๊ตฌ์กฐ

PCB๋ž€?

Process Control Block

๐Ÿ’จ ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ณด๋ฅผ ์ €์žฅํ•ด ๋†“๋Š” ๊ณณ, ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค.
๐Ÿ’จ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ฌธ๋งฅ ๊ตํ™˜์„ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.
๐Ÿ’จ PCB๋Š” ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ์‹œ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์œ ์ง€๋œ๋‹ค.

๐Ÿ“ ํฌ์ธํ„ฐ
ํ”„๋กœ์„ธ์Šค์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๋Š” ํฌ์ธํ„ฐ์˜ ์ •๋ณด์ด๋‹ค.
ex) ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ, ์ž์‹ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์œ„์น˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ, ํ• ๋‹น๋œ ์ž์›์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ์ •๋ณด ๋“ฑ.

๐Ÿ“ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ
์ƒ์„ฑ(create), ์ค€๋น„(ready), ์‹คํ–‰(running), ๋Œ€๊ธฐ(waiting),
์™„๋ฃŒ(terminated) ์ƒํƒœ๊ฐ€ ์žˆ๋‹ค.
ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ ์ƒํƒœ๋ฅผ ์ €์žฅ.

๐Ÿ“ ํ”„๋กœ์„ธ์Šค ๋ฒˆํ˜ธ
๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—๋Š” ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณ ์œ ํ•œID๊ฐ€ ํ• ๋‹น๋œ๋‹ค.

๐Ÿ“ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ
ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์‹คํ–‰๋  ๋‹ค์Œ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์นด์šดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

๐Ÿ“ ๋ ˆ์ง€์Šคํ„ฐ
๋ˆ„์‚ฐ๊ธฐ, ๋ฒ ์ด์Šค ,๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” CPU ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ์ •๋ณด์ด๋‹ค.

๐Ÿ“ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ
์šด์˜ ์ฒด์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ๋‹ค.
ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋“ฑ

๐Ÿ“ ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก
์ด ์ •๋ณด์—๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก์ด ํฌํ•จ๋œ๋‹ค.

Context- Switching์˜ ๊ณผ์ •

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด๋ž€?

์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์„ ๋•Œ ๊ธฐ์กด์— ์‹คํ–‰๋˜๋˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ. ์ฆ‰, CPU์— ์‹คํ–‰ํ•  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

  1. ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์ˆ˜ํ–‰์ค‘์ธ ๋ช…๋ น์–ด๊นŒ์ง€ ๋งˆ์นœ ํ›„ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ž‘์„ ๋ฉˆ์ถ˜๋‹ค.
  2. ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๋“ค์ด PCB์— ์ €์žฅ๋˜๊ณ  PCB๋Š” ๋‹ค๋ฅธ ๊ณณ์— ์ €์žฅ๋œ๋‹ค.
  3. ์ƒˆ๋กœ ์‹คํ–‰๋  ํ”„๋กœ์„ธ์Šค์˜ PCB๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  PC๊ฐ’๊ณผ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’๋“ค์„ ๋ถˆ๋Ÿฌ์˜จ ํ›„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ์ผ์–ด๋‚˜๋Š” ์‹œ๊ธฐ?

I/O INTERRUPT
CPU ์‚ฌ์šฉ์‹œ๊ฐ„ ๋งŒ๋ฃŒ
์ž์‹ ํ”„๋กœ์„ธ์Šค FORK
์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆด ๋•Œ ๋“ฑ

โญ•์žฅ์ 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ํ†ตํ•ด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โŒ๋‹จ์ 

์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์ด ๋„ˆ๋ฌด ์žฆ์œผ๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒ, ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.
์ž‘์—…์‹œ CPU๊ฐ€ ์•„๋ฌด๋Ÿฐ ์ผ๋„ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ

profile
ํ’€์Šคํƒ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ ๋ž˜์š”

0๊ฐœ์˜ ๋Œ“๊ธ€