728x90

๐Ÿ’ปํ”„๋กœ์„ธ์Šค๋ž€?

  • ํ”„๋กœ์„ธ์Šค๋Š” ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ  ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค.

๐Ÿ’ปํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ์„ธ์Šค์˜ ์ฐจ์ด

  • ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์—๋Š” ์ƒ๋ช…์ด ์—†๋‹ค.ํ”„๋กœ๊ทธ๋žจ์€ ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜์— ์กด์žฌํ•˜๋ฉฐ ์‹คํ–‰๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ช…๋ น์–ด์™€ ์ •์ ์ธ ๋ฐ์ดํ„ฐ์˜ ๋ฌถ์Œ์ด๋‹ค.
  • ์ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋ช…๋ น์–ด์™€ ์ •์  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์›์„ ํ• ๋‹น๋ฐ›๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค.

๐Ÿ’ปํ”„๋กœ์„ธ์Šค์˜ ํŠน์ง•

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

๐Ÿ’ปํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ

  • text(code) :์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„. ์ฆ‰, ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์œผ๋กœ ํ…์ŠคํŠธ ์˜์—ญ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ํ•จ์ˆ˜, ์ œ์–ด๋ฌธ, ์ƒ์ˆ˜ ๋“ฑ์ด ์—ฌ๊ธฐ์— ์ง€์ •๋œ๋‹ค.
  • data : ์ „์—ญ๋ณ€์ˆ˜์™€ static ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜๋Š” ๋ถ€๋ถ„. ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘๊ณผ ๋™์‹œ์— ํ• ๋‹น๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์–ด์•ผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์†Œ๋ฉธ๋˜๋Š” ์˜์—ญ. (๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์ดˆ๊ธฐํ™”์—ฌ๋ถ€์— ๋”ฐ๋ผ Data์™€ BSS๋กœ ๋‚˜๋ˆ ์„œ ์„ค๋ช…ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.)
  • stack :ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ. ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ ์ƒ์„ฑ๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๊ณ , ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์‚ฌ๋ผ์ง.
  • heap :  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ• ๋‹น/ํ•ด์ œํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„. ์ด ๊ณต๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋™์ ํ• ๋‹น์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

๐Ÿ’ปํ”„๋กœ์„ธ์Šค ์ƒํƒœ

 

1.new:ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ์ค‘์ด๋‹ค.

  •  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋Š” ๋‹จ๊ณ„๋กœ ์ปค๋„ ๊ณต๊ฐ„์— PCB๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ์ƒํƒœ์ด๋‹ค.

2.ready:ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ์ด๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ์ƒํƒœ๋กœ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ž์›์„ ๋ชจ๋‘ ์–ป์€ ์ƒํƒœ์ด๋‹ค.
  • ์•„์ง CPU๋ฅผ ๋ฐ›์ง€๋Š” ์•Š์•˜์ง€๋งŒ CPU๋ฅผ ํ• ๋‹น ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๋‹ค.

3.running : ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰์ค‘์ธ ์ƒํƒœ์ด๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ CPU๊ฐ€ ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์—, ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๋„ ์‹ค์ œ๋กœ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋Š” ๋งค ์‹œ์  ํ•˜๋‚˜ ๋ฟ์ด๋‹ค.

4.Waiting: CPU๋ฅผ ํ• ๋‹นํ•ด์ฃผ์–ด๋„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๋‹ค.

  • ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ I/O์ž‘์—… ๋“ฑ์„ ์„ ์ฒ˜๋ฆฌ์ค‘ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

5.terminated : ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ์ข…๋ฃŒ

  • ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๊ณ  ํ• ๋‹น๋œ CPU๋ฅผ ๋ฐ˜๋‚ฉํ•˜๊ณ , ์ปค๋„๊ณต๊ฐ„๋‚ด์˜ PCB๋Š” ๋‚จ์•„ ์žˆ๋‹ค.

 

๐Ÿ“–ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•

 ํ”„๋กœ์„ธ์Šค๋„ ์•ˆ๋ ๊ฑฐ ๊ฐ™์•˜์ง€๋งŒ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.๋‹ค๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ๋‹จ์ˆœํžˆ CPU๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ RAM๊ณผ CPU์‚ฌ์ด์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ๊นŒ์ง€ ์ดˆ๊ธฐํ™” ๋˜๊ธฐ๋•Œ๋ฌธ์— ์ž์›๋ถ€๋‹ด์ด ํฌ๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน์ •ํ•œ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • IPC(Inter-Process Communication)์„ ์‚ฌ์šฉํ•œ๋‹ค. ->๋Œ€๋ถ€๋ถ„์˜ IPC๊ธฐ๋ฒ•์€ ์ปค๋„ ๊ณต๊ฐ„์„ ์ด์šฉํ•œ๋‹ค.
  • LPC(Local inter-Process Communication)์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ณ„๋„๋กœ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋„๋ก ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด IPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ์˜ ๋ฒˆ๊ฑฐ๋กœ์šด ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜์ง€๋งŒ, ์Šค๋ ˆ๋“œ๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์™€ ์ •๋ณด ๊ณต์œ ๊ฐ€ ์‰ฝ๋‹ค.๋‹ค์Œ์—” ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด์„œ ์ ์–ด๋ณด๊ฒ ๋‹ค.

728x90