๐ฅ
Limited Direct Execution, CPU scheduling(RR, MLFQ) ๋ณธ๋ฌธ
Direct Execution
OS๊ฐ program์ ์์ํ ๋
โ process list์ process entry๋ฅผ ๋ง๋ค๊ณ
โก memory๋ฅผ ํ ๋นํ๊ณ
โข program code๋ฅผ memory์ loadํ๊ณ
โฃ ์ง์ ์ ์ ์ฐพ์ ๊ทธ ์ง์ ์ผ๋ก ๋ถ๊ธฐํ๋ค.
program์ cpu์์์ ์ง์ ์คํ์ํค๋ฏ๋ก ๋น ๋ฅด๊ฒ ์คํ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ฒ์ ํ ํ๋ก๊ทธ๋จ๋ง ์คํํ ์ ์๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค.
ํ๋ฒ์ ํ ํ๋ก๊ทธ๋จ๋ง ๋๋ฆด ์ ์๋ค๋ ๊ฒ์, ์ผ๋จ ํ๋ก๊ทธ๋จ์ด ์์๋๋ฉด, cpu๋ ํ์ฌ ํ๋ก๊ทธ๋จ์ด cpu๋ฅผ ์๋ฐ์ ์ผ๋ก ๋ฐํํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค.
์ด ๊ฒฝ์ฐ์ time sharing์ด ํ๋ค์ด์ง๊ณ , Limited direct execution์ด ๋ฑ์ฅํ๋ค.
Limited Direct Execution
1. ์ ํ๋ ์ฐ์ฐ
ํ๋ก์ธ์ค๊ฐ ํน์ํ ์ข ๋ฅ์ ์ฐ์ฐ์ ์ํํ๊ธธ ์ํ ๋, application์ execution mode๋ฅผ ๋ ๊ฐ์ง ์ ๊ณตํ๋ค.
kernel mode : I/O์ ๊ฐ์ privileged operation์ ์ํํ ์ ์๋ค. machine์ full resource์ ์ ๊ทผ ๊ฐ๋ฅ
user mode : privileged operation์ ์ํํ ์ ์๋ค. user process๋ ๋ณดํต ์ด mode์์ ๋์ํ๋ค.
user process๊ฐ privileged operation์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ ๊ฒ์ด๋ค. ์ด ๊ฒฝ์ฐ๋ฅผ ์ํด ๋๊ฐ์ง ๋ช ๋ น์ด๊ฐ ์๋ค.
trap๊ณผ return-from-trap์ด๋ค.
system call์ ์คํํ๊ธฐ ์ํด์ trap ๋ช ๋ น์ด ์ํ
trap: kernel ์์ผ๋ก ๋ถ๊ธฐํ๋ ๋์์ ํน๊ถ ์์ค์ kernel mode๋ก ์ํฅ์กฐ์
ํธ์ถํ process์ register๋ฅผ kernel stack์ ์ ์ฅํ๋ค. return-from-trap์ด ๋ถ๋ฆฌ๋ฉด k-stack(kernel stack)์์ popํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋์๊ฐ๋ค.
return-from-trap: ํน๊ถ์์ค์ user mode๋ก ํ์์กฐ์ ํ๋ฉด์ ํธ์ถํ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ผ๋ก return
trap์ด ๋ฐ์ํ๋ฉด ์ด๋ค code๋ฅผ ์คํํ ์ง๊ฐ ์ค์ํ๋ค. ์ฃผ์๋ฅผ ๋ช ์ํด์ค๋ฒ๋ฆฌ๋ฉด kernel ๋ด๋ถ์ ์ํ๋ ์ง์ ์ ์ ๊ทผํ ์๊ฐ ์๊ธฐ ๋๋ฌธ!(์ํ...)
๊ทธ๋์ kernel์ ๋ถํ ์์ trap table์ ๋ง๋ ๋ค. OS๋ ํน์ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ๋์จ์ด์๊ฒ trap handler์ ์์น๋ฅผ ์๋ ค์ค๋ค.
2. ํ๋ก์ธ์ค ๊ฐ ์ ํ
OS๋ cpu๋ฅผ ๋ค์ ํ๋ํ์ฌ process๋ฅผ ์ ํํด์ผ ํ๋ค. ์ด์์ฒด์ ๊ฐ cpu๋ฅผ ํ๋ํ๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.
Cooperative
OS๊ฐ user application์ด cpu control์ ์ค ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๋ ๊ฒ. ์ฆ application ์์ฒด์์ system call์ ํธ์ถํด cpu๋ฅผ ๋ฐํํด ์ค๋ค.
* ์ด ๋ฐฉ๋ฒ์ ์ ์์ , ํน์ ๋ฒ๊ทธ๊ฐ ์์ด process๊ฐ ๋ฌดํ ๋ฃจํ์ ๋น ์ ธ system call์ ํธ์ถํ์ง ์๋ ๊ฒฝ์ฐ์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
Non-Cooperative
์ด๋ฆ์์ ์ ์ ์๋ค์ํผ, cooperative ๋ฐฉ๋ฒ๊ณผ ์ ๋ฐ๋์ด๋ค. OS๋ timer interrupt๋ฅผ ์ด์ฉํด cpu ์ ์ด๊ถ์ ๋ค์ ํ๋ํ๋ค. ์ฆ hardware support๊ฐ ํ์ํ ๋ฐฉ๋ฒ.
interrupt๊ฐ ๋ฐ์ํ๋ฉด ์คํ๋๋ process๋ ์ค๋จ๋๊ณ interrupt handler๊ฐ ๋ฐ์ํ๋ค.
timer interrupt๊ฐ ์ผ์ด๋๋ฉด
โ ์คํ๋๋ process์ register๋ฅผ ๊ทธ process์ k-stack์ ์ ์ฅํ๋ค.
โก kernel mode๋ก ์ด๋
โข trap handler๋ก jump
CPU Scheduling
์ฃผ์ด์ง runnable processes์ ์งํฉ ์ค์์ ๋ค์์ ์ด๋ค process๋ฅผ ๋์์์ผ์ผ ํ๋์ง ๊ฒฐ์ ํ๋ค.
์ค์ผ์ฅด๋ง ์ ๊ทผ ๋ฐฉ๋ฒ์๋ non-preemptive scheduling, preemptive scheduling ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. Non-preemptive scheduling
running process๊ฐ ์๋ฐ์ ์ผ๋ก yieldํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค. ์ด ๊ฒฝ์ฐ process๊ฐ OS์ cooperative ํด์ผ ํ๋ค.
๋ง ๊ทธ๋๋ก OS๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ง์๋๋ก ๋ฉ์ถ๊ฒ ํ ์ ์๋ค.
2. Preemptive scheduling (ํ๋ ์ค์ผ์ฅด๋ฌ)
scheduler๊ฐ process๋ฅผ interruptํ๊ณ context switching์ ๊ฐ์ํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ฌธ์ ์ ์ด ์๋ค.
๋ง์ฝ ๊ณต์ ๋ฐ์ดํฐ์ update์ค์ process๊ฐ preempt๋๋ค๋ฉด? ๊ณต์ ๋ฐ์ดํฐ๊ฐ ์์ค๋๋ค๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ๋ชจ๋ process์ ๋์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
๋๋ ๋ง์ฝ system call์ด preempt๋๋ค๋ฉด?
(๋ค์ ์๊ฐ๋๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐํ ์ ์์)
์ค์ผ์ฅด๋ง์๋ ์ฌ๋ฌ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค. ์ฌ๊ธฐ์์ ์๊ณ ๋ฆฌ์ฆ๋ค์ ํ๋ฆฌํฐ๋ฅผ ์ธก์ ํ ์์ ์๋์ ๊ฐ๋ค.
scheduling ๋๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆฐ ์๊ฐ
โ FIFO
First-In, First-Out. ๋ง ๊ทธ๋๋ก ์จ ์์๋๋ก scheduling์ด ๋๋ค.
๋น์ฐํ non-preemptiveํ ์ค์ผ์ฅด๋ง ๋ฐฉ๋ฒ์ด๋ค.
job์ด ๋๋ฑํ๊ฒ ๋ค๋ค์ง๋ฏ๋ก starvation ๋ฌธ์ ๋ ๋ฐ์ํ์ง ์์ง๋ง convoy effect๋ ๋ฐ์ํ ์ ์๋ค.
starvation์ ๊ตถ์ฃผ๋ฆผ์ด๋ ๋ป์ด๋ค. ์ฌ๊ธฐ์๋ ํ ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ๋ชปํ๊ณ ๊ณ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์ ์๋ฏธํ๋ค.
convoy effect๊ฐ ๋ฐ์ํ๋ฉด, ํ์ฌ ์ฒ๋ฆฌ์ค์ธ ์ผ๋ณด๋ค ๋ ์งง์ ์ผ์ด ๋์ฐฉํด๋ ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ์ด๋ ์งง์ ์๊ฐ์ job์๊ฒ ๊ณต์ ํ์ง ๋ชปํ scheduling ๋ฐฉ๋ฒ์ด๋ค.
โ SJF
Shortest Job First. ๋ง ๊ทธ๋๋ก ํ์ฌ ๋์ฐฉํ process๋ค ์ค ๊ฐ์ฅ ์งง์ ์ผ๋ถํฐ ์ํํ๋ ์ค์ผ์ฅด๋ง ๊ธฐ๋ฒ์ด๋ค.
๋ชจ๋ ์์ ์ด ๋์์ ๋์ฐฉํ๋ค๋ฉด, optimal turnaround time์์ ์ฆ๋ช ํ ์ ์๋ค.
non-preemptiveํ ์ค์ผ์ฅด๋ง ๋ฐฉ๋ฒ
๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์๋ ๋ฌธ์ ์ ์ด ์๋ค.
์์ ๋ค์ด ๋์์ ๋์ฐฉํ์ง ์๊ณ ์๋ฌด๋๋ ๋์ฐฉํ๋ค๋ฉด optimalํ ๋ฐฉ๋ฒ์ด ์๋๋ค.
๋ ์ ์ฌ์ ์ผ๋ก starvation์ด ๋ฐ์ํ ์ ์๋ค. ๋ง์ฝ ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋๋ฐ, ์ด ํ์ ๊ณ์ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ค๋ฉด ์ด ๊ธด ํ๋ก์ธ์ค๋ ์์ํ ์คํ๋์ง ์์ ์๋ ์๋ค...
โ STCF
Shortest Time to Completion First
์ด๋ SJF์ preemptive ๋ฒ์ ์ด๋ค. running job์ remaining time๊ณผ new arrival job์ run time์ ๋น๊ตํด new job์ด ๋ ์งง์ผ๋ฉด running job์ preemptํ๋ค.
โ RR
Round-Robin
์์ ์์๋ค ์ค turnaround๋ณด๋ค๋ response time์ ํฌ์ปค์ค๋ฅผ ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
preemptiveํ ์ค์ผ์ฅด๋ง ๋ฐฉ๋ฒ
time slice ๋์ ์คํํ ํ ์คํ queue์ ๋ค์ ์์ ์ผ๋ก ์ ํ.
์ด ๋ time slice๊ฐ ๋๋ฌด ์งง๋ค๋ฉด context switching cost๊ฐ ์ ์ฒด ์ฑ๋ฅ์ด ํฐ ์ํฅ์ ๋ผ์ง๋ค. ๋๋ฌด ์์ฃผ process๊ฐ ๋ฐ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋๋ก ๋ ๋๋ฌด ๊ธธ๋ค๋ฉด ๋ responsiveํ๊ฒ ๋๋ค.
์ด๋ค ํฌ๊ธฐ์ slice๊ฐ ์ข๋๋๋ ์ ํํ optimalํ ๊ฐ์ด ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๋ฅ heuristicํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ํฌ๊ธฐ๋ก ์ ํ๋ค. ๋ณดํต 10~100ms๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
์ด ๋ฐฉ๋ฒ์ starvation์ด ์์ผ๋ฉฐ response time์ ํฅ์์ํค๊ณ , ๋ฐ๋ผ์ time-sharing์ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ ๋ชจ๋ ์์ ์ด CPU'๋ง' ์ฌ์ฉํ๋ ๊ฒ์ ์๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ถ๋ ฅ ์ฐ์ฐ๋ ๊ณ ๋ คํด ์ฃผ์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด process A๋ 10ms๋์ ์คํ ํ ์ ์ถ๋ ฅ์ ์ํํ๊ณ , process B๋ I/O ์ฐ์ฐ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. ๊ฐ ์์ ์ 50ms์ CPU time์ ํ์๋ก ํ๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ ์ A๋ฅผ ๋จผ์ ๋๋ธ ๋ค์ B๋ฅผ ๋๋ด๋ ๊ฒ์ด๋ค.
ํ ๋์ ๋ณด๊ธฐ์๋ ๋งค์ฐ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค. A์ B๋ฅผ ๋ชจ๋ ๋๋ด๋ ๋ฐ 140ms๊ฐ ์์๋๋ค.
์ด์ STCF๋ฅผ ์ด์ฉํด ์กฐ๊ธ ๋ ํจ์จ์ ์ผ๋ก ๋ฐ๊ฟ๋ณด์. A๊ฐ 5๊ฐ์ 10ms์ ์์ ์์ ์ผ๋ก ๋ถํ ๋๊ณ , B๋ ํ๋์ 50ms ๋ฉ์ด๋ฆฌ๋ผ๋ ์ฌ์ค์ ํ์ฉํด๋ณด์.
A์ ๊ฐ 10ms๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ค๋ค๋ณด๋ฉด ์ด๋จ๊น? ๊ทธ๋ฌ๋๊น ์์คํ ์ด ์์๋ ๋ 10ms ์์ ๋ค๊ณผ 50ms ์์ ์ ์ค์ผ์คํ๋ ๊ฒ์ด๋ค. STCF์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์งง์ ์์ ์ ์ ํํ๋ฏ๋ก ์ด ๊ฒฝ์ฐ์๋ A๊ฐ ๋๋ค. 10ms A๊ฐ ์๋ฃ๋๋ฉด B๋ง ๋จ๊ฒ๋๋ฏ๋ก B๊ฐ ์คํ๋๋ค. ๊ทธ ํ์ A์ ์ ์ถ๋ ฅ์ด ์๋ฃ๋๋ค๋ฉด ์คํ๋๊ณ ์๋ B๋ฅผ preemptํด์ 10ms A๋ฅผ ๋ค์ ์คํํ๋ค. ์ด ๊ณผ์ ์ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์๊ฐ์ ์ ๋ง ๋ง์ด ์ ์ฝํ ์ ์๋ค. ์ด๋ ๊ฒ ํ ํ๋ก์ธ์ค์ ์ ์ถ๋ ฅ์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ CPU๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ overlap(์ค์ฒฉ)์ด๋ผ๊ณ ํ๋ค. overlap์ด ์๋ค๋ฉด cpu์ ํ์ฉ๋ฅ ์ ๋ ์ฌ๋ผ๊ฐ๋ค.
์ค์ผ์ค๋ฌ์ ์ต์ข ๋ชฉํ๋ ๋ฌด์์ผ๊น?
turnaround time์ optimizeํ๊ณ
interactive job์ ๋ํ response time์ ์ต์ํํ๊ณ
workload์ ๋ํ priori knowledge ์์ด ์ค์ผ์ค๋ง ํ ์ ์๋ ๊ฒ์ด๋ค.
์๋์ MLFQ๊ฐ ํด๊ฒฐํ ์ ์์ ๊ฒ์ด๋ค.
โ MLFQ
Multi-level Feedback Queue
๋ง ๊ทธ๋๋ก process๊ฐ level์ด ์กด์ฌํด ๋์ level, ์ฆ ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉด ๊ทธ process๋ฅผ ์คํํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค. (Rule 1)
์ด ์ฐ์ ์์๋ process์ behavior์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.
Rule 1. If Priority(A) > Priority(B), A runs
๊ฐ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ค๋ฉด ์ด๋จ๊น? ์ด๋๋ RR scheduling์ ์ฌ์ฉํ๋ค. (Rule 2)
Rule 2. If Priority(A) = Priority(B), scheduling with RR
ํ๋ก์ธ์ค๊ฐ ์์ ๊ฐ์ priority๋ฅผ ๊ฐ์ง ์๋ ์๋ค. ๊ทธ๋ด๊ฒฝ์ฐ starvation problem์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋์ priority์ ์์ ๋ง ๊ณ์ ๋ค์ด์จ๋ค๋ฉด, ์๋์ ์ผ๋ก ๋ฎ์ priority๋ฅผ ๊ฐ์ง job์ ์์ํ ์ํ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค. ๊ทธ๋ ๊ธฐ๋๋ฌธ์ MLFQ๋ priority๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๊ฟ์ค์ผํ๋ค.
Priority๋ฅผ ๋ฐ๊ฟ์ฃผ๊ธฐ ์ํด Rule 3๊ณผ Rule 4๊ฐ ์๋ค.
Rule 3. ์์ ์ด system์ ์ง์ ํ๋ฉด, ๊ฐ์ฅ ๋์ priority queue์ ๋์ธ๋ค.
Rule 4a. ์ฃผ์ด์ง time slice๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ํ ๋จ๊ณ ๋ฎ์ queue๋ก ์ด๋ํ๋ค.
Rule 4b. time slice๋ฅผ ๋ค ์ฐ๊ธฐ ์ ์ cpu๋ฅผ ํฌ๊ธฐํ๋ฉด ๊ฐ์ priority level์ ์ ์งํ๋ค
์ด Rule์ ๊ฒฝ์ฐ ๋ฌธ์ ์ ์ด ์๊ธด๋ค.
1. Starvation Problem
์ค๋ ์คํ๋๋ job์ ๋๋ฌด ๋ง์ interactive job ๋๋ฌธ์ starve(๋ฆฌ์์ค๋ฅผ ์ค๋๊ธฐ๊ฐ ํ ๋น๋ฐ์ง ๋ชปํจ)ํ ์ ์๋ค.
๋ณดํต workload๋ interactive job๊ณผ cpu-intensive job์ด ํจ๊ป ์๋ค. interactive job์ ์คํ ์๊ฐ์ด ์งง๊ณ , ์งง์ response time์ ์๊ตฌํ๋ค. ๋ฐ๋๋ก cpu-intensive job์ ๋ง์ cpu time ์ ์๊ตฌํ๊ณ response time์ ์๋์ ์ผ๋ก ๋ ์ค์ํ๋ค.
2. ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ ์ ํ๋ก๊ทธ๋จ์ ์ ๋ฆฌํ๊ฒ ํ๋ก๊ทธ๋จ์ ์์ฑํ ์ ์๋ค.
Rule 4a์ 4b๊ฐ ์ด ๋ฌธ์ ์ ๊ธฐ์ฌํ๋ค. ๋ง์ฝ time slice ์ง์ ์ micro sleep system call์ ํธ์ถํ๊ฒ ๋๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด OS๋ ํด๋น application์ top level queue์ ๋ฐฐ์นํ๊ฒ ๋๋ค.
3. ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ behavior๊ฐ ๋ณํ ์ ์๋ค
Starvation์ ํผํ๊ธฐ ์ํด ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ Rule์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ ์์ ์ ์ฐ์ ์์๋ฅผ ์ํฅ ์กฐ์ (Priority Boost) ํ๋ ๊ฒ์ด๋ค.
Rule 5. ์ผ์ time period๊ฐ ์ง๋๋ฉด ์์คํ ์ ๋ชจ๋ ์์ ์ topmost queue๋ก ์ด๋์ํจ๋ค.
Rule 5๋ฅผ ํตํด 1๋ฒ์ starvation problem์ ํด๊ฒฐํ ์ ์๋ค.
์ `์ผ์ time period`๋ ์ด๋ป๊ฒ ์ ํ๋ ๊ฒ์ผ๊น? John Ousterhout๋ ์ด๋ฐ ๊ฐ์ voo-doo constants(๋ถ๋ ์์)๋ผ๊ณ ๋ถ๋ ๋๋ฐ, ๋๋ฌด ํฌ๋ฉด starvation์ด ์์ ์ ์๊ณ , ๋๋ฌด ์์ผ๋ฉด interactive job์ด ์ ์ ํ ์์ cpu ์๊ฐ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๋ถ๋์์๋ ๊ฐ๋ฅํ ํ ํผํ๋ ๊ฒ์ด ์ข๋ค.
์์ ๋ฌธ์ ์ 2๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์๋ Rule 4๋ฅผ ๊ณ ์ณ์ผ ํ๋ค. MLFQ์ ๊ฐ ๋จ๊ณ์์ ์ด CPU ์ฌ์ฉ ์๊ฐ์ ์ธก์ ํ๋ค๋ ์์ด๋์ด๋ก Rule 4a, 4b๋ ์๋์ ๊ฐ์ด ์์ ๋๋ค.
Rule 4. ์ฃผ์ด์ง ๋จ๊ณ์์ time slice๋ฅผ ์์งํ๋ฉด(CPU๋ฅผ ๋ช ๋ฒ ์๋ํ๋์ง๋ ์ ๊ฒฝ์ฐ์ง ์์), ์ฐ์ ์์๋ ๋ฎ์์ง๋ค (ํ ๋จ๊ณ ์๋ queue๋ก ์ด๋).
์ ๋ฆฌํด๋ณด์๋ฉด MLFQ๋
- Preemptive priority scheduling ์ด๊ณ ,
- Time slice์ ๊ธฐ๋ฐํ time-shared ์ด๊ณ ,
- process์ priority๋ค์ด ๋ค์ด๋๋ฏนํ๊ฒ ๋ฐ๋๋ฉฐ,
- Starvation Problem์ด ๋ฐ์ํ์ง ์๋๋ค.
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Virtual memory (fixed partition, variable partition, segmentation) (0) | 2019.01.06 |
---|---|
Process Abstraction (0) | 2019.01.03 |