process์™€ thread

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

ํ”„๋กœ์„ธ์Šค

ํ”„๋กœ์„ธ์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  OS๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์–˜๊ธฐํ•œ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํ“จํ„ฐ ๊ด€์ ์—์„œ ์ €์žฅ ์žฅ์น˜๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜๋™์ ์ธ ์กด์žฌ์ด์ง€๋งŒ, ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ๋„ ์‚ฌ์šฉํ•˜๊ณ  OS์˜ CPU ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์˜ํ•ด์„œ CPU๋„ ์‚ฌ์šฉํ•˜๋Š” ๋Šฅ๋™์ ์ธ ์กด์žฌ์ด๋‹ค.

์ปค๋„ ์œ„์—๋Š” User Interface๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์˜ ์—ฐ์‚ฐ์€ CPU๊ฐ€ ๋‹ด๋‹นํ•˜๊ณ  OS๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž˜ ๋™์ž‘ํ•˜๋„๋ก ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

PCB (process control block)

OS๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‹คํ–‰์‹œ์ผœ์•ผ ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด OS๋Š” ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ "PCB"๋ฅผ ๋งŒ๋“ค๊ณ  ์ €์žฅํ•œ๋‹ค. PCB๋Š” ์ปค๋„์˜ data ์˜์—ญ์— ์กด์žฌํ•˜๊ณ , CPU๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ๋ณด๊ด€ํ•˜๋ฉฐ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅ๋œ๋‹ค. ๋”ฐ๋ผ์„œ OS๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋Š” PCB ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.

PCB๋Š” ๋‹ค์Œ ๋‚ด์šฉ๋“ค์„ ์ €์žฅํ•œ๋‹ค.

  • process id

  • process state

  • program counter

  • cpu registers

  • cpu cheduling information

  • i/o infromation

... etc

PCB ์ƒ์„ฑ ์œ„์น˜์™€ OS์˜ ๊ด€๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์‚ฌ์šฉ์ž๊ฐ€ User Interface์—์„œ disk์— ์ €์žฅ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค. UI -> OS๋กœ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์š”์ฒญ์„ ์ „๋‹ฌ

  2. OS๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•˜๊ณ  PCB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. PCB๋Š” OS ์ปค๋„ data ์˜์—ญ์— ์ƒ์„ฑ๋˜๊ณ  ram์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ, ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์œ ๋‹ˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ค์ง ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ผ์˜จ ๊ฒƒ์„ ์–˜๊ธฐํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ฌ๋ผ์˜จ ๊ฒƒ์„ ์–˜๊ธฐ๊ธฐํ•œ๋‹ค.

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ

์œ ๋‹ˆ, ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ ์—์„œ ๋ณธ๋‹ค๋ฉด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ ๊ด€์ ์œผ๋กœ ๋ณธ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU ์ฝ”์–ด๊ฐ€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋งˆํ•˜๋ฉฐ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ CPU๊ฐ€ ์‹œ๋ถ„ํ•  ์ฒ˜๋ฆฌ๋กœ ๊ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์งง์€ ์‹œ๊ฐ„์•ˆ์— ๊ต๋Œ€๋กœ ์‹คํ–‰ํ•œ๋‹ค.

๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น

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

๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ๊ณผ ํ–‡๊ฐˆ๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.

์Šค๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ์•ˆ์—๋Š” 1๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์— ์Šค๋ ˆ๋“œ๋“ค์€ ๊ทธ ํ”„๋กœ์„ธ์Šค์˜ PCB, code, data, heap ์˜์—ญ์„ ๊ณต์œ ํ•˜์ง€๋งŒ ์Šคํƒ์€ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

OS๋„ ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šค๋ ˆ๋“œ๋„ id๊ฐ€ ์žˆ์œผ๋ฉฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค.

ํ”„๋กœ์„ธ์Šค/์Šค๋ ˆ๋“œ ์žฅ๋‹จ์ 

ํ”„๋กœ์„ธ์Šค

  • ์žฅ์  : ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์•ˆ์ „์„ฑ ์ธก๋ฉด์—์„œ๋Š” ์Šค๋ ˆ๋“œ๋ณด๋‹ค ์šฐ์ˆ˜ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ž์› ๊ณต์œ ๋Š” IPC๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.

  • ๋‹จ์  : ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๊ณ ์œ ํ•œ ์ž์›์„ ๊ฐ€์ง„๋‹ค. ๋”ฐ๋ผ์„œ IPC๊ฐ„ ํ†ต์‹ ์—์„œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๊ณ  ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

์Šค๋ ˆ๋“œ

  • ์žฅ์  : ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ๊ณต์œ  ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ž‘๋‹ค.

  • ๋‹จ์  : ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ์•ˆ์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ชจ๋“  ์Šค๋ ˆ๋“œ์— ์˜ํ–ฅ์„ ์ค€๋‹ค. ๋˜, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์ด ๋“ฑ์žฅํ•˜๋ฉด ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๊ณต์œ ํ•˜๊ณ  ์žˆ๋Š” ์ž์›์—์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

Last updated