1. CPU ์ค์ผ์ค๋ง ๊ฐ์
์์ : CPU, ๋์คํฌ, ํ๋ฆฐํฐ, ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ CPU ์ค์ผ์ค๋ง : ์ค๋น์ํ์ ์๋ ์ค๋ ๋๋ค ์ค ํ๋๋ฅผ ์ ํํ์ฌ CPU๋ฅผ ํ ๋นํ๋ ๊ณผ์ ๋์คํฌ ์ค์ผ์ค๋ง : ๋์คํฌ ์ ์ถ๋ ฅ ์์ฒญ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ๋์คํฌ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ ๊ณผ์
์ค๋๋ CPU ์ค์ผ์ค๋ง์ ์ค๋น์ํ์ ์ค๋ ๋ ์ค ํ๋๋ฅผ ์ ํํ๋ ์ค๋ ๋ ์ค์ผ์ค๋ง์ด๋ค
1.1 ๋ค์คํ๋ก๊ทธ๋๋ฐ๊ณผ ์ค์ผ์ค๋ง
- ์์ ์ค์ผ์ค๋ง(job scheduling)
- CPU ์ค์ผ์ค๋ง(CPU scheduling)
์ด๊ธฐ ๋ค์คํ๋ก๊ทธ๋๋ฐ ์์คํ
โ ์ฌ์ฉ์๊ฐ ์์ฑํ ์์
์ ์ฝ์ด ๋์คํฌ ์ฅ์น์ ์ ์ฅํ๊ณ ๋ช๊ฐ์ ์์
์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ ํ ์ด๋ค์ ๋ค์คํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
์์
์ค์ผ์ค๋ง : ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃํ๋ฉด ๋์คํฌ์์ ๊ธฐ๋ค๋ฆฌ๋ ์์
์ค ํ๋๋ฅผ ์ ํํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ
CPU ์ค์ผ์ค๋ง : ์คํ์ค์ธ ํ๋ก์ธ์ค๊ฐ I/O๋ฅผ ์คํํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค ์ค cpu์ ์คํ์ํฌ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ ๊ณผ์
1.2 cpu brust์ I/O brust
ํ๋ก๊ทธ๋จ์ CPU brust - I/O brust - โฆ - CPU brust - I/O brust๋ฅผ ๋ฐ๋ณตํจ
cpu brust : cpu๊ฐ ์ฝ๋๋ฅผ ์ง์ค์ ์ผ๋ก ์คํํ๋ ์ํฉ I/O brust : I/O ์ฅ์น์ ์ํด ์ ์ถ๋ ฅ์ด ์ด๋ฃจ์ด์ง๋ ์ํฉ
CPU ์ง์ค ํ๋ก์ธ์ค : cpu brust ์๊ฐ > I/O brust ์๊ฐ I/O ์ง์ค ํ๋ก์ธ์ค : cpu brust ์๊ฐ < I/O brust ์๊ฐ
I/O brust ๋์ cpu ์ ํด ์๊ฐ์ ์ค์ด๊ธฐ ์ํด cpu๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ๋ cpu ์ค์ผ์ค๋ง ๋์
1.3 cpu ์ค์ผ์ค๋ง์ ๊ธฐ๋ณธ ๋ชฉํ
- cpu ํ์ฉ๋ฅ ํฅ์
- ์ปดํจํฐ ์์คํ ์ฒ๋ฆฌ์จ ํฅ์
1.4 cpu ์ค์ผ์ค๋ง์ ๊ธฐ์ค(criteria)
- CPU ํ์ฉ๋ฅ (CPU utilization) : ์ปดํจํฐ ์ ์ฒด ๊ฐ๋์๊ฐ๋ค ๋ํ cpu ์ฌ์ฉ ์๊ฐ ๋น์จ
- ์ฒ๋ฆฌ์จ(throughput) : ๋จ์ ์๊ฐ ๋น ์ฒ๋ฆฌํ๋ ์ค๋ ๋ ๊ฐ์
- ๊ณตํ์ฑ(fairness) : ๋ชจ๋ ์ค๋ ๋์๊ฒ cpu ์ฌ์ฉ์๊ฐ์ ๊ณตํํ๊ฒ ๋ฐฐ๋ถํ๋ ๊ฒ
- ์๋ต์๊ฐ(response time) : ์ฌ์ฉ์์ ๋ํ ์๋ต ์๊ฐ ์ต์ํ
- ๋๊ธฐ์๊ฐ(waiting time) : ์ค๋ ๋๊ฐ ์ค๋น ๋ฆฌ์คํธ์์ cpu๋ฅผ ํ ๋น๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ
- ์์์๊ฐ(turnaround time) : ์์
์ด ์ปดํจํฐ ์์คํ
์ ์ง์
ํ๋ ์์ ์์ ์๋ฃ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
- ๋ฐฐ์น ์์คํ : ์์ ์ ์ถ ~ ๊ฒฐ๊ณผ ๋ฐํ
- ๋ค์คํ๋ก๊ทธ๋๋ฐ : ํ๋ก์ธ์ค ์์ ~ ์ข ๋ฃ
- ์ฌ์ฉ์ ์ ์ฅ : ์์ ์์ ํ ๊ฒฐ๊ณผ ์ป๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
- ์์คํ ์ ์ฑ ์ฐ์ (high policy enforcement) : cpu ์ค์ผ์ค๋ง์ด ์์คํ ์ ์ ์ฑ ์ ๋ง๋๋ก ์ด๋ฃจ์ด์ ธ์ผ ํจ
- ์์ ํ์ฉ๋ฅ (high resource effieniecy)
1.5 cpu ์ค์ผ์ค๋ง๊ณผ ํ์ ์ฌ๋ผ์ด์ค
์ด์์ฒด์ ๋ ์ค๋ ๋๊ฐ CPU๋ฅผ ์ฌ์ฉํ ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ์ ํ๊ณ ์ด ์๊ฐ๋์ CPU๋ฅผ ์ฌ์ฉํ๊ฒ ํจ
2. CPU ์ค์ผ์ค๋ง ๊ธฐ๋ณธ
- ์ค๋ ๋๊ฐ I/O๋ฅผ ์์ฒญํ๋ ์์คํ ํธ์ถ์ ์คํํ์ฌ ๋ธ๋ก ์ํ(Blocked)๊ฐ ๋๊ฑฐ๋ ์์์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ๊ฐ ๋ ๋ ๋ค๋ฅธ ์ค๋ ๋์๊ฒ CPU๋ฅผ ํ ๋นํ๋ ๊ฒฝ์ฐ
- ์ค๋ ๋๊ฐ ์๋ฐ์ ์ผ๋ก CPU๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ
- ์ค๋ ๋์๊ฒ ํ ๋น๋ ํ์ ์ฌ๋ผ์ด์ค๊ฐ ๋ค ์์ง๋์ด ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ๋
- ํ์ฌ ์คํ์ค์ธ ์ค๋ ๋๋ณด๋ค ๋ ๋์ ์์์ ์ค๋ ๋๊ฐ ์์ฒญํ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋์ด I/O ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ
2.2 CPU ์ค์ผ์ค๋ง๊ณผ ๋์คํจ์น
CPU ์ค์ผ์ค๋ง ์ฝ๋์ ์์น์ ์คํ ์์
cpu ์ค์ผ์ค๋ง์ ์ปค๋์ ์ํด ์ด๋ฃจ์ด์ง
CPU ์ค์ผ์ค๋ง์ ๋ด๋นํ๋ ๋ณ๋์ ์ปค๋ ์ค๋ ๋๋ ํ๋ก์ธ์ค๋ ์๋ค
- ๋ชจ๋๋ฆฌ์ ์ปค๋์ ๊ฒฝ์ฐ ์ค์ผ์ค๋ง์ ์ ๋ดํ๋ ๋ณ๋์ ์ค๋ ๋๊ฐ ์๊ณ ์ค์ผ์ค๋ง ์ฝ๋๋ ์์คํ ํธ์ถ์ด๋ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ ํธ์ถ๋๋ ์ฝ๋ ํํ๋ก ์กด์ฌ
CPU ์ค์ผ์ค๋ง ์ฝ๋๊ฐ ์คํ๋๋ ์์ธํ ์์ ์? ์์คํ ํธ์ถ์ด๋ ์ธํฐ๋ฝํธ ์๋น์ค ๋ฃจํด์ด ์๋น์ค๋ฅผ ๋ง์น๋ ๋ง์ง๋ง ๊ณผ์ ์์ ์ค์ผ์ค๋ง์ด ํ์ํ ๋
๋์คํจ์ฒ(dispatcher)์ฝ๋ ์คํ
์ค์ผ์ค๋ฌ ์ฝ๋์ ์ํด ์ ํ๋ ์ค๋ ๋๋ฅผ cpu๊ฐ ์คํํ๋๋ก ํ๋ ์ปค๋์ฝ๋์ ํ ๋ถ๋ถ
- CPU ๋ ์ง์คํฐ๋ค์ ์ค๋ ๋ A์ TCB-A์ ์ ์ฅํ๊ณ ์ค๋ ๋ B์ TCB-B์ ์ ์ฅ๋ ๋ ์ง์คํฐ๋ค์ CPU์ ์ ์ฌํ๋ ์ปจํ ์คํธ ์ค์์นญ ์คํ
- ๋์คํจ์น ์คํ ๊ฒฐ๊ณผ cpu๋ ์ด์ ์ ์ค๋ ๋ b๊ฐ ์ค๋จ๋์๋ ์ํ์์ ์คํ ์์
2.3 ์ค์ผ์ค๋ง ํ์ : ์ ์ ์ค์ผ์ค๋ง๊ณผ ๋น์ ์ ์ค์ผ์ค๋ง
๋น์ ์ ์ค์ผ์ค๋ง
์ค๋ ๋๋ฅผ ๊ฐ์ ์ค๋จ ์ํค์ง ์๊ณ ์คํ์ค์ธ ์ค๋ ๋๊ฐ ๋์ด์ cpu๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ์ค๋ฉด ์ค์ผ์ค๋ง ์ํ
- cpu๋ฅผ ๋ ์ด์ ์ฌ์ฉํ ์ ์๊ฒ ๋ ๊ฒฝ์ฐ : I/O๋ก ์ธํ ๋ธ๋ก ์ํ, sleep()
- ์๋ฐ์ cpu์๋ณด : yield() ์์คํ ํธ์ถ
- ์ค๋ ๋ ์ข ๋ฃ
์ ์ ์ค์ผ์ค๋ง
ํ์ฌ ์คํ์ค์ธ ์ค๋ ๋๋ฅผ ๊ฐ์ ์ค๋จ ์์ผ ์ค๋น๋ฆฌ์คํธ๋ก ์ด๋์ํค๊ณ ์ค์ผ์ค๋ง ํ๋ ๋ฐฉ์
- ํ์ ์ฌ๋ผ์ด์ค๊ฐ ์์ง๋์์ ๋
- ์ธํฐ๋ฝํธ๋ ์์คํ ํธ์ถ ์ข ๋ฃ ์์ ์์ ๋ ๋์ ์์์ ์ค๋ ๋๊ฐ ๋๊ธฐ ์ํ์ ์์ ๋
2.4 ๊ธฐ์์ ์์ด์ง
๊ธฐ์(starvation) : ์ค๋ ๋๊ฐ ์ค์ผ์ค๋ง ๊ณผ์ ์์ ์ ํ๋์ง ๋ชปํ ์ฑ ์ค๋ซ ๋์ ์ค๋น๋ฆฌ์คํธ์ ์๋ ์ํฉ
- ์ฐ์ ์์ ๊ธฐ๋ฐ ์์คํ ์์ ๋์ ์์์ ์ค๋ ๋๊ฐ ๊ณ์ ๋ค์ด์ค๋ ๊ฒฝ์ฐ
- ์คํ์๊ฐ์ด ์งง์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ผ๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ์์ ์งง์ ์ค๋ ๋๊ฐ ๊ณ์ ๋ค์ด์ค๋ ๊ฒฝ์ฐ
์์ด์ง(aging) : ์ค๋ ๋๊ฐ ์ค๋น๋ฆฌ์คํธ์ ๋จธ๋ฌด๋ฅด๋ ์๊ฐ์ ๋น๋กํ์ฌ ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ๋ ๊ธฐ๋ฒ
3. ๋ค์ํ CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
3.1 FCFS(First Come First Served) ์ค์ผ์ค๋ง
๋จผ์ ๋์ฐฉํ ์ค๋ ๋๋ฅผ ๋จผ์ ์ค์ผ์ค๋ง
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
์ค๋ ๋ ๋ณ ํ ๋์ฐฉ์๊ฐ | ๋น์ ์ | ์์ | ๋ฐ์ X |
- ์ฑ๋ฅ ์ด์
- ๊ธด cpu brust๋ฅผ ์คํํ๋ ์ค๋ ๋๊ฐ cpu๋ฅผ ์๋ํ ๋๊น์ง ๋๊ธฐํ๊ฑฐ๋ ๋ฆ๊ฒ ๋์ฐฉํ ์งง์ ์ค๋ ๋๋ค์ด ์ค๋ ๋๊ธฐ โ ์์คํ ์ ์ฒด๊ฐ ๋๋ ค์ง
- ์ฒ๋ฆฌ์จ์ด ๋ฎ์ง๋ง ๋จ์ํ๊ณ ๊ตฌํ์ด ์ฉ์ด
3.2 SJF(Shortest Job First) ์ค์ผ์ค๋ง
์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ ํ ํ๋ฅผ ์ํํ์ฌ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์ค๋ ๋๋ฅผ ์ ํํ๊ฑฐ๋ ์ค๋ ๋๊ฐ ํ์ ๋์ฐฉํ ๋ ์ ๋ ฌํ์ฌ ๊ตฌํ
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
์ค๋ ๋ ๋ณ ์์๋์ฐฉ์๊ฐ | ๋น์ ์ | ์์ | ๋ฐ์ ๊ฐ๋ฅ |
- ์ฑ๋ฅ ์ด์
- ๋๊ธฐ์ค์ธ ๋ชจ๋ ์ค๋ ๋์ ๋๊ธฐ์๊ฐ์ด ์งง์์ง๋ฏ๋ก ํ๊ท ๋๊ธฐ์๊ฐ ๊ฐ์
- ์ค๋ ๋ ์คํ ์๊ฐ ์์ธก ๋ถ๊ฐ๋ฅ โ ํ์ค์์ ์ฌ์ฉ x
ํ๊ท ๋๊ธฐ ์๊ฐ : (0+4+2+3)/4 = 2.25ms
3.3 SRTF(Shortest Remaining Time First) ์ค์ผ์ค๋ง
SJF์ ์ ์ ์ค์ผ์ค๋ง ๋ฒ์ , ์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ค์ผ์ค
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
์ค๋ ๋ ๋ณ ์์ ์คํ์๊ฐ | ์ ์ | ์์ | ๋ฐ์ ๊ฐ๋ฅ |
- ์ฑ๋ฅ ์ด์
- ์ค๋ ๋๋ค์ ํ๊ท ๋๊ธฐ์๊ฐ ์ต์ํ
- ์คํ์๊ฐ ์์ธก X
ํ๊ท ๋๊ธฐ ์๊ฐ : (1+4+0+3)/4 = 2ms
3.4 RR(Round-Robin) ์ค์ผ์ค๋ง
๊ณตํํ ์คํ ๊ธฐํ๋ฅผ ์ฃผ๊ธฐ ์ํด ํ์ ๋๊ธฐ์ค์ธ ์ค๋ ๋๋ค์ ํ์ ์ฌ๋ผ์ด์ค ์ฃผ๊ธฐ๋ก ๋์๊ฐ๋ฉด์ ์ ํ ๋์ฐฉํ๋ ์ค๋ ๋๋ ํ ๋์ ์ฝ์ ๋๊ณ ์ค๋น๋ฆฌ์คํธ์ ๋งจ ์์ ์ค๋ ๋๋ฅผ ์ ํํ์ฌ ์คํ
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
ํ์ ์ฌ๋ผ์ด์ค | ์ ์ | ์์ | ์์ |
- ์ฑ๋ฅ์ด์
- ์ฆ์ ์ค์ผ์ค๋ง๊ณผ ์ปจํ ์คํธ ์ค์์นญ์ ์์๋๋ ์๊ฐ์ด ํผ
- ํ์ ์ฌ๋ผ์ด์ค๊ฐ ์์์๋ก ์ค์ผ์ค๋ง ํ์ ์ฆ๊ฐ๋ก ์ฑ๋ฅ ์ ํ
- ํ์ ์ฌ๋ผ์ด์ค๊ฐ 2ms - ํ๊ท ๋๊ธฐ์๊ฐ : (3+4+2+3)/4 = 3ms - ์ค์ผ์ค๋ง ํ์ : 6๋ฒ - ์ปจํ
์คํธ ์ค์์นญ : 5๋ฒ - FCFS์ ๊ฐ๊น์ด ์๊ณ ๋ฆฌ์ฆ
- ํ์ ์ฌ๋ผ์ด์ค๊ฐ 1ms
- ํ๊ท ๋๊ธฐ์๊ฐ : (5+4+1+3)/4 = 3.25ms
- ์ค์ผ์ค๋ง ํ์ : 10๋ฒ
- ์ปจํ ์คํธ ์ค์์นญ : 9๋ฒ
- SJF/SRT์ ๊ฐ๊น์ด ์๊ณ ๋ฆฌ์ฆ
3.5 Priority ์ค์ผ์ค๋ง
ํ์์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ์ค๋ ๋๋ฅผ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
์ค๋ ๋๋ค์ ์ฐ์ ์์ ๊ฐ | ์ ์ /๋น์ ์ ๋ชจ๋ ๊ฐ๋ฅ | ์ค๋ ๋๋ง๋ค ๊ณ ์ ์ฐ์ ์์ | ๋ฐ์ ๊ฐ๋ฅ |
- ์ฑ๋ฅ ์ด์
- ์ฐ์ ์์๊ฐ ๋์์๋ก ๋๊ธฐ์๊ฐ๊ณผ ์๋ต์๊ฐ์ด ์งง์
- ๊ณ ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ์ค์๊ฐ ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉ
3.6 MLQ(Multi-level Queue) ์ค์ผ์ค๋ง
- ์ค๊ณ์๋
- ์ค๋ ๋๋ค์ n๊ฐ์ ์ฐ์ ์์ ๋ ๋ฒจ๋ก ๊ตฌ๋ถํ๊ณ ๋ ๋ฒจ์ด ๋์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ฒ๋ฆฌํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ
n๊ฐ์ ๋ ๋ฒจ ํ(์ฐ์ ์์ ํ)๋ฅผ ๋๊ณ ์ค๋ ๋๋ฅผ ๋ ๋ฒจ์ ๋ฐ๋ผ ํ์ ์ฝ์ ๊ฐ์ฅ ๋์ ๋ ๋ฒจ์ ํ์์ ๋งจ ์์ ์๋ ์ค๋ ๋ ์ ํ
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
์ค๋ ๋ ์ฐ์ ์์ | ์ ์ /๋น์ ์ ๋ชจ๋ ๊ฐ๋ฅ ๋น์ ์ : ์ค๋ ๋๊ฐ ์ข ๋ฃํ ๋ ์ค์ผ์ค๋ง ํ๋๋ก ๊ตฌํ ์ ์ : ์คํ์ค ๋ ๋์ ๋ ๋ฒจ์ ์ค๋ ๋๋ฅผ ๋จผ์ ์ค์ผ์ค๋ง | ๊ณ ์ ์ฐ์ ์์ | ๋ฐ์๊ฐ๋ฅ |
- ์ฑ๋ฅ ์ด์
- ์ค๋ ๋๋ณ๋ก ๊ณ ์ ์ฐ์ ์์๋ฅผ ๋๊ณ ๋์ ์์์ ์ค๋ ๋๋ฅผ ๋จผ์ ์คํ์ํค๋ ์์คํ ์์ ์ฌ์ฉ
- ๋์ ์์๋ฅผ ๊ฐ์ง ์ค๋ ๋๋ค์ ๋๊ธฐ ์๊ฐ๊ณผ ์๋ต ์๊ฐ์ด ์งง์
- ์ง์์ ์ผ๋ก ๋์ ๋ ๋ฒจ์ ์ค๋ ๋ ๋์ฐฉ ์ ๊ธฐ์ ๋ฐ์
- ์ค๋ ๋๋ฅผ ๋ค๋ฅธ ๋ ๋ฒจ ํ๋ก ์ด๋์์ผ ๋ฌธ์ ํด๊ฒฐ
3.7 MLFQ(Multi level Feedback Queue) ์ค์ผ์ค๋ง
-
์ค๊ณ์๋
- cpu brust๊ฐ ์งง์ ์ค๋ ๋, I/O์์ ์ด ๋ง์ ์ค๋ ๋, ๋ํ์ ์ค๋ ๋ ์ฐ์ ์คํ
- ์ค๋ ๋์ ํ๊ท ๋๊ธฐ์๊ฐ์ ์ค์ด๊ณ ์ฌ์ฉ์์ ์๋ต์๊ฐ์ ์ค์ด๊ณ ๊ธฐ์๊ฐ ๋ฐ์ํ์ง ์๊ฒ ํจ
-
n๊ฐ์ ๋ ๋ฒจ ํ
- ์ฐ์ ์์๋ก ๊ตฌ๋ถ๋ n๊ฐ์ ํ๋ฅผ ๋
- ์ฐ์ ์์๊ฐ ์๊ณ ๋์ฐฉํ ๋ ๊ฐ์ฅ ๋์ ๋ ๋ฒจ์ ํ์ ์ฝ์
- ๋์ ๋ ๋ฒจ์ ํ๋ฅผ ๋จผ์ ์ค์ผ์ค๋งํ๋ฉฐ, ๋์ ๋ ๋ฒจ์ ํ๊ฐ ๋น์ด์์ ๋๋ง ์๋ ๋ ๋ฒจ์ ํ์์ ์ค์ผ์ค๋ง
๋์ฐฉํ๋ ์ค๋ ๋๋ ๊ฐ์ฅ ๋์ ๋ ๋ฒจ ํ์ ์ฝ์ ๋จ ๊ฐ์ฅ ๋์ ๋ ๋ฒจ ํ์์ ์ค๋ ๋๋ฅผ ์ ํํ์ฌ ์คํ์ํค๊ณ , ํ๊ฐ ๋น์์ผ๋ฉด ์๋ ๋ ๋ฒจ ํ์์ ์ ํํ๋ ์์ผ๋ก ์ฒ๋ฆฌ ์คํ์ค์ธ ์ค๋ ๋์ cpu brust๊ฐ ํ ํ์ ์ฌ๋ผ์ด์ค๋ณด๋ค ๊ธธ์ด์ง โ ๊ฐ์ ์ค๋จ ๋ค ์๋ ๋ ๋ฒจ์ ํ๋ก ์ด๋ ์ค๋ ๋๊ฐ ์คํ ์ค ์๋ฐ์ ์ค๋จ โ ๋์ผ ํ์ ๋ค์ ์ฝ์ I/O ์์ฒญ์ ํ์์ ๋์ด โ ์์ ํ ๋์ผ ํ์ ๋ค์ ์ฝ์ ๋๊ธฐ ์๊ฐ ๊ธธ์ด์ง โ ๊ธฐ์ ๋ฐฉ์ง๋ฅผ ์ํด ํ ๋ ๋ฒจ ์์ ํ๋ก ์ด๋ ์ตํ์ ๋ ๋ฒจ ํ๋ FCFS๋ ๊ธด ํ์ ์ฌ๋ผ์ด์ค์ RR๋ก ์ค์ผ์ค
์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ | ์ค์ผ์ค๋ง ํ์ | ์ค๋ ๋ ์ฐ์ ์์ | ๊ธฐ์ |
---|---|---|---|
ํ์ ๊ฐ์, ๊ฐ ํ์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ, ์ฐ์ ์์ ๊ฒฉํ/๊ฒฉ์ ์์ , ๋์ฐฉํ๋ ์ค๋ ๋๊ฐ ์ง์ ํ ํ ๋ฑ | ์ ์ | ์์ | ์์ |
- ์ฑ๋ฅ ์ด์
- cpu brust๊ฐ ์งง๊ฑฐ๋ ์ ์ถ๋ ฅ์ด ๋น๋ฒํ ์ค๋ ๋, ๋ํ์ ์ค๋ ๋์๊ฒ ๋์ ์ฐ์ ์์๋ฅผ ์ ๊ณตํ์ฌ ์๋ต์๊ฐ์ ๋นจ๋ฆฌํ๊ณ ํ๊ท ๋๊ธฐ์๊ฐ์ ๊ฐ์์ํด
- ์ ์ฐ์ฑ์ด ๋ฐ์ด๋์ง๋ง ์๊ณ ๋ฆฌ์ฆ์ด ๋ณต์กํ์ฌ cpu ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐ๋๋ ๋จ์
4. ๋ฉํฐ ์ฝ์ด CPU์์์ ์ค์ผ์ค๋ง
4.1 ๋ฉํฐ ์ฝ์ด CPU์ ๋ณ๋ ฌ ์ฒ๋ฆฌ
์ฝ์ด : ๋ ์ง์คํฐ๋ค, ์ฐ์ฐ์ฅ์น, ์ ์ด์ฅ์น, ๋ฒ์ค ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ๊ธฐ๊ณ๋ช
๋ น์ ์ฒ๋ฆฌํ ์ ์๋ ํ๋ก์ธ์
- 4๊ฐ์ ์ฝ์ด๊ฐ 4๊ฐ์ ์ค๋ ๋๋ฅผ ๋ณ๋ ฌ ์คํ
- ๊ฐ ์ฝ์ด์์ ์คํ๋๋ ์ค๋ ๋๊ฐ ๋์์ ์์คํ ํธ์ถ์ ์คํํ์ฌ ์ปค๋๋ก ์ง์ ๊ฐ๋ฅ
4.2 ๋ฉํฐ ์ฝ์ด ์์คํ ์์ cpu ์ค์ผ์ค๋ง๊ณผ ์์ ๋ถ๋ฐฐ
์ปจํ ์คํธ ์ค์์นญ ํ ์ค๋ฒํค๋ - ์ฝ์ด ์นํ์ฑ์ผ๋ก ํด๊ฒฐ
cpu ์ค์ผ์ค๋ฌ์ ์ํด ์ด๋ค ์ฝ์ด์ ์คํ์ํค๊ธฐ๋ก ๊ฒฐ์ ๋ ์ค๋ ๋๊ฐ ์ด์ ์ ์ด ์ฝ์ด์์ ์คํ๋ ์ ์ด ์์ โ ์ ์ค๋ ๋๊ฐ ์คํ๋ ํ ์ ์ค๋ ๋์ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์ ์ฌ๋๋ ๋ฐ ๋ง์ ์๊ฐ ์์ โ ์ต๊ทผ ์คํ๋ ์ ์๋ ์ค๋ ๋ ์ค ํ๋๋ฅผ ์ ํํ๋ค๋ฉด ์บ์๋ฅผ ๋ค์ ์ฑ์ฐ๋ ๊ณผ์ ๊ฐ์
CPU ์นํ์ฑ : ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ํน์ cpu์์๋ง ์คํ๋๋๋ก ์ ํํ๋ ์ค์ผ์ค๋ง ํน์ฑ
๋ฉํฐ ์ฝ์ด ์ด์์ฒด์ ์์๋ ์ฝ์ด ์นํ์ฑ์ ์ํด ์ฝ์ด๋ง๋ค ์ค๋ ๋ ํ๋ฅผ ๋๊ณ ํ ์ฝ์ด์์ ์คํ์ด ์ค๋จ๋ ์ค๋ ๋๋ฅผ ๋ค์ ๋์ผํ ์ฝ์ด์ ํ์ ์ฝ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉ
์ฝ์ด๋ณ ๋ถํ ๋ถ๊ท ํ - ๋ถํ ๊ท ๋ฑํ ๊ธฐ๋ฒ์ผ๋ก ํด๊ฒฐ
์ฝ์ด ์ฌ์ด์ ๋ถํ ๋ถ๊ท ํ ์ด๋ โ ๋ง์ ์ค๋ ๋๊ฐ ๋ชฐ๋ฆฐ ์ฝ์ด๋ ๋๊ธฐ์๊ฐ๊ณผ ์ฒ๋ฆฌ์๊ฐ์ด ๊ธธ์ด์ง โ ์ ์ ์ฝ์ด๋ ๋ ธ๋ ์ํ๊ฐ ๋์ด ์ฝ์ด ํ์ฉ๋ฅ ๊ณผ ์์คํ ์ฒ๋ฆฌ์จ์ด ๋จ์ด์ง
๋ถํ ๊ท ๋ฑํ ๊ธฐ๋ฒ 2๊ฐ์ง
- ํธ์ ๋ง์ด๊ทธ๋ ์ด์
- ์ค๋ ๋๋ฅผ ๊ฐ์ํ๋ ๋ณ๋์ ๊ฐ์ ์ค๋ ๋๋ฅผ ๋๊ณ ๋ ธ๋ ์ฝ์ด๊ฐ ์๊ธธ ๋ ๋ค๋ฅธ ์ค๋ ๋ ํ๋ก๋ถํฐ ์ค๋ ๋๋ฅผ ๊ฐ์ ๋ก ์ฎ๊ฒจ๋๋ ๊ธฐ๋ฒ โ ์ค๋ ๋ ๊ฐ์๋ฅผ ๊ท ๋ฑํ๊ฒ ์ ์ง
- ํ ๋ง์ด๊ทธ๋ ์ด์
- ์ฒ๋ฆฌํ ์ค๋ ๋๊ฐ ์์ ๋ ๋ค๋ฅธ ์ฝ์ด์ ์ค๋ ๋ ํ์์ ์ค๋ ๋๋ฅผ ๊ฐ์ ธ์ ์์ ์ ์ค๋ ๋ ํ์ ๋ฃ๊ณ ์คํํ๋ ๊ธฐ๋ฒ