์šด์˜์ฒด์ œ

CH10-1 Multiprocessor and Real-Time Scheduling

meteorqz6 2025. 6. 9. 22:44

Classifications of Multiprocessor Systems

Loosely coupled or distributed multiprocessor, or cluster

: ๊ฐ CPU๋Š” ์ž์‹ ๋งŒ์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ I/O ์ฑ„๋„์„ ๊ฐ–๋Š”๋‹ค.

 

Fucntionally specialized processors

: ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋งˆ์Šคํ„ฐ CPU๊ฐ€ ํ•ต์‹ฌ ์—ญํ• ์„ ํ•˜๊ณ  ๋‹ค๋ฅธ CPU๋“ค์€ ์ฃผ๋กœ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋งˆ์Šคํ„ฐ CPU์˜ ์ง€์‹œ์— ๋”ฐ๋ฅธ๋‹ค.

 

Tightly coupled multiprocessor - 10์žฅ์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ

: ํ•˜๋‚˜์˜ ๊ณตํ†ต๋œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” CPU๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ ์šด์˜์ฒด์ œ์— ์˜ํ•ด ์ œ์–ด๋œ๋‹ค.

: ๋ชจ๋“  CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๊ณต์œ ์™€ ํ†ต์‹ ์ด ๋งค์šฐ ๋น ๋ฅด๋‹ค.

 

Synchronization Granularity and Processes

ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋™๊ธฐํ™” ์ •๋„์— ๋”ฐ๋ผ์„œ ๊ตฌ๋ถ„

 

Fine: 20๊ฐœ ๋ช…๋ น์–ด ๋ฏธ๋งŒ ๋‹จ์œ„ ๋‹น ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•ด์„œ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋™๊ธฐํ™”๊ฐ€ ์ผ์–ด๋‚œ๋‹ค.

Medium: ์ˆ˜๋ฐฑ ๊ฐœ ๋ช…๋ น์–ด ๋‹จ์œ„์˜ ์ž‘์—…์ด ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋ฉฐ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

Coarse: ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋™๊ธฐํ™”๋Š” ๋“œ๋ฌผ๊ฒŒ ๋ฐœ์ƒํ•˜๊ณ  ์ˆ˜์ฒœ ๊ฐœ ๋ช…๋ น์–ด ๋‹จ์œ„์˜ ํฐ ์ž‘์—… ๋ฉ์–ด๋ฆฌ๋กœ ๋‚˜๋‰œ๋‹ค.

Very Coarse: ๋™๊ธฐํ™” ๊ฐ„๊ฒฉ์ด ๋งค์šฐ ๊ธธ๋‹ค.(์ˆ˜๋ฐฑ๋งŒ ๋ช…๋ น์–ด ๋‹จ์œ„)

Independent: ์„œ๋กœ ์•„๋ฌด ๊ด€๋ จ ์—†๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ฐ์ž ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋กœ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

 

Scheduling Design Issues

3๊ฐ€์ง€ ์ด์Šˆ

(1) ํ”„๋กœ์„ธ์Šค์˜ CPU ํ• ๋‹น

: ๋ ˆ๋”” ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์–ด๋–ค CPU์— ๋ฐฐ์ •ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฌธ์ œ

 

(2) ๊ฐœ๋ณ„ CPU์—์„œ์˜ ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‚ฌ์šฉ

: ๊ฐ CPU์— ํ• ๋‹น๋œ ํ”„๋กœ์„ธ์Šค๋“ค์„ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ง€์— ๋Œ€ํ•œ ๋ฌธ์ œ

 

(3) ํ”„๋กœ์„ธ์Šค์˜ ์‹ค์ œ ๋””์ŠคํŒจ์น˜

: ํŠน์ • CPU์—์„œ ์‹คํ–‰๋œ ์ค€๋น„๊ฐ€ ๋œ ํ”„๋กœ์„ธ์Šค๋“ค ์ค‘์—์„œ ์ง€๊ธˆ ๋‹น์žฅ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•ด์„œ CPU๋ฅผ ํ• ๋‹นํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๋‹จ์œ„์˜ ์Šค์ผ€์ค„๋ง์ด๋‹ค.

 

