Introduction
MLFQ๊ฐ ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ฌธ์ ๋ ๋ ๊ฐ์ง์ด๋ค.
- ์งง์ ์์ ์ ๋จผ์ ์คํ์์ผ ๋ฐํ ์๊ฐ์ ์ต์ ํํ๊ณ ์ ํ๋ค.
- ๋ํํ ์ฌ์ฉ์์๊ฒ ์๋ต์ด ๋น ๋ฅธ ์์คํ ์ด๋ผ๋ ๋๋์ ์ฃผ๋๋ก ์๋ต ์๊ฐ์ ์ต์ ํํ๊ณ ์ ํ๋ค.
์ด๋ป๊ฒ ํ๋ฉด ์์ ์ ์คํ ์๊ฐ์ ๋ํ ์ ํ ์ ๋ณด ์์ด ์๋ต ์๊ฐ๊ณผ ๋ฐํ ์๊ฐ์ ๋์์ ์ต์ํํ ์ ์์๊น?
1. MLFQ: ๊ธฐ๋ณธ ๊ท์น
MLFQ๋ ์ฌ๋ฌ ๊ฐ์ ํ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ํ์๋ ๋ค๋ฅธ ์ฐ์ ์์๊ฐ ๋ถ์ฌ๋๋ค. ์คํ ์ค๋น๊ฐ ๋ ํ๋ก์ธ์ค๋ ์ด ์ค ํ๋์ ํ์ ์กด์ฌํ๋ฉฐ, MLFQ๋ ์คํํ ํ๋ก์ธ์ค๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ฐ์ ์์๋ฅผ ์ฌ์ฉํ๋ค. ๊ฐ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์์ ๋ค ์ฌ์ด์์๋ ๋ผ์ด๋ ๋ก๋น ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ์ฉ๋๋ค.
MLFQ์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค:
- ๊ท์น 1: Priority(A) > Priority(B) ์ด๋ฉด, A๊ฐ ์คํ๋๋ค (B๋ ์คํ๋์ง ์๋๋ค).
- ๊ท์น 2: Priority(A) = Priority(B) ์ด๋ฉด, A์ B๋ RR ๋ฐฉ์์ผ๋ก ์คํ๋๋ค.

2. ์๋ 1: ์ฐ์ ์์์ ๋ณ๊ฒฝ
MLFQ๋ ์์ ์ ์ฐ์ ์์๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ์์ ์ด ํค๋ณด๋ ์ ๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฐ๋ณต์ ์ผ๋ก CPU๋ฅผ ์๋ณดํ๋ฉด MLFQ๋ ํด๋น ์์ ์ ์ฐ์ ์์๋ฅผ ๋๊ฒ ์ ์งํ๋ค. ๋ฐ๋ฉด์ ์์ ์ด ๊ธด ์๊ฐ ๋์ CPU๋ฅผ ์ง์ค์ ์ผ๋ก ์ฌ์ฉํ๋ฉด MLFQ๋ ํด๋น ์์ ์ ์ฐ์ ์์๋ฅผ ๋ฎ์ถ๋ค.
์ฐ์ ์์ ๋ณ๊ฒฝ์ ๋ํ ์ถ๊ฐ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค:
- ๊ท์น 3: ์์ ์ด ์์คํ ์ ์ง์ ํ๋ฉด, ๊ฐ์ฅ ๋์ ์ฐ์ ์์, ์ฆ ๋งจ ์์ ํ์ ๋์ฌ์ง๋ค.
- ๊ท์น 4a: ์ฃผ์ด์ง ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ์ฐ์ ์์๋ ๋ฎ์์ง๋ค. ์ฆ, ํ ๋จ๊ณ ์๋ ํ๋ก ์ด๋ํ๋ค.
- ๊ท์น 4b: ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ์์งํ๊ธฐ ์ ์ CPU๋ฅผ ์๋ํ๋ฉด ๊ฐ์ ์ฐ์ ์์๋ฅผ ์ ์งํ๋ค.
์์ 1: ํ ๊ฐ์ ๊ธด ์คํ ์๊ฐ์ ๊ฐ์ง ์์

๊ธด ์คํ ์๊ฐ์ ๊ฐ์ง ์์ ์ด ๋์ฐฉํ์ ๋, ์์ ์ ์ต๊ณ ์ฐ์ ์์๋ก ์ง์ ํ๋ค. ํ์ ์ฌ๋ผ์ด์ค๊ฐ ์ง๋๋ฉด ์ค์ผ์ค๋ฌ๋ ์์ ์ ์ฐ์ ์์๋ฅผ ํ ๋จ๊ณ ๋ฎ์ถ์ด ํด๋น ์์ ์ ์๋ ํ๋ก ์ด๋์ํจ๋ค. ์ด ๊ณผ์ ์ด ๋ฐ๋ณต๋์ด ์์ ์ ๊ฒฐ๊ตญ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
์์ 2: ์งง์ ์์ ๊ณผ ํจ๊ป

