[OS] Process์™€ Multi Process

์ด์ •์Œยท2022๋…„ 4์›” 19์ผ
2

์šด์˜์ฒด์ œ

๋ชฉ๋ก ๋ณด๊ธฐ
1/1
post-thumbnail

Process

Process

๐Ÿ’ก ์‹คํ–‰ ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ๊ฒƒ -> Program in execution

Memory

๐Ÿ’ก CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํ“จํ„ฐ์˜ ๋‚ด๋ถ€ ๊ธฐ์–ต์žฅ์น˜

  • Program์ด CPU์—์„œ ์‹คํ–‰๋˜๋ ค๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์ด memory์— ์ ์žฌ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค code, data, stack, heap ์˜์—ญ์„ ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹น ๋ฐ›์Œ
    ์˜์—ญ์„ค๋ช…
    code์‹คํ–‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
    dataํ”„๋กœ๊ทธ๋žจ์˜ ์ „์—ญ๋ณ€์ˆ˜์™€ static ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
    heapํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๊ณต๊ฐ„์„ ํ• ๋‹น/ํ•ด์ œ ํ•˜๋Š” ์˜์—ญ
    stackํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ, ์ƒ์„ฑ๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

PC(Program Counter) Register

๐Ÿ’ก ๋‹ค์Œ์— ์‹คํ–‰๋  ์ฝ”๋“œ์˜ ์ฃผ์†Œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ณณ in CPU

  • memory์— ์ ์žฌ๋˜์–ด ์žˆ๋Š” process code ์˜์—ญ์˜ ๋ช…๋ น์–ด ์ค‘ ๋‹ค์Œ ๋ฒˆ ์—ฐ์‚ฐ์—์„œ ์ฝ์–ด์•ผ ํ•  ๋ช…๋ น์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ด
    โ†’ ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด์™€์„œ CPU๊ฐ€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰
    โ‡’ Process!

Multi Process

  • ๋ณ‘๋ ฌ์„ฑ: CPU core๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ผ ๋•Œ, ๊ฐ๊ฐ์˜ core๊ฐ€ ๊ฐ๊ฐ์˜ Process๋ฅผ ์—ฐ์‚ฐํ•จ์œผ๋กœ์จ Process๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ !
    โ†’ ์ž˜ ๋‹ค๋ค„์ง€์ง€ ์•Š์Œ!
  • ๋™์‹œ์„ฑ: CPU core๊ฐ€ 1๊ฐœ ์ผ ๋•Œ, ์—ฌ๋Ÿฌ process๋ฅผ ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์—ฐ์‚ฐํ•˜๋Š” ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ

MultiProcess

๐Ÿ’ก 2๊ฐœ ์ด์ƒ์˜ process๊ฐ€ CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ

  • ํ•˜๋‚˜์˜ CPU๋Š” ํ•˜๋‚˜์˜ ์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋ฒˆ๊ฐˆ์•„ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ž„

์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ

  • time sharing system
  • CPU์˜ ์ž‘์—…์‹œ๊ฐ„์„ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์กฐ๊ธˆ์”ฉ ๋‚˜๋ˆ„์–ด ์“ฐ๋Š” ์‹œ์Šคํ…œ

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ๊ฒฝ์šฐ, ์šด์˜์ฒด์ œ๋Š” process๊ฐ€ ์ž์‹ ์˜ Memory์˜์—ญ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌ

CPU์˜ ์—ฐ์‚ฐ

  • PC Register๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณณ์— ๋”ฐ๋ผ process๋ฅผ ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด๋“ค์ด๊ณ  ์—ฐ์‚ฐ์„ ์ง„ํ–‰

Context

๐Ÿ’ก process๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ์ƒํƒœ๋กœ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ด์ฒด์ ์ธ ์ •๋ณด

  • ์ด์ „์— ์–ด๋””๊นŒ์ง€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ–ˆ๊ณ , register์—๋Š” ์–ด๋–ค ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€ ์ €์žฅ

PCB(Process Control Block)

๐Ÿ’ก context์˜ ์ •๋ณด๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ณณ

  • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ณดํ˜ธ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์•ˆ์— ์ €์žฅ
  • ์ €์žฅ๋˜๋Š” ์ •๋ณด
    • Process Number
    • Process state
    • Program Counter, ๋ ˆ์ง€์Šคํ„ฐ
    • CPU ์Šค์ผ€์ฅด๋ง ์ •๋ณด, ์šฐ์„ ์ˆœ์œ„
    • ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด

Context Switch

๐Ÿ’ก ํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ CPU ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ

  • ์ด์ „์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ๋ฅผ PCB์— ์ €์žฅํ•˜์—ฌ ๋ณด๊ด€ํ•˜๊ณ , ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ PCB๋ฅผ ์ฝ์–ด์„œ ๋ณด๊ด€๋œ ์ƒํƒœ๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ์ž‘์—…

๐Ÿ”— ์ถœ์ฒ˜: ์ธํ”„๋Ÿฐ: ๊ธฐ์ถœ๋กœ ๋Œ€๋น„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์ „๊ณต๋ฉด์ ‘

profile
์ฝ”๋“œ๋จน๋Š” ํ•˜๋งˆ

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