multiprocessor ์‹œ์Šคํ…œ์˜ scheduling ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ ๋‚ด์˜ porcessor์˜ ์ˆ˜, ์‹œ์Šคํ…œ์—์„œ ์ฃผ๋กœ ์‹คํ–‰ํ•  process๋“ค์˜ ๋™๊ธฐํ™” ์ •๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ ธ์•ผ ํ•œ๋‹ค.

 

Assignment of Processes to Processors

(1) ํ”„๋กœ์„ธ์Šค๋ฅผ ํŠน์ • CPU์— ์˜๊ตฌ ํ• ๋‹น: ๊ฐ CPU๋Š” ์ž์‹ ๋งŒ์˜ ๋…๋ฆฝ๋œ ํ๋ฅผ ๊ฐ–๋Š”๋‹ค.

- ์Šค์ผ€์ค„๋ง ๊ฒฐ์ •์ด ๊ฐ CPU ๋‚ด์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๋‹ค.

- ํŠน์ • CPU๋Š” ํ•  ์ผ์ด ์—†์–ด์„œ ์‰ฌ๊ณ  ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ CPU๋Š” ์ฒ˜๋ฆฌํ•  ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ธธ๊ฒŒ ์ค„ ์„œ ์žˆ๋Š” ๋น„ํšจ์œจ์ ์ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

(2) Global queue ์‚ฌ์šฉ: ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•˜๋‚˜์˜ ๊ณตํ†ต๋œ ์ „์—ญ ํ์— ๋„ฃ๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

- ์–ด๋–ค CPU๋“  ์ž‘์—…์ด ๋๋‚˜๋ฉด ์‰ฌ์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ „์—ญ ํ์—์„œ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•œ๋‹ค.

- ํŠน์ • CPU๋งŒ ์‰ฌ๋Š” ๋น„ํšจ์œจ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

- ์—ฌ๋Ÿฌ CPU๊ฐ€ ๋™์‹œ์— ํ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ณ  ํ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

Global queue๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฒฐ์ •

 

The Use of Multiprogramming on Individual Processor

(1) ์ฒ˜๋ฆฌ ๋‹จ์œ„๊ฐ€ ํฌ๊ฑฐ๋‚˜(Coarse-grained) ๋…๋ฆฝ์ ์ธ ๊ฒฝ์šฐ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘์—… ๋‹จ์œ„๊ฐ€ ํฌ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ž‘์—…๊ณผ ๊ฑฐ์˜ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒฝ์šฐ)

: ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.(๊ฐ๊ฐ์˜ CPU๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ „ํ™˜ํ•˜๋ฉฐ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ )

 

(2) ์ฒ˜๋ฆฌ ๋‹จ์œ„๊ฐ€ ์ค‘๊ฐ„(Medium-grained) ํฌ๊ธฐ์ธ ๊ฒฝ์šฐ - ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ˆ˜๋งŽ์€ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

: ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

: ์ผ๋ถ€ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์•„์ง ์‹คํ–‰๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์˜ ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์†ํ•œ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์—†๋‹ค๋ฉด ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. 

 

Process Dispatching

x์ถ•: ์ปค์งˆ์ˆ˜๋ก ๋‹ค์–‘ํ•œ ์‹คํ–‰์‹œ๊ฐ„์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌ (1 - ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ๊ฐ™๋‹ค, 5 - ์‹คํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค์™€ ์‹คํ–‰์‹œ๊ฐ„์ด ๊ฐ€์žฅ ๊ธด ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์‹œ๊ฐ„์ด 5๋ฐฐ ์ฐจ์ด ๋‚œ๋‹ค)

y์ถ•: throughput

 

CPU๊ฐ€ 1๊ฐœ์ผ ๋•Œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ํฌ๋‹ค. (1์—์„œ 5๋กœ ๊ฐˆ์ˆ˜๋ก ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ํฌ๋‹ค.)

CPU๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ์‹คํ–‰์‹œํ‚ค๋“  ํฌ๊ฒŒ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์—†๋‹ค. (1์—์„œ 5๋กœ ๊ฐ€๋„ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ํฌ์ง€ ์•Š๋‹ค.)

 

multiprocessor ์‹œ์Šคํ…œ์—์„œ๋Š” ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์ด ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

