๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/์šด์˜์ฒด์ œ

3. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Multi-Processing) OS

by ๐Ÿณ Laboon 2024. 4. 21.
๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด ์ถœํ˜„ํ•œ ๋ฐฐ๊ฒฝ์„ ์ƒ๊ฐํ•ด๋ณด์ž.

 

์ด์ „, ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์—์„œ ์–ด๋–ค ๋ฌธ์ œ๋กœ ์ธํ•ด ๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ์•„์ด๋””์–ด๊ฐ€ ์ œ์•ˆ ๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค.

๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋Š” ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ CPU ์ž‘์—… ์ค‘ ํŠน์ • ๋ช…๋ น ์ฝ”๋“œ์—์„œ I/O ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค.

๊ทธ๋Ÿผ ์ปดํ“จํ„ฐ๋Š” CPU ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ I/O ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ์ž‘์—…์ด ๋ฐ˜๋ณต๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.

์‹ค์งˆ์ ์œผ๋กœ ์ปดํ“จํ„ฐ์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” HW๋Š” CPU์ธ๋ฐ ์ปดํ“จํ„ฐ๊ฐ€ I/O ์ž‘์—…์„ ํ•˜๋ฉด์„œ CPU๋Š” ๋Œ€๊ธฐํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๊ฒƒ์„ CPU idle time ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

CPU IDLE Time์„ ์ค„์ด๋ฉด CPU ํ™œ์šฉ๋ฅ (์ฒ˜๋ฆฌ์œจ)์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด ์ถœํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์€ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ˆ˜์šฉํ• ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋„์ค‘ I/O๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์กด์žฌํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด์„œ CPU์˜ Idle์„ ์ค„์ด๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ CPU Idle

 

๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šด์˜์ฒด์ œ๋Š” ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ํ…Œ์ดํ”„๊ฐ€ ๋””์Šคํฌ๋กœ ๋ฐ”๋€Œ๊ณ  ๋ฉ”์ธ PC๊ฐ€ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ OS๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ 3๊ฐœ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์™€ ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋น„๊ตํ•ด๋ณด๊ฒ ๋‹ค.

๊ทธ๋ฆผ A. ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ
๊ทธ๋ฆผ B. ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  batch multi processing
Running Time 30 17
Idle Time 14 1
CPU Utilization 16/30 = 53% 16/17 = 94%
Throughput 3/30 = 0.1task/time 3/17 = 0.176 task/time

 


 

๋‹ค์ค‘ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์ž…ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ์ด์Šˆ

 

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