๐ก Program
- disk์ ์ ์ฅ๋์ด ์๋ binary file
- ์์ง ๋ฉ๋ชจ๋ฆฌ์ load ๋์ง ์์๋ค
๐ก Process
- program์ด ๋ฉ๋ชจ๋ฆฌ ์์ ์ฌ๋ผ๊ฐ ๊ฒ
- process๋ง๋ค ๊ณ ์ ํ ์์ด๋(PID)๋ฅผ ๊ฐ์ง๋ค
๐ก Process State
[State]
- ready: ์คํํ ์ค๋น๊ฐ ๋ ์ํ. ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์๋ ์ํ
- running: CPU ์์ ์ฌ๋ผ๊ฐ ์ํ
- wait: I/O๋ฅผ ์์ฒญํ ์ํ
- terminated: ๋ฉ๋ชจ๋ฆฌ์์ ๋ ์๊ฐ๋ค (exit)
[State Change]
- ready -> running : os์๊ฒ ์ ์ ๋์ด cpu๋ฅผ ์ฌ์ฉํ ๊ถํ์ ์ป์ด ์คํ
- running -> ready : timer interrupt, ๋ค๋ฅธ I/O interrupt
- running -> waiting : I/O ์์ฒญ
- waiting -> ready : I/O ์ข
๋ฃ
๐ก PCB(Process Control Block)
- process๊ฐ CPU์ ๋ค์ ์ฌ๋ผ๊ฐ ๋ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด์ ๊ตฌ์กฐ์ฒด
- process๋น ํ๋
๐ก Context Switch (๋ฌธ๋งฅ ์ ํ)
-> ํ๋ก๊ทธ๋จ์ด ๋์ ๋์ํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ธ๋ค
- CPU context = ๋ช
๋ น์ด๋ค์ด ์ด๋๊น์ง ์ํ๋์๋์ง์ ๋ํ ์ ๋ณด, ๊ทธ ๋์ ์ฌ์ฉ์ค์ธ data๋ค
- [๋จ์ ] overhead : ํ์ฌ context๋ฅผ PCB์ ์ ์ฅํ๊ณ , ๋ค์ loadํ๋ ๊ณผ์ ๋ค์ด overhead + ๊ณ์๋๋ mode ์ ํ(user-kernel)