๐Ÿ’ก Process์™€ Thread๋ฅผ ํ•™์Šตํ•ด ๋ณด์ž

-ยท2022๋…„ 1์›” 16์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
8/12

Process์™€ Thread

Process

  • ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ
  • ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด CPU์˜ ํ• ๋‹น์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
  • ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ, ํž™์„ ๊ฐ๊ฐ ํ• ๋‹น ๋ฐ›์Œ
  • ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ž์›์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ ํ†ต์‹ (IPC, inter-process communication)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • Ex. ํŒŒ์ดํ”„, ํŒŒ์ผ, ์†Œ์ผ“ ๋“ฑ์„ ์ด์šฉํ•œ ํ†ต์‹  ๋ฐฉ๋ฒ• ์ด์šฉ

Thread

  • ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๋‹จ์œ„ (๊ฒฝ๋Ÿ‰ ํ”„๋กœ์„ธ์Šค)
  • ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ํž™ ์˜์—ญ์„ ๊ณต์œ 
  • ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋ณ„๋„์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์Šคํƒ์„ ๊ฐ–๋Š”๋‹ค

PCB

  • Process Control Block
  • ํŠน์ • ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅ
  • ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ๊ณ ์œ ํ•œ PCB ์ƒ์„ฑ
  • ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ํ• ๋‹น ๋ฐ›์•„ ์ž‘์—…์„ ์ˆ˜ํ–‰
  • ์ธํ„ฐ๋ŸฝํŠธ์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ CPU๋ฅผ ๋ฐ˜๋‚ฉํ•˜๋Š”๋ฐ ์ด ๋•Œ ์ž‘์—…์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ PCB์— ์ €์žฅ

ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž(Process ID, PID) : ํ”„๋กœ์„ธ์Šค ์‹๋ณ„๋ฒˆํ˜ธ
ํ”„๋กœ์„ธ์Šค ์ƒํƒœ : new, ready, running, waiting, terminated ๋“ฑ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅ
ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ
CPU ๋ ˆ์ง€์Šคํ„ฐ
CPU ์Šค์ผ€์ฅด๋ง ์ •๋ณด : ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„, ์Šค์ผ€์ค„ ํ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๋“ฑ
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •๋ณด : ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๋˜๋Š” ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ๋“ฑ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ํฌํ•จ
์ž…์ถœ๋ ฅ ์ƒํƒœ ์ •๋ณด : ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹น๋œ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋“ค๊ณผ ์—ด๋ฆฐ ํŒŒ์ผ ๋ชฉ๋ก
์–ด์นด์šดํŒ… ์ •๋ณด : ์‚ฌ์šฉ๋œ CPU ์‹œ๊ฐ„, ์‹œ๊ฐ„์ œํ•œ, ๊ณ„์ •๋ฒˆํ˜ธ ๋“ฑ

๋ฌธ๋งฅ๊ตํ™˜ (Context Swicthing)

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

๐Ÿ“š ๋” ์•Œ์•„๋ณด๊ธฐ

์Šคํƒ์„ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ์ด์œ 

  • ์Šคํƒ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž, ๋˜๋Œ์•„๊ฐˆ ์ฃผ์†Œ๊ฐ’ ๋ฐ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์„ ์–ธํ•˜๋Š” ๋ณ€์ˆ˜ ๋“ฑ์„ ์ €์žฅ
  • ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋…๋ฆฝ์ ์ด๋ผ๋Š” ๊ฒƒ์€ ๋…๋ฆฝ์ ์ธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๊ณ  ์ด๋Š” ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํ๋ฆ„์ด ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ
  • ์Šค๋ ˆ๋“œ์˜ ์ •์˜์— ๋”ฐ๋ผ ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํ๋ฆ„์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ์กฐ๊ฑด์œผ๋กœ ๋…๋ฆฝ๋œ ์Šคํƒ์„ ํ• ๋‹น

PC Register ๋ฅผ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ์ด์œ 

  • PC ๊ฐ’์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ช…๋ น์–ด์˜ ์–ด๋””๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜์˜€๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ์Šค๋ ˆ๋“œ๋Š” CPU ๋ฅผ ํ• ๋‹น๋ฐ›์•˜๋‹ค๊ฐ€ ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ๋‹ค์‹œ ์„ ์ ๋‹นํ•œ๋‹ค.
  • ๋ช…๋ น์–ด๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ๋ชปํ•˜๊ณ  ์–ด๋Š ๋ถ€๋ถ„๊นŒ์ง€ ์ˆ˜ํ–‰ํ–ˆ๋Š”์ง€ ๊ธฐ์–ตํ•ด์•ผํ•จ

Reference

profile
-์˜ Velog

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