ํ•˜๋‚˜์˜ CPU๊ฐ€ ์‹คํ–‰์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋”๋ผ๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋Š” ๋†€๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ CPU์—์„œ ์ฆ‰์‹œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Thread Scheduling

ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋“ค์„ ์–ด๋–ค ์ˆœ์„œ์™€ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ

 

Multiprocessor thread scheduling

(1) Load sharing

: ํŠน์ • CPU๊ฐ€ ์œ ํœด ์ƒํƒœ(idle)๊ฐ€ ๋˜๋ฉด ์ „์—ญ ํ์—์„œ ๋‹ค์Œ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•œ๋‹ค.

- ๊ธ€๋กœ๋ฒŒ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Idle-while-busy ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ๋ชจ๋“  CPU์— ์ž‘์—…์ด ๊ณ ๋ฅด๊ฒŒ ๋ถ„๋ฐฐ๋œ๋‹ค.

- ๊ฐ CPU๊ฐ€ ์•Œ์•„์„œ ํ์—์„œ ์ž‘์—…์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์•™ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ํ•„์š” ์—†๋‹ค.

- ํ๋Š”FCFS, ๊ฐ€์žฅ ์ ์€ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์šฐ์„ ์œผ๋กœ ๋˜๋Š” preemtive๋กœ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ดค์„ ๋•Œ ์ฐจ์ด๊ฐ€ ๋ณ„๋กœ ์—†๋‹ค.

(์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•  ์ง€๋Š” ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.)

 

๋‹จ์ 

1. ์—ฌ๋Ÿฌ CPU๊ฐ€ ๋™์‹œ์— ์ „์—ญ ํ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ mutual exclusion ๋•Œ๋ฌธ์— ํ ์ž์ฒด์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์บ์‹œ ํšจ์œจ์„ฑ ์ €ํ•˜: ์„ ์ ๋๋˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด์ „์— ์‹คํ–‰๋˜๋˜ CPU๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ CPU์—์„œ ์‹คํ–‰์„ ์žฌ๊ฐœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. ์ด์ „ CPU์˜ ์บ์‹œ์— ๋‚จ์•„์žˆ๋˜ ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์šฉ์ง€๋ฌผ์ด ๋ผ์„œ ์บ์‹œ ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค. CPU ๊ฐœ์ˆ˜๊ฐ€ n๋ฐฐ์—ฌ๋„ n๋ฐฐ๋งŒํผ ์„ฑ๋Šฅ์ด ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค. (์น˜๋ช…์ ์ธ ๋‹จ์ )

3.๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํ์— ์„ž์—ฌ ์žˆ์–ด์„œ ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์— ์†ํ•œ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๊ธฐ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

 

์ž ์žฌ์ ์ธ ๋‹จ์ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ๋ฐฉ์‹์€ ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์ด์–ด์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

- ๋‹ค๋ฅธ ๋ฐฉ์‹์€ CPU๊ฐ€ ์ˆ˜์‹ญ๊ฐœ์ผ ๋•Œ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

- ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๋™๊ธฐํ™” ์ž‘์—…์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜์ง€ ์•Š์•„์„œ load sharing์„ ์‚ฌ์šฉํ•ด๋„ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

 

(2) Gang scheduling

- ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ๋œ ์Šค๋ ˆ๋“œ๋“ค์˜ ๋ฌถ์Œ์„ ์—ฌ๋Ÿฌ CPU์— ๋™์‹œ์— ํ•จ๊ป˜ ์Šค์ผ€์ค„๋งํ•˜๋Š” ๋ฐฉ์‹

- medium์ด๋‚˜ fine ๋‹จ์œ„์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค. (๋™๊ธฐํ™”๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒ)

- ๋ ˆ๋”” ํ์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ค„์„ ์„œ๊ณ  A๋ผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ 10๊ฐœ๋ผ๋ฉด 10๊ฐœ์˜ CPU๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค.

- ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด: CPU์˜ ๊ฐœ์ˆ˜ >= Application์˜ thread ๊ฐœ์ˆ˜

- ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ N๊ฐœ์˜ CPU ์ „์ฒด ์‚ฌ์šฉ ์‹œ๊ฐ„์˜ 1/M ๋งŒํผ์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. (N๊ฐœ์˜ CPU๋ฅผ M๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ)

