๐ OS - System Structure & Program Execution 2 ์์ ์ด์ด์ง๋ ๋ด์ฉ์ ๋๋ค.
์คํ์ค์ธ ํ๋ก๊ทธ๋จ
์ ์ด์ผ๊ธฐํ๋ค"๋ฌธ๋งฅ(context)
ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ(context)
๋ผ๊ณ ํ๋ค๋ฉด ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์ํ์ธ์ง
๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ค. ์ฆ ํ์ฌ ์ํ๋ฅผ ๊ท๋ช
ํ๊ธฐ ์ํด ํ์ํ ๊ฒ๋ค์ด๋ค. ์ฌ๋์ผ๋ก ์น๋ฉด ํ์ฌ ๊ธฐ์ค ๋ด ํค์ ๋ชธ๋ฌด๊ฒ, IQ, ์๋ ์ง์์ ๋์ผ ๊ฒ์ด๋ค.
ํ๋ก์ธ์ค ๋ฌธ๋งฅ์ ์์์ผ ํ๋ ์ค์ํ ์ด์ ๋ time sharing
๊ณผ ๊ด๊ณ๊ฐ ์๋ค. *ํ๋์ ํ๋ก์ธ์ค๋ง์ด ์คํ๋๋๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ํ์ฌ ์งํํ๋ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์๊ณ ๋ฐฑ์
ํด์ผํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์
ํด์ผ ๋ค์์ ํด๋น ํ๋ก์ธ์ค๊ฐ ๋ค์ CPU๋ฅผ ์ก์์ ๋ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์งํ์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Running
: CPU๋ฅผ ์ก๊ณ instruction์ ์ํ์ค์ธ ์ํReady
: CPU๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ(๋ค๋ฅธ ๋ชจ๋ ์ค๋น๋ ๋ค ๋๋์๊ณ )Blocked (wait,sleep)
: Suspended(stopped)
: ์ค๊ธฐ์ค์ผ์ค๋ฌ๋๋ฌธ์ ์๊ธด ์ํ
New
: ํ๋ก์ธ์ค๊ฐ ์์ฑ์ค์ธ ์ํ
Terminated
: ์ํ(execution)์ด ๋๋ ์ํ
Blocked
: ์์ ์ด ์์ฒญํ event๊ฐ ๋ง์กฑ๋๋ฉด Ready
Suspended
: ์ธ๋ถ์์ resumeํด ์ฃผ์ด์ผ Active
๋ณดํต์ Ready ์ํ์ ์๋ ํ๋ก์ธ์ค๋ค์ด time sharing์ ํตํด CPU๋ฅผ ์ก์๋ค ๋์๋ค ํ๋ฉด์ ์งํ๋๋ค.
CPU๋ฅผ ํ ํ๋ก์ธ์ค์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋๊ฒจ์ฃผ๋ ๊ณผ์
PCB
์ ์ ์ฅ(kernel ๋ฐ์ดํฐ๋ถ๋ถ์์) PCB
์์ ์ฝ์ด์ด(kernel ๋ฐ์ดํฐ๋ถ๋ถ์์) ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ System call์ด๋ Interrupt ๋ฐ์ ์ ๋ฐ๋์ context switch๊ฐ ์ผ์ด๋๋ ๊ฒ์ ์๋๋ผ๋ ์ ์ด๋ค.
์์์ ์ธ๊ธํ context switch
๋ ํ ํ๋ก์ธ์ค์์ ํ๋ก์ธ์ค๋ก ๋์ด๊ฐ ๋ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด๋ค. ๋ฐ๋ฉด System call์ด๋ Interrupt๊ฐ ๋ฐ์ํ์ ๋
๋ CPU๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์์ OS
๋ก ๋์ด๊ฐ๋๋ฐ, ์ด๊ฒ์ context switch๊ฐ ์๋๋ค.
๊ทธ ํ OS๊ฐ CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๋๊ฒจ์ฃผ๊ฒ ๋๋ฉด
๊ทธ๊ฒ์ context switch๊ฐ ๋ง๋ค.
Job queue
: ํ์ฌ ์์คํ
๋ด์ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ์งํฉ Ready queue
: ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ผ๋ฉด์ CPU๋ฅผ ์ก์์ ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค์ ์งํฉDevice queue
: I/O device์ ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค์ ์งํฉํ๋ก์ธ์ค๋ค์ ๊ฐ ํ๋ค์ ์ค๊ฐ๋ฉฐ ์ํ๋๋ค
Long-term scheduler(์ฅ๊ธฐ ์ค์ผ์ค๋ฌ or job scheduler)
Short-term scheduler(๋จ๊ธฐ ์ค์ผ์ค๋ฌ or CPU scheduler)
Medium-Term Scheduler(์ค๊ธฐ ์ค์ผ์ค๋ฌ or Swapper)