728x90
๋ฐ์ํ
๐ฅ๏ธ CPU Scheduling
์์คํ ์ CPU ์ฌ์ฉ ํจ์จ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ค์ค ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฉํฐํ์คํน ๊ธฐ์ ์ ์ฌ์ฉํ๋ ๊ฒ
Resources (CPUํฌํจ)๋ process๋ค ์ฌ์ด์์ ๊ณต์ ๋๋ค.
๐ฅ๏ธ CPU-IO Burst Cycle
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ CPU ์ฌ์ฉ(bursts)๊ณผ ์ ์ถ๋ ฅ(I/O) ๋๊ธฐ ์๊ฐ ์ฌ์ด๋ฅผ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ๋ฐ๋ณตํ๋ ํ์
Types of processes
- I/O bound process
- ์ ๋ ฅ(input)๊ณผ ์ถ๋ ฅ(output) ์์ ์ ๋ ๋ง์ ์๊ฐ์ ์๋นํ๋ ํ๋ก์ธ์ค
- CPU-bound process
- ๊ณ์ฐ์ด๋ ์ฒ๋ฆฌ ๊ณผ์ ์์ ๋๋ถ๋ถ์ ์๊ฐ์ ์๋นํ๋ ํ๋ก์ธ์ค
๐ฅ๏ธ CPU Scheduler
CPU Scheduler๋ ready queue์์ process๋ฅผ ์ ํํ๊ณ , CPU core๋ฅผ ํ ๋นํ๋ค.
When Scheduling Occurs?
- running์์ waiting state์ผ๋ก switch ๋ ๋ (Nonpreemtive)
- running์์ ready state์ผ๋ก switch ๋ ๋ (Preemtive)
- wating์์ ready๋ก switch ๋ ๋ (Preemtive)
- ์ข ๋ฃ๋ ๋ (Nonpreemtive)
Non-preemptive vs Preemptive
- Non-preemptive scheduling
- ์๋ฌด๋ interruptํ ์ ์๋ค.
- running → waiting / terminate ๋ ๋๋ง๋ค ๋ฐ์ํ๋ค.
- Running process๋ interrupted ๊ฐ ์๋๋ค.
- Preemptive scheduling
- 1,2,3,4์์ ๋ฐ์ํ ์ ์๋ค.
- processing์ด ์คํ ์ค์ผ ๋ scheduling์ด ๋ฐ์ํ๋ค.
- interrupt, process with higher priority
- HW์ ์ง์๊ณผ shared data handling์ด ํ์ํ๋ค.
- ์ ์ ํ ์ค์ผ์ค๋ง์ด ์ฌ๋ฌ ํ๋ก์ธ์ค ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ๊ฒฝ์ ์ํ(๋ ์ด์ค ์ปจ๋์ )๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
๐ฅ๏ธ Dispatcher
CPU๋ฅผ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์์ ๋ค์์ ์คํํ ํ๋ก์ธ์ค๋ก ๋๊ฒจ์ฃผ๋ ์ด์ ์ฒด์ ์ ๋ชจ๋์ด๋ค.
- Switching Context
- CPU๊ฐ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค(P0)์ ์ํ(์: ๋ ์ง์คํฐ ๊ฐ, ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๋ฑ)๋ฅผ ์ ์ฅํ๊ณ , ๋ค์ ํ๋ก์ธ์ค(P1)์ ์ด์ ์ํ๋ฅผ ๋ณต์ํฉ๋๋ค.
- ์ ์ ๋ชจ๋๋ก ์ ํ(Switching to User Mode)
- ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ์ ๋ชจ๋์์ ์คํ๋ ์ ์๋๋ก CPU์ ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ ์ ํ ์์น๋ก ์ ํ(Jumping to the Proper Location)
- ํ๋ก๊ทธ๋จ์ด ์ค๋จ๋ ๋ถ๋ถ๋ถํฐ ๊ณ์ ์คํ๋ ์ ์๋๋ก ํ๋ก๊ทธ๋จ ์นด์ดํฐ๋ฅผ ํด๋น ์์น๋ก ์ค์ ํฉ๋๋ค.
Dispatch Latency (์ง์ฐ)
ํ ํ๋ก์ธ์ค(P0)๋ฅผ ์ค๋จํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค(P1)๊ฐ ์คํ์ ์์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ฏธํ๋ค.
๐ฅ๏ธ Scheduling Criteria
- CPU Utilization(CPU ์ด์ฉ๋ฅ ) : CPU๊ฐ ์ผ๋ง๋ ๋ถ์ง๋ฐํ ์ผํ๋๊ฐ. / ๋์์๋ก ์ข์๊ฑฐ์ (๋จ์ : %)
- Throughput(์ฒ๋ฆฌ์จ) : ์๊ฐ๋น ๋ช๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๋๊ฐ. / ๋์์๋ก ์ข์๊ฑฐ์ (๋จ์ : job/sec)
- Turnaround time(๋ฐํ์๊ฐ) : ์์ ์ด ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ๋ก ๋๋ด๊ณ ๋์ฌ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ. / ์งง์์๋ก ์ข์๊ฑฐ์ (๋จ์ : sec)
- Waiting time(๋๊ธฐ์๊ฐ) : CPU์์ ์๋น์ค๋ฅผ ๋ฐ๊ธฐ ์ํด ReadyQueue์์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ. / ์งง์์๋ก ์ข์ง (๋จ์ : sec)
- Response time(์๋ต์๊ฐ) : ์ปดํจํฐ์ ๋ํํ๋ ์์คํ ์์ ์ค์ํจ. (์์๋ ๋ค ๋ง๊ธดํจ) / ์งง์์๋ก ์ข์ (๋จ์ : sec)
728x90
๋ฐ์ํ