CPU-I/O Burst Cycle
read from file์ ํ๋ฉด IO๋ฅผ ์ฌ์ฉํ๋ค. ํ๋ก์ธ์ค๊ฐ ์คํ์ ํ๋ค๋ณด๋ฉด ์ด๋จ ๋๋ IO๋ฅผ ์ฐ๊ณ ์ด๋จ ๋๋ CPU๋ฅผ ์ด๋ค. IO๋ฅผ ์ฌ์ฉํ๋ ๊ตฌ๊ฐ์ IO Burst๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ต๋๋ก ๋ฐฐ์น๊ฐ ๋๊ฒ ๋๋ค. Process๊ฐ ๋ง๋ค์ด์ง๋ฉด Ready Queue๋ก ๋ค์ด๊ฐ๋ค. ๊ฐ์ ์ข ๋ฃ๋ฅผ ์ํค๋ฉด ๋ง์ง๋ง์ด IO์ผ์๋ ์์ง๋ง ์ ์์ ์ธ ๊ฒฝ์ฐ ์ฒ์๊ณผ ๋ง์ง๋ง์ CPU์ด๋ค.
Historgram of CPU burst Duration
CPU burst์ ๋๋ถ๋ถ์ ์งง๋ค. ์ ์ฒด์ ์ผ๋ก ๋ณด๋ฉด ์งง์ ๊ฒ์ด ๋ง์ง๋ง ๊ฐ๋์ ๊ธด burst๊ฐ ๋์จ๋ค. ์งง์ ๊ฒฝ์ฐ๋ IO Bound์์ ์จ ๊ฑฐ๊ณ ๊ธด ๋ถ๋ถ์ CPU Bound์์ ์จ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
CPU Scheduler
short term scheduler๋ก ๋ถ๋ฆฐ๋ค. dispatch๋ CPU๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค. Context Switching์ Dispatcher๊ฐ ํ๋ค. Ready queue๋ PCB์ Linked List๋ก ๊ตฌํํ๋ค๊ณ ํ์๋ค.
Preemptive Scheduling
MultiProgramming๊ณผ Multitasking์ Scheduling์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ค๋ฅธ ๊ฒ์ด ์ฃผ๋ ์ฐจ์ด์ ์ด๋ค. nonpreemptivev scheduling์ ๊ฒฝ์ฐ๋ Multiprogramming์ ํด๋นํ๋ค. ์ง๊ธ ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ๋์ ์ ์๋ ๊ฒ์ด Preemptive scheduling์ด๋ค.
When Scheduling Occurs?
running -> switching
running -> ready
waiting -> ready
process terminated
4๊ฐ์ง์ ๊ฒฝ์ฐ Scheduling์ด ๊ด์ฌ๋ฅผ ํ๋ค. 1๋ฒ๊ณผ 4๋ฒ์ ํ์์ด๋ค. ์ํ๋ฉด CPU๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
2๋ฒ๊ณผ 3๋ฒ์ ๊ฒฝ์ฐ ํ์๋ ์๋๋ค. ๊น๋ฒ์๊ฐ ์ค๋ ๋ง๋ ๋ ธ๋๋ฅผ ๋ถ๋ฅด๋ ๊ฒฝ์ฐ.
Preemtive์ NonPreemtive๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค.
Preemptive Scheduling
race condition์ bug์ ์ผ์ข ์ด๊ณ ๋ง์์ผ ํ๋ค.
Preemptive of OS kernel
preemptive scheduling์ usermode์์ preemtive kernel mode๋ kernelmode์์ ๋๋๋ ์๋๋๋๋ฅผ ๋ค๋ฃฌ๋ค.(**********). ์ผ๋จ System call์ ๋ค์ด์ค๋ฉด ๋๋๊ธฐ ์ ๊น์ง Switching๋์ง ์๋๋ค๋ ๊ฒ์ด Windows nonpreemptive kernel์ด๋ค.
non์ ์ฅ์
: performance๊ฐ ์ข๋ค.
preemp์ ์ฅ์
: real time application์ ์ข๋ค. ์ผ์ ์๊ฐ ๋ด์ ๋ฌด์กฐ๊ฑด ๋๋์ผ ํ๋ ๊ฒ. Multiprogramming์ด performance๊ฐ ๋ ์ข์ง๋ง Multitasking์ ์ฌ์ฉํ๋ ์ด์ ์ ๋์ผ
Scheduling Criteria
CPU utilization - CPU๊ฐ ๋๋ฉด ์๋๋ค. ์ต๋ํ ํ์ฉํ ์ ์๋ ์ค์ผ์ค๋ฌ๊ฐ ์ข์ ๊ฒ์ด๋ผ๋ ๊ฒ.
Throughput - ๋จ์ ์๊ฐ์ด ๋๋ ๋ ์์ฑ๋๋ ํ๋ก์ธ์ค์ ๊ฐ์.
Turnaroundtime -
Waiting time - ready queue์์๋ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ์ ์ ์๋ก ์ข๋ค. ready queue์์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ์๊ธฐํ๋ค.
Response time -
Scheduling Algorithm
First-Come First Served Scheduling
non-preemptive ํ scheduling์ ์๋ฏธํ๋ค. P1์ ๋จผ์ ์คํ์ํจ๋ค. ์ค๊ฐ์ ๋์ ์ ์๋ค.
Shortest Job first Scheduling
๊ฐ์ฅ ์งง์ ๊ฒ์ ๋จผ์ ์คํ์ํค๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ทธ๋์ optimalํ๋ค๊ณ ํํ์ ํ๋ค. ์ด๋ณด๋ค ์งง๊ฒ ๊ตฌํํ ์ ์๋ค. ๊ณผ๊ฑฐ์ ์ด๋ป๊ฒ ๋์ํ๋์ง์ history๋ฅผ ๊ฐ์ง๊ณ ์์ธกํ ์ ์๋ค.
Shortest Job First Scheduling
ํ์ฌ๊น์ง์ ์์ธก์น์ ์ธก์ ์น๋ฅผ ๊ฐ์ง๊ณ ๋ค์ ์๊ฐ์์์ ์์ธก์ง๋ฅผ ๊ณ์ฐํ๊ฒ ๋ค๋ผ๋ ๊ฒ์ด๋ค.
์ฒ์ ์์ธก์น๊ฐ 10์ ํด๋นํ๋ค. ํ์ฌ์ ๊ฐ์ 6์ ํด๋นํ๋ค. ๊ทธ๊ฒ๋ค์ ํ๊ท ๋ด๋ฉด ๋ค์ ๋ฒ ์์ธก์น๊ฐ 8์ด ๋๋ ๊ฒ์ด๋ค. ๊ฒ์์์ ์ค์ธก์ด๊ณ ํ๋์์ ์์ธก์ด๋ค. ํ๋์์ ๊ฐ์ง๊ณ Shortest ๋ฅผ ๊ตฌํํ ์ ์๋ค.
Shortest Job First Scheduling
๋ฐ๋ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฌ๋ฌ๊ฐ์ง์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. 7ms ์ดํ์ ๋๋๋๋ฐ ๋ค์ด์ค๋ ์์ ์ด ๊ทธ ์์ ์๋ค๋ฉด P2๊ฐ ๋ค์ด์ค๋ ์๊ฐ์ ์ค์ผ์ค๋ง์ ํ ์ง ๋ง์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค. P1์ ๊ฒฝ์ฐ Burst Time์ 5๋ก ์์ ํด์ผ ํ๋ค. P2์ ์ฐ์ ์์๊ฐ ๋๋ค, ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ P2๊ฐ 2ms์์ ๋๊ธฐ ์์ํ๋ ๊ฒ์ด๋ค. P2๊ฐ ๋๋ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์์ ๋๋ฅผ ๋ค์ ์๊ฐํด๋ด์ผ ํ๋ค. 4ms์ ๋์ฐฉํ ๊ฒ์ด๋ฉด 2ms ์ดํ๋ก๋ถํฐ 2ms ์ด๋ฐ๊ฐ ๋ฐ์ํ๋ค. 2์ด ํ์ P3๊ฐ ๋ค์ด์๊ณ . 7์ด 5, 4๊ฐ 2, 1์ด 0์ผ๋ก ๋ณํด์ผ ํ๋ค. ๋ค์ ์๊ฐํด๋ณผ ๊ฒ.,....