๐ OS - Process Management 2 ์์ ์ด์ด์ง๋ ๋ด์ฉ์ ๋๋ค.
์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ ์์ ๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค. CPU์์ instruction์ ์คํํ๋ ๋จ๊ณ๋ฅผ CPU burst
๋ผ๊ณ ํ๋ค. I/O ์์
์ด ์ค๊ฐ์ ๋ง์ด ๋ผ๊ฒ๋๋ฉด CPU burst๊ฐ ์งง์์ง๊ณ , ๊ทธ์ ๋ฐ๋๋ก CPU burst๊ฐ ๊ธธ์ด์ง๋ ์๊ฐ๋ ์กด์ฌํ๋ค.
์ด๋ ๋ฏ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ์คํ์ CPU burst๊ฐ ๊ธธ์๋ ์๊ณ , ์งง์์๋ ์๊ฒ ๋ค์ํ๊ฒ ๋ํ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๋ค์ํ ๊ฒ๋ค์ ํต์ ํ๊ธฐ ์ํด ์ค์ผ์ค๋ง
์ด ํ์ํ๋ค.
์ฌ๊ธฐ์ CPU ์ค์ผ์ค๋ง์ ํ์ฌ ready queue์ ๋ค์ด์ ์๋ ํ๋ก์ธ์ค์ค์ ์ด๋ค ํ๋ก์ธ์ค์ CPU๋ฅผ ์ค ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ
์ด๋ค.
CPU ์ค์ผ์ค๋ง์ ๋๊ฐ์ง ์ฃผ์ํ ์ด์๊ฐ ์๋ค.
CPU Scheduling์๋ ํฌ๊ฒ ๋ ์ข
๋ฅ๊ฐ ์๋ค. ๋น์ ์ ํ
๊ณผ ์ ์ ํ
์ด๋ค.
I/O ์์
์ด ๋ค์ด์ค๊ธฐ ์ ๊น์ง CPU๋ฅผ ๋ณด์ฅ
ํด์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. timer๋ฅผ ๋๊ณ CPU๋ฅผ ๊ฐ์ ๋ก ๋นผ์์ ์ ์๊ฒ
ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ผ์ ํ ๊ธฐ์ค์ ๋๊ณ CPU Scheduling์ ์ ํด์ผ ํ๋๋ฐ ์ด๊ฒ์ Scheduling criteria(์ฑ๋ฅ ์ฒ๋)
๋ผ๊ณ ํ๋ค.
CPU utilization(์ด์ฉ๋ฅ )
: ์ ์ฒด ์๊ฐ ์ค์์ CPU๊ฐ ์ฌ์ง ์๊ณ ์ผํ ๋น์จThroughout(์ฒ๋ฆฌ๋)
: ์ฃผ์ด์ง ์๊ฐ๋์ ๋ช ๊ฐ์ ์์
์ ์ฒ๋ฆฌํ๋๋ Turnaround time(์์์๊ฐ)
: CPU๋ฅผ ์ฐ๋ฌ ๋ค์ด์์ ๋ค ์ฐ๊ณ ๋๊ฐ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ Waiting time(๋๊ธฐ์๊ฐ)
: CPU๋ฅผ ๊ธฐ๋ค๋ฆฐ ์๊ฐ Response time(์๋ต์๊ฐ)
: ready queue์ ๋ค์ด์ค๊ณ ๋ ํ ์ฒ์์ผ๋ก CPU๋ฅผ ์ป๊ธฐ ์ ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ ์์ ๋๊ฐ์ง๋ ์์คํ ์ ์ฅ์์ ์ฑ๋ฅ ์ฒ๋์ด๊ณ , ๋๋จธ์ง ์ธ๊ฐ๋ ํ๋ก๊ทธ๋จ ์ ์ฅ์์์ ์ฑ๋ฅ ์ฒ๋์ด๋ค. ์์คํ ์ ์ฅ์์์ ์ฑ๋ฅ ์ฒ๋๋ ์์คํ ์ ์ฅ์์ CPU ํ๋๋ฅผ ๊ฐ์ง๊ณ ์ต๋ํ ๋ง์ ์ผ์ ์ฒ๋ฆฌ์ํค๋ฉด ์ข์๊ฑฐ๊ณ , ํ๋ก๊ทธ๋จ ์ ์ฅ์์์ ์ฑ๋ฅ ์ฒ๋๋ ๋ด๊ฐ CPU๋ฅผ ๋นจ๋ฆฌ ์ป์ด์ ๋นจ๋ฆฌ ๋๋ด๋ฉด ์ข์ ๊ฒ์ด๋ค.
์์์ ๋๊ธฐ์๊ฐ๊ณผ ์๋ต์๊ฐ์ ์ฐจ์ด๋ ์ ์ ํ ์ค์ผ์ค๋ง์์ ํ๋ฒ CPU๋ฅผ ์ป์๋ค๊ณ ํด์ ๋ฌดํ์ CPU๋ฅผ ์ฐ๋ ๊ฒ์ด ์๋๋ค. ์ด๋ฐ ์ํฉ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ์ ๋ถ ํฉ์น ์๊ฐ์ด ๋๊ธฐ์๊ฐ์ด๊ณ , ์๋ต์๊ฐ์ ์ต์ด์ CPU๋ฅผ ์ป๊ฒ ๋ ์๊ฐ์ ๋งํ๋ค.
๋ ์ฌ๊ธฐ์ ์ฐฉ๊ฐํ๋ฉด ์๋๋๊ฒ ์์์ ๋งํ ์์๋ค์ ๋งค CPU burst๋ง๋ค ์ธก์ ํ๋ ์์์ด๋ค. ์ ์์ ์ผ๊ณ ๋๋๊น์ง์ ์๊ธฐ๊ฐ ์๋๋ค.
์ด์ ์ค์ผ์ค๋ง์ ์ข ๋ฅ๋ง๋ค ์์๋ณผ ์ฐจ๋ก์ด๋ค.
๊ฐ์ฅ ๋จผ์ ์์ฒญํ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋น
ํด์ฃผ๋ ๋ฐฉ์ ๋น์ ์ ํ ์ค์ผ์ค๋ง
convey effect
: ๊ธด ํ๋ก์ธ์ค ํ๋๋๋ฌธ์ ์งง์ ํ๋ก์ธ์ค๋ค์ด ์ค๋ ๊ธฐ๋ค๋ ค์ผ ํ๋ ํ์ ๋น์ ์ ํ๊ณผ ์ ์ ํ์ด ๋ฐ๋ก ์กด์ฌ
SRTF(Shortest Remaining Time First)
๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ์ต์ํ์ ํ๊ท ๋๊ธฐ ์๊ฐ
์ ๋ณด์ฅํ๋ค. (์ ์ ํ์์) Starvation
: ๋ง์ฝ CPU์ฌ์ฉ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ด๋ฉด ์์ CPU ์ฌ์ฉ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ค์ ๊ธฐ๋ค๋ฆฌ๋ค๊ฐ ์์ํ ์คํ๋์ง ์์ ์๋ ์๋ค.(์ค๊ฐ์ค๊ฐ์ CPU ์ฌ์ฉ์๊ฐ์ด ์งง์ ํ๋ก๊ทธ๋จ์ด ๊ณ์ ๋ค์ด์ค๋ฉด)CPU burst time์ ์์ธกํ๋ ๊ฒ์ด ์ด๋ ต๋ค.
(๊ณผ๊ฑฐ CPU์ฌ์ฉ๋์ผ๋ก ์ด๋์ ๋ ์์ธก์ ๊ฐ๋ฅํ์ง๋ง ์ ํํ์ง๋ ์์ / Exponential Averaging ์์) ์ฐ์ ์์ ๋๋ฒ
๊ฐ ์๋ค. ์ ์ ํ๊ณผ ๋น์ ์ ํ์ด ๋๋๋ค.
Starvation
์ด ๋ฐ์ํ ์ ์๋ค.(์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๊ฐ ์์ํ CPU๋ฅผ ์ป์ง ๋ชปํ ๊ฐ๋ฅ์ฑ) Starvation์ ํด๊ฒฐ
ํ๊ธฐ ์ํด Aging
์ ์ฌ์ฉํ ์ ์๋ค. ์ฌ๊ธฐ์ Aging
์ด๋ ์๊ฐ์ด ์ง๋ ์๋ก ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ๋ ๊ฒ์ด๋ค. ๋์ผํ CPU ํ ๋น ์๊ฐ
์ ๋ถ์ฌํด์ ํด๋น ์๊ฐ ๋์๋ง CPU๋ฅผ ์ด์ฉํ๊ฒ ํ๋ค. q large => FCFS
q small => context switch์ ์ค๋ฒํค๋๊ฐ ์ปค์ง๋ค.