- 4๊ฐœ์˜ CPU๋ฅผ 2๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ „์ฒด ์‹œ๊ฐ„์˜ ์ ˆ๋ฐ˜ ๋™์•ˆ 4๊ฐœ์˜ CPU๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž์‹ ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•œ๋‹ค.

- ์Šค์ผ€์ค„๋ง ์‹œ ๋‹จ์ˆœํžˆ 1/M๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ ์™ธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐ€์ง„ ์Šค๋ ˆ๋“œ์˜ ์ˆ˜์— ๋”ฐ๋ผ ๊ฐ€์ค‘์น˜๋ฅผ ๋‘์–ด ํ• ๋‹น ์‹œ๊ฐ„์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค. (์•„๋ž˜ ๊ทธ๋ฆผ)

 

์œ„์˜ ๊ทธ๋ฆผ์€ 4๊ฐœ์˜ CPU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 4๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ๊ทธ๋ฃน 1๊ณผ 1๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ๊ทธ๋ฃน 2๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•œ ๊ทธ๋ฆผ์ด๋‹ค.

 

์™ผ์ชฝ์€ ๋‘ ๊ทธ๋ฃน์—๊ฒŒ ์‹œ๊ฐ„์„ 1/2์”ฉ ๊ณตํ‰ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด ์ค€๋‹ค. ์ฒ˜์Œ 1/2์‹œ๊ฐ„์—๋Š” ๊ทธ๋ฃน 1์ด ์‹คํ–‰๋˜๊ณ  4๊ฐœ์˜ CPU๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค. ๋‚˜๋จธ์ง€ 1/2์‹œ๊ฐ„์—๋Š” ๊ทธ๋ฃน 2๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ทธ๋ฃน์€ ์Šค๋ ˆ๋“œ๊ฐ€ 1๊ฐœ๋ฟ์ด๋ผ CPU 1๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๋จธ์ง€ 3๊ฐœ๋Š” ์œ ํœด ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ 37.5%์˜ ์ž์› ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์˜ค๋ฅธ์ชฝ์€ ๊ฐ ๊ทธ๋ฃน์˜ ์Šค๋ ˆ๋“œ ์ˆ˜์— ๋น„๋ก€ํ•˜์—ฌ ๊ฐ€์ค‘์น˜๋ฅผ ๋‘์–ด ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•œ๋‹ค. ๊ทธ๋ฃน 1์—๊ฒŒ ์‹œ๊ฐ„์˜ 4/5๋ฅผ, ๊ทธ๋ฃน 2์—๊ฒŒ๋Š” 1/5๋ฅผ ํ• ๋‹นํ•œ๋‹ค.์ „์ฒด ์‹œ๊ฐ„์˜ 4/5 ๋™์•ˆ ์Šค๋ ˆ๋“œ๊ฐ€ ๋งŽ์•„์„œ ๋ชจ๋“  CPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ทธ๋ฃน 1์„ ๋” ๊ธธ๊ฒŒ ์‹คํ–‰ํ•œ๋‹ค. ์ „์ฒด ์‹œ๊ฐ„์˜ 1/5 ๋™์•ˆ ๋Œ€๋ถ€๋ถ„์˜ CPU๋ฅผ ๋†€๊ฒŒ ๋งŒ๋“ ๋Š” ๊ทธ๋ฃน 2๋Š” ๋” ์งง๊ฒŒ ์‹คํ–‰ํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ž์› ๋‚ญ๋น„๊ฐ€ 15%๋กœ ํฌ๊ฒŒ ๊ฐ์†Œํ•œ๋‹ค.

 

(3) Dedicated processor assignment

- ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ๋“ค์„ ์ •ํ•ด์ง„ CPU ์ง‘ํ•ฉ์— ๊ณ ์ •ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ, ์Šค๋ ˆ๋“œ ๊ฐœ์ˆ˜์™€ ํ• ๋‹น๋˜๋Š” CPU์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค.

- gang scheduling๊ณผ์˜ ์ฐจ์ด์ : time sharing์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. (process switching x)

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ, ํ• ๋‹น๋œ CPU๋“ค์€ ์˜ค์ง ๊ทธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ ˆ๋Œ€ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

