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 |