Multi Process

Icarus_wยท2022๋…„ 12์›” 21์ผ
0

CS๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
3/25

2๊ฐœ ์ด์ƒ์˜ process๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

  • ๐Ÿฅ‡๋™์‹œ์„ฑ(concurrency) : CPU Core๊ฐ€ 1๊ฐœ์ผ ๋•Œ, ์—ฌ๋Ÿฌ process๋ฅผ ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์—ฐ์‚ฐ์„ ํ•˜๊ฒŒ ๋˜๋Š” ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ
  • ๋ณ‘๋ ฌ์„ฑ(parallelism) : CPU Core๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ผ ๋•Œ, ๊ฐ๊ฐ์˜ process๋ฅผ ์—ฐ์‚ฐํ•จ์œผ๋กœ์จ process๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ

์—ฌ๋Ÿฌ process๊ฐ€ ๊ฐ์ž์˜ memory์˜์—ญ์„ ์ฐจ์ง€ํ•˜์—ฌ ๋™์‹œ์— ์ ์žฌ ๋œ๋‹ค.

๋ฐ˜๋ฉด, CPU๋Š” ๋งค ์ˆœ๊ฐ„ ํ•˜๋‚˜์˜ process๋งŒ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ CPU์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋นจ๋ผ ์—ฌ๋Ÿฌ process๋“ค์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.

CPU์ž‘์—…์‹œ๊ฐ„์„ ์—ฌ๋Ÿฌ process๋“ค์ด ์กฐ๊ธˆ์”ฉ ๋‚˜๋ˆ„์–ด ์“ฐ๋Š” ์‹œ์Šคํ…œ -> ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ(TSS : Time-Sharing System)

image

Context

process์— ๊ด€ํ•œ ์ด์ฒด์ ์ธ ์ •๋ณด -> PCB(Process Control Block)์— ์ €์žฅ

์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์—์„œ ํ•œ process๊ฐ€ ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„๋™์•ˆ CPU๋ฅผ ์ ์œ ํ•˜์—ฌ ์ผ์ •๋ถ€๋ถ„์˜ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋‹ค๋ฅธ process์—๊ฒŒ ๋„˜๊ธด๋‹ค. ๊ทธ ํ›„ ์ฐจ๋ก€๊ฐ€ ๋˜๋ฉด ๋‹ค์‹œ CPU๋ฅผ ์ ์œ ํ•˜์—ฌ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „์— ์–ด๋””๊นŒ์ง€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ–ˆ๊ณ , register์—๋Š” ์–ด๋–ค ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. process๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ์ƒํƒœ๋กœ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ context์ด๋‹ค. ์ด ์ •๋ณด๋“ค์€ PCB์— ์ €์žฅ ๋œ๋‹ค.

PCB

OS๊ฐ€ process๋ฅผ ํ‘œํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

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

  • Process State : new, running, waiting, halted ๋“ฑ์˜ state

  • Process Number

  • Process Counter

Context Switch

ํ•œ process์—์„œ ๋‹ค๋ฅธ process๋กœ CPU์˜ ์ œ์–ด๊ถŒ์„ ๋„˜๊ธฐ๋Š”๊ฒƒ

์ด์ „ process ์ƒํƒœ์ €์žฅ -> ์ƒˆ๋กœ์šด process์˜ PCB๋ฅผ ์ฝ์–ด์„œ ๋ณต๊ตฌ
image

profile
ํ•˜๋ฃจ์— ํ•˜๋‚˜

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