2๊ฐ์ ์์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํด๋ณด์. A๋ ์ค๋ ์คํ๋๋ CPU ์์ฃผ ์์ ์ด๊ณ B๋ ์งง์ ๋ํํ ์์ ์ด๋ค. A๋ ์ด๋ฏธ ์คํ ์ค์ด๊ณ B๋ ์ด์ ๋์ฐฉํ๋ค๊ณ ๊ฐ์ ํ๋ฉด, B๋ ๋์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌ๋ฐ์ ๋นจ๋ฆฌ ์คํ๋๊ณ ๋ฐ๋ก ์ข ๋ฃ๋๋ค. ์ดํ์ A๋ ๋ฎ์ ์ฐ์ ์์์์ ์คํ์ ์ฌ๊ฐํ๋ค.
์์ 3: ์ ์ถ๋ ฅ ์์ ์ ๋ํด์๋ ์ด๋ป๊ฒ?

์ ์ถ๋ ฅ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ, ํ๋ก์ธ์ค๊ฐ ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ์์งํ๊ธฐ ์ ์ CPU๋ฅผ ์๋ํ๋ฉด ๊ฐ์ ์ฐ์ ์์๋ฅผ ์ ์งํ๊ฒ ๋๋ค. ์ด ๊ท์น์ ๋ํํ ์์ ์ด ํค๋ณด๋๋ ๋ง์ฐ์ค๋ก๋ถํฐ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋๊ธฐํ๋ฉฐ ์์ฃผ ์ ์ถ๋ ฅ์ ์ํํ๋ฉด ํ์ ์ฌ๋ผ์ด์ค๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ์ CPU๋ฅผ ์๋ํ๊ฒ ๋ ๊ฒ์ด๋ผ๋ ์ ์ ๋ฐ์ํ ๊ฒ์ด๋ค. ์ด ๊ฒฝ์ฐ, MLFQ๋ ํด๋น ์์ ์ ๋น ๋ฅด๊ฒ ์คํ์ํค๊ธฐ ์ํด ์ฐ์ ์์๋ฅผ ๋๊ฒ ์ ์งํ๋ค.
ํ์ฌ MLFQ์ ๋ฌธ์ ์
- ๊ธฐ์ ์ํ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์์คํ ์ ๋ํํ ์์ ์ด ๋ง์ด ์กด์ฌํ๋ฉด, ๊ทธ๋ค์ด ๋ชจ๋ CPU ์๊ฐ์ ์๋ชจํ๊ณ , ๊ธด ์คํ ์๊ฐ ์์ ์ CPU ์๊ฐ์ ํ ๋น๋ฐ์ง ๋ชปํ์ฌ ๊ตถ์ด ์ฃฝ๋๋ค.
- ์ค์ผ์ค๋ฌ๊ฐ ์์ ์๊ฒ ์ ๋ฆฌํ๊ฒ ์๋ํ๋๋ก ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ฑํ ์ ์๋ค. ํ์ ์ฌ๋ผ์ด์ค๊ฐ ๋๋๊ธฐ ์ ์ ์๋ฌด ์ ์ถ๋ ฅ ์์ฒญ์ ๋ด๋ ค CPU๋ฅผ ์๋ํ๋๋ก ์ง ๋ค๋ฉด?
- ํ๋ก๊ทธ๋จ์ด ์๊ฐ ํ๋ฆ์ ๋ฐ๋ผ ํน์ฑ์ด ๋ฐ๋ ์ ์๋ค. (CPU ์์ฃผ ์์ -> ๋ํํ ์์ )
3. ์๋ 2: ์ฐ์ ์์ ์ํฅ ์กฐ์
์๋ก์ด ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ท์น 5: ์ผ์ ๊ธฐ๊ฐ S๊ฐ ์ง๋๋ฉด, ์์คํ ์ ๋ชจ๋ ์์ ์ ์ต์์ ํ๋ก ์ด๋์ํจ๋ค.
์ ๊ท์น์ ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํ ๋ฒ์ ํด๊ฒฐํ๋ค.
- ํ๋ก์ธ์ค๋ ๊ตถ์ง ์๋๋ค๋ ๊ฒ์ ๋ณด์ฅ๋ฐ๋๋ค. ์ต์์ ํ์ ์กด์ฌํ๋ ๋์ ์์ ์ ๋ค๋ฅธ ๋์ ์ฐ์ ์์ ์์ ๋ค๊ณผ ๋ผ์ด๋ ๋ก๋น ๋ฐฉ์์ผ๋ก CPU๋ฅผ ๊ณต์ ํ๊ฒ ๋๊ณ ์๋น์ค๋ฅผ ๋ฐ๊ฒ ๋๋ค.
- CPU ์์ฃผ์ ์์ ์ด ๋ํํ ์์ ์ผ๋ก ํน์ฑ์ด ๋ณํ ๊ฒฝ์ฐ ์ฐ์ ์์ ์ํฅ์ ํตํด ์ค์ผ์ค๋ฌ๊ฐ ๋ณ๊ฒฝ๋ ํน์ฑ์ ์ ํฉํ ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ค.
4. ์๋ 3: ๋ ๋์ ์๊ฐ ์ธก์
์ค์ผ์ค๋ฌ๋ฅผ ์์ ์๊ฒ ์ ๋ฆฌํ๊ฒ ๋์์ํค๋ ๊ฒ์ ์ด๋ป๊ฒ ๋ง์ ์ ์๋๊ฐ? ๊ท์น 4๋ฅผ ์ฌ์ ์ํ์.
๊ท์น 4: ์ฃผ์ด์ง ๋จ๊ณ์์ ์๊ฐ ํ ๋น๋์ ์์งํ๋ฉด (CPU๋ฅผ ๋ช ๋ฒ ์๋ํ์๋์ง ์๊ด์์ด), ์ฐ์ ์์๋ ๋ฎ์์ง๋ค (์ฆ, ์๋ ๋จ๊ณ์ ํ๋ก ์ด๋ํ๋ค).