*gang: ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ CPU ๊ทธ๋ฃน์„ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ์‚ฌ์šฉํ•œ๋‹ค. 

 

[๋‹จ์ ]

- ๋งŒ์•ฝ ์–ด๋–ค ์Šค๋ ˆ๋“œ๊ฐ€ block๋˜๋ฉด ๊ทธ ์Šค๋ ˆ๋“œ์— ํ• ๋‹น๋œ CPU๋Š” ๋‹ค๋ฅธ ์ผ์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ทธ๋Œ€๋กœ ์œ ํœด ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

- Processor Fragmentation: ๋†€๊ณ  ์žˆ๋Š” CPU๋Š” ์ถฉ๋ถ„ํžˆ ๋งŽ์ง€๋งŒ ์ด๋“ค์ด ํฉ์–ด์ ธ ์žˆ์–ด์„œ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”๋กœ ํ•˜๋Š” ๋งŒํผ์˜ CPU๊ฐ€ ํ•œ ๋ฒˆ์— ํ• ๋‹น๋˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ

 

CPU ๊ฐœ์ˆ˜

Load Sharing < Gang Scheduling < Dedicated processor assignment

 

(4) Dynamic scheduling

- os์˜ ์—ญํ• : ๋ ˆ๋”” ํ์— ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— CPU๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋Š” ์—ญํ• 

- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ญํ• : ์ž์‹ ์˜ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์Šค๋ ˆ๋“œ๋“ค ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์‹คํ–‰ํ• ์ง€ ์Šค์Šค๋กœ ๊ฒฐ์ •

 

CPU ์š”์ฒญ ์‹œ ๋™์ž‘

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด 5๊ฐœ์˜ CPU๋ฅผ ์š”์ฒญํ•œ ์ƒํ™ฉ

- 5๊ฐœ์˜ ์‰ฌ๊ณ  ์žˆ๋Š” CPU๊ฐ€ ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ๋ชจ๋‘ ํ• ๋‹นํ•œ๋‹ค. ๋งŒ์•ฝ ์‰ฌ๊ณ  ์žˆ๋Š” CPU๊ฐ€ 5๊ฐœ๋ณด๋‹ค ์ ์œผ๋ฉด ํ˜„์žฌ ๊ฐ€์šฉํ•œ ๋งŒํผ๋งŒ ์šฐ์„  ํ• ๋‹นํ•œ๋‹ค.

- ์‰ฌ๊ณ  ์žˆ๋Š” CPU๊ฐ€ ์•„์˜ˆ ์—†์œผ๋ฉด ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ๋บ์–ด์˜ค๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์š”์ฒญ์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ์—๋Š” ํ˜„์žฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ CPU๋ฅผ ํ•˜๋‚˜ ๋บ์–ด์™€ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋‹น์žฅ ํ• ๋‹นํ•  CPU๊ฐ€ ์—†๋‹ค๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ CPU๊ฐ€ ์ƒ๊ธธ ๋•Œ๊นŒ์ง€ ์š”์ฒญ์„ ๋Œ€๊ธฐ์‹œํ‚จ๋‹ค.

 

CPU ๋ฐ˜๋‚ฉ ์‹œ ๋™์ž‘

- ํ˜„์žฌ ํ• ๋‹น๋ฐ›์€ CPU๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์—๊ฒŒ ์šฐ์„ ์ ์œผ๋กœ CPU๋ฅผ ํ•˜๋‚˜์”ฉ ๋‚˜๋ˆ„์–ด ์ค€๋‹ค.

- ๊ทธ๋Ÿฌ๊ณ ๋„ ๋‚จ๋Š” CPU๊ฐ€ ์žˆ๋‹ค๋ฉด ํ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋˜ ์ˆœ์„œ(FCFS)๋Œ€๋กœ ๋‚˜๋จธ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์—๊ฒŒ ํ• ๋‹นํ•œ๋‹ค.

'์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

CH11-1 I/O Management and Disk Scheduling  (0) 2025.06.14
CH10-2 Multiprocessor and Real-Time Scheduling  (0) 2025.06.13
CH9-2 Uniprocessor Scheduling  (0) 2025.06.08
CH9-1 Uniprocessor Scheduling  (1) 2025.06.08
CH8-3 Virtual Memory  (0) 2025.06.07