๋ฐฉ์ง์ฑ ์ด ๋ง๋ จ๋๋ฉด ํ๋ก์ธ์ค์ ์ ์ถ๋ ฅ ํ๋๊ณผ ๋ฌด๊ดํ๊ฒ ์๋ ๋จ๊ณ ํ๋ก ์ฒ์ฒํ ์ด๋ํ๊ฒ ๋์ด CPU๋ฅผ ์๊ธฐ ๋ชซ ์ด์์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
5. MLFQ ์กฐ์ ๊ณผ ๋ค๋ฅธ ์์ ๋ค
๋ช ๊ฐ์ ํ๊ฐ ์กด์ฌํด์ผ ํ๋๊ฐ? ํ๋น ํ์ ์ฌ๋ผ์ด์ค์ ํฌ๊ธฐ๋ ์ผ๋ง๋ก ํด์ผ ํ๋๊ฐ? ๊ธฐ์๋ฅผ ํผํ๊ณ ๋ณํ๋ ํ๋์ ๋ฐ์ํ๊ธฐ ์ํ์ฌ ์ผ๋ง๋ ์์ฃผ ์ฐ์ ์์๊ฐ ์ํฅ ์กฐ์ ๋์ด์ผ ํ๋๊ฐ?
ํ์ ์ฐ์ ์์์ ๋ฐ๋ผ ํ์ ์ฌ๋ผ์ด์ค์ ํฌ๊ธฐ๋ฅผ ๋ค๋ฅด๊ฒ ์ค์ ํ๋ค.

Solaris์ MLFQ ๊ตฌํ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ๊ฐ
- ํ์ ๊ฐ์๋ 60
- ๊ฐ ํ์ ํ์ ์ฌ๋ผ์ด์ค ํฌ๊ธฐ๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ํ๊ฐ 20ms ์์ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์ ํ๊ฐ ์๋ฐฑms ๊น์ง ์ฒ์ฒํ ์ฆ๊ฐ
- ์ฐ์ ์์ ์ํฅ ์กฐ์ ์ ์ฝ 1์ด ๋ง๋ค ์ผ์ด๋๋ค.
6. ์์ฝ
- ๊ท์น 1 : ์ฐ์ ์์ (A)> ์ฐ์ ์์ (B) ์ผ ๊ฒฝ์ฐ, A๊ฐ ์คํ, B๋ ์คํ๋์ง ์๋๋ค.
- ๊ท์น 2 : ์ฐ์ ์์ (A) = ์ฐ์ ์์ (B), A์ B๋ RR ๋ฐฉ์์ผ๋ก ์คํ๋๋ค.
- ๊ท์น 3 : ์์ ์ด ์์คํ ์ ๋ค์ด๊ฐ๋ฉด ์ต์์ ํ์ ๋ฐฐ์น๋๋ค.
- ๊ท์น 4 : ์์ ์ด ์ง์ ๋ ๋จ๊ณ์์ ๋ฐฐ์ ๋ฐ์ ์๊ฐ์ ์์งํ๋ฉด (CPU๋ฅผ ํฌ๊ธฐํ ํ์์ ์๊ด์์ด), ์์ ์ ์ฐ์ ์์๋ ๊ฐ์ํ๋ค (์ฆ, ํ ๋จ๊ณ ์๋ ํ๋ก ์ด๋ํ๋ค).
- ๊ท์น 5 : ์ผ์ ์ฃผ๊ธฐ S๊ฐ ์ง๋ ํ, ์์คํ ์ ๋ชจ๋ ์์์ ์ต์์ ํ๋ก ์ด๋์ํจ๋ค.
OSTEP ๊ต์ฌ ์ฐธ๊ณ