ํ๋ก์ธ์ค์ ์ ์, CPU ์ค์ผ์ฅด๋ฌ, ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์์๋ณธ๋ค.
1. ํ๋ก์ธ์ค(Process)
ํ๋ก์ธ์ค๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋์ด ์คํ์ค์ธ ์ํ์ธ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋๋์คํฌ(๋ณด์กฐ๊ธฐ์ต์ฅ์น)์ ์ ์ฅ๋์ด ์๋ฌด ์ผ๋ ํ์ง ์๋ ์ํ์ด๋ค. ํ๋ก์ธ์ค๋ ์คํํ๋ฉด์ stack pointer, data, text, register ๋ฑ์ด ๋์์์ด ๋ณํ๋ค. ํ๋ก์ธ์ค๋ job, task ๋ฑ์ผ๋ก ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
1.1 ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ์ข ๋ฃ
ํ๋ก์ธ์ค๋ ํ๋ก์ธ์ค์ ์ํด ๋ง๋ค์ด์ง๋ค. ์ปดํจํฐ๊ฐ ๋ถํ ์ด ๋๋ฉด ์ด์์ฒด์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ค๋๋ฐ ์ด์์ฒด์ ๊ฐ ์ฒ์์ผ๋ก ์ํํ๋ ์ผ ์ค์ ํ๋๋ ์ต์ด์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ์ฒ์ ๋ง๋ค์ด์ง ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๊ณ ๊ทธ ํ๋ก์ธ์ค๊ฐ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
์์ ๊ฐ์ด ์ต์ด์ ํ๋ก์ธ์ค๋ Init์ด๋ค. ์ด ์ด๋ฆ์ ์ด์์ฒด์ ๋ง๋ค ๋ค๋ฅด๊ณ , init์ UNIX ์ด์์ฒด์ ๊ธฐ์ค ์ด๋ฆ์ด๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์ฑ๋๋ฉด ์์ ๊ฐ์ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ฆฌ ๋ชจ์์ผ๋ก ๋ํ๋ผ ์ ์๋ค.์ฌ๊ธฐ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ชฝ์ ๋ถ๋ชจ ํ๋ก์ธ์ค, ๋ง๋ค์ด์ง ํ๋ก์ธ์ค๋ฅผ ์์ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค. ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ๋ ์์ ํ๋ก์ธ์ค ๋ผ๋ฆฌ๋ ์๋ก Sibling(ํ์ ) ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค.
ํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๊ณ ์ ์ ๋ฒํธ๋ฅผ ๊ฐ๋๋ฐ ์ด๋ฅผ **PID(Process Identifirer)**๋ผ๊ณ ํ๋ค. PID๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ํ(integer)์ผ๋ก ํํํ๋ค. PPID๋ ๋ถ๋ชจ์ PID๋ฅผ ๋งํ๋ค.
1.1.1 ํ๋ก์ธ์ค ์์ฑ
์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ง๋๋ ์์คํ ์ฝ์ด ์กด์ฌํ๋๋ฐ, ์ด๋ fork() ๋ผ ํ๋ค. ๋ง๋ค์ด์ง ํ๋ก์ธ์ค์์ ์ด๋ ํ ํ์ผ์ ์คํํ๋ ค๋ฉด exec() ์์คํ ์ฝ์ ์ฌ์ฉํ๋ค.
1.1.2 ํ๋ก์ธ์ค ์ข ๋ฃ
ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ์์คํ ์ฝ์ exit() ์ด๋ค. ํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ฉด ํด๋น ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ๋ชจ๋ ์์(๋ฉ๋ชจ๋ฆฌ, ํ์ผ, I/O ๋ฑ)์ ํ์ํด์ผํ๋ค. ์ด๋ฌํ ํ์๋ ์์๊ณผ ๊ถํ์ ๋ชจ๋ ์ด์์ฒด์ ๋ก ๋๋์๊ฐ์ผํ๋ค.
1.2 ํ๋ก์ธ์ค์ ๊ตฌ์กฐ
์ถ์ฒ : https://mintnlatte.tistory.com/{: .center-text}
์ถ์ฒ : https://rookieboxsite.wordpress.com{: .center-text}
1.2.1 Stack
- ํ๋ก๊ทธ๋จ์ ์ง์ญ ๋ณ์, ํจ์, return ์ฃผ์๋ฅผ ํฌํจํ๋ค.
- ํจ์ ํธ์ถ์ ํ๋ฉด ํด๋น ์ฃผ์๊ฐ ์คํ์์ญ์ ์ ์ฅ๋์ด ์๋ค๊ฐ returnํ๋ฉด pop๋๋ค.
1.2.2 Heap
- ํ ์์ญ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ๋์ ์ผ๋ก ์ฌ์ฉํ ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๋ค.
- c์ธ์ด์ malloc์ ์ด์ฉํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ ๋นํ๋ฉด ํ ์์ญ์ ์ ์ฅ๋๋ค.(free์ํค์ง ์์ผ๋ฉด ํ ์์ญ์ ๊ณ์ ๋ค์ด ์์)
1.2.3 Data
- ๋ฐ์ดํฐ ์์ญ์๋ ์ ์ญ ๋ณ์์ ์ ์ ์ง์ญ ๋ณ์๊ฐ ํฌํจ๋์ด ์๋ค. ๋ฐ์ดํฐ ์์ญ์ BSS, Data๋ก ๋๋ ์ง๋ค.
- BSS๋ ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๋ค์ด ์ ์ฅ ์ด๊ธฐํ ๋ ๋ณ์๋ค์ด ์ ์ฅ๋ ์์ญ์ผ๋ก 0์ผ๋ก ์๋ ์ด๊ธฐํํด ์ค๋ค.
- Data๋ ์ด๊ธฐ๊ฐ์ ์ค์ ํ ์ ์ญ ๋ณ์์ ์ ์ ๋ณ์๋ฅผ ์ํ ์์ญ์ด๋ค.
BSS,Data๋ก ๊ตฌ๋ถํ๋ ์ด์ ?
- ์ด๊ธฐํ ๋ ๋ฐ์ดํฐ๋ ์ด๊ธฐ๊ฐ์ ์ ์ฅํด์ผ ํจ์ผ๋ก Data์์ญ์ ์ ์ฅ๋์ Rom์ ์ ์ฅ๋๋ค. ํ์ง๋ง ์ด๊ธฐํ ๋์ง ์์ ๋ฐ์ดํฐ ๊น์ง Rom์ ์ ์ฅ๋๋ฉด ํฐ size์ rom์ด ํ์ํ๋ฏ๋ก ๊ตฌ๋ถํ๋ค ( ์ด๊ธฐํ ๋์ง ์์ ๋ฐ์ดํฐ๋ ram์ ์ ์ฅํ์)
1.2.4 Text
- ํด๋น ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค.
- ํ๊ณผ ,์คํ์์ญ์์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋นํด์ ํ/์คํ์ ์๋๋ถ๋ถ์ ์์นํ๋ค.
- ์คํ ์์๋ฑ์ด ์ ์ฅ๋์ด ์๋ค.
- ์ฝ๊ธฐ ์ ์ฉ์ด๋ค.
- ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์ฐธ์กฐ ๊ฐ๋ฅํ๋ค.
1.2.5 ์ ๋ฆฌ
|ํฌ๊ธฐ ๋ณํ|O|X| |:------------|:|:| ||Stack|Text| ||Heap|Data| |||Bss|
- Text
- Program Counter(๋ค์๋ฒ์ ์คํ๋ ๋ช ๋ น์ด์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ ์ง์คํฐ : CPU์๊ฒ ์ค ์์ )
- ํ๋ก๊ทธ๋จ ์ฝ๋
- Data
- ์ ์ญ ๋ณ์ ์ ์ฅ
- ์คํํฑ ๋ณ์ ์ ์ฅ
- Heap
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น (system call๋ก ๊ด๋ฆฌ)
- ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํจ
- Stack
- ์์ ๋ฐ์ดํฐ ์ ์ฅ
- ์ง์ญ ๋ณ์
- ๋ฐํ ์ฃผ์
1.3 ํ๋ก์ธ์ค ์ํ
- New: ํ๋ก๊ทธ๋จ์ด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋๋ค.
- Ready: ํ ๋น๋ ํ๋ก๊ทธ๋จ์ด ์ด๊ธฐํ์ ๊ฐ์ ์์ ์ ํตํด ์คํ๋๊ธฐ ์ํ ๋ชจ๋ ์ค๋น๋ฅผ ๋ง์น๋ค.
- Running: CPU๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ค.
- Waiting: ํ๋ก์ธ์ค๊ฐ ๋๋์ง ์์ ์์ ์์ I/O๋ก ์ธํด CPU๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ์์ ์ ํ๋ค. (ํด๋น ์์ ์ด ๋๋๋ฉด ๋ค์ CPU์ ์ํด ์คํ๋๊ธฐ ์ํด ready ์ํ๋ก ๋์๊ฐ์ผ ํ๋ค.)
- Terminated: ํ๋ก์ธ์ค๊ฐ ์์ ํ ์ข ๋ฃ๋๋ค.
์ ๊ทธ๋ฆผ์ ํ๋ก์ธ์ค ์ํ ์ ์ด๋์ ๋ชจ์ต์ด๋ค. new์์๋ถํฐ ํ๋ก์ธ์ค๊ฐ ์ด๋ค ์์ ์ ์ํด ์ํ๊ฐ ๋ณํ๋์ง ๋ํ๋ธ๋ค. running์์ ready๋ก ๋ณํ ๋๋ time sharing system์์ ํด๋น ํ๋ก์ธ์ค๊ฐ CPU์๊ฐ์ ๋ชจ๋ ์์งํ์์ ๋ ์ธํฐ๋ฝํธ์ ์ํด ๊ฐ์ ๋ก ready์ํ๋ก ๋ณํ๊ณ , CPU๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํจ๋ค.
1.4 PCB(Process Control Block)
PCB๋ ํ๋ก์ธ์ค์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ชจ์ฌ์๋ ๊ณณ์ผ๋ก, Task Control Block(TCB) ์ด๋ผ๊ณ ๋ ํ๋ค. PCB์์๋ ํ๋ก์ธ์ค์ ์ํ, ํ๋ก์ธ์ค ๋ฒํธ(PID), ํด๋น ํ๋ก์ธ์ค์ program counter(pc), register๊ฐ, MMU(Memory Management Unit)์ ๋ณด, CPU์ ์ ์๊ฐ ๋ฑ์ด ํฌํจ๋์ด ์๋ค. PCB๋ ์ด์์ฒด์ ๋ด๋ถ์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ฝ๋ ๋ถ๋ถ์ ์ ์ฅ๋์ด ์๋ค.
CPU๋ ํ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋๊น์ง ์ํํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ค๊ฐ ์ค๊ฐ์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์ํํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก CPU๋ ์ํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ๋๊ฐ ๋, ์ด ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ์ด๋๊ฐ์ ์ ์ฅํ๊ณ ์์ด์ผ ๋ค์์ ์ด ํ๋ก์ธ์ค๋ฅผ ์ํํ ๋ ์ด์ ์ ์ํํ ๊ทธ ๋ค์๋ถํฐ ์ด์ด์ ์์ ํ ์ ์๋ค. ์ด๋ฌํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ณณ์ด PCB์ด๋ค.
1.5 ํ๋ก์ธ์ค ํ(Queue)
ํ๋ก์ธ์ค์ ์์ ์ฃผ๊ธฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด, DISK, Memory, cpu๋ฑ์ ๊ฑฐ์น๊ฒ ๋๋ค. ๊ฐ์๋ก ์ข์์ง๋ ๊ณต๊ฐ๊ณผ, ํ์ ๋ ์์ ๋๋ฌธ์ ๋ณ๋ชฉํ์์ด ๋ฐ์ํ ์ ๋ฐ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋จผ์ ์คํ๋ ํ๋ก์ธ์ค์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ผ ์ด ํ๋ก์ธ์ค๋ค์ ์ค์ธ์ ๊ด๋ฆฌํด์ผ ํ๋ค. ์ด๋ฌํ ์์๋ฅผ Queue๋ก ๊ด๋ฆฌํ๋ค.
- Job Queue: ํ๋๋์คํฌ์ ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ์์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ์ด๋ค.
- Ready Queue: CPU ์ ์ ์์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ์ด๋ค.
- Device Queue: I/O๋ฅผ ํ๊ธฐ ์ํ ์ฌ๋ฌ ์ฅ์น๊ฐ ์๋๋ฐ, ๊ฐ ์ฅ์น๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๊ฐ ๊ฐ๊ฐ ์กด์ฌํ๋ค.
Scheduling(์ค์ผ์ฅด๋ง)
์์ ๊ฐ์ด ์ฌ๋ฌ ํ๊ฐ ์กด์ฌํ๋๋ฐ, ๊ฐ ํ ๋ด๋ถ์ ์ ์ฅ๋ ์ค์ ๋ฐ์ดํฐ๋ ๊ฐ ํ๋ก์ธ์ค์ PCB๊ฐ ์ ์ฅ๋์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ณต๊ฐ์ด ์๋ค๋ฉด ์ด ์์๋ฅผ ์ ํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์์ด์ผ ํ๋ค. ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ **์ค์ผ์ค๋ง(Scheduling)**์ด๋ผ ํ๋ค.
- Job Queue - Job Scheduler(Long-term scheduler)
- Ready Queue - CPU Scheduler(Short-term scheduler)
- Device Queue - Device Scheduler
Job queue์ ์์๋ฅผ ์ ํด์ฃผ๋ job scheduler๋ฅผ long-term scheduler๋ผ๊ณ ๋ ํ๋๋ฐ, ์ด๋ ์ด ์ค์ผ์ค๋ง์ด ๋ฐ์ํ๋ ์๊ฐ์ด ๋น๊ต์ ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.(๋๋ต ์ด~๋ถ) ๋ฐ๋ฉด์ ready queue์ ์ค์ผ์ค๋ฌ๋ฅผ short-term scheduler๋ผ๊ณ ๋ ํ๋๋ฐ, ์ด๋ ์ค์ผ์ค๋ง์ด ๋ฐ์ํ๋ ์๊ฐ์ด ๋งค์ฐ ์งง๊ธฐ ๋๋ฌธ์ด๋ค. CPU scheduling์ ๋ง ๊ทธ๋๋ก ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๋ ์์๋ฅผ ์ ํด์ฃผ๋๋ฐ ์ด๋ ๋งค์ฐ ๋น ๋ฅธ ์๊ฐ์์ ์ด๋ฃจ์ด์ ธ์ผํ๋ค. ํ๋ ์ปดํจํฐ๊ฐ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ฃผ๋ ์ด์ ๊ฐ ์ด ์ค์ผ์ค๋ง ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
2. ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ
๋ฉํฐํ๋ก๊ทธ๋๋ฐ์ ๋จ์ผ ํ๋ก์ธ์(CPU) ํ๊ฒฝ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์์ ํ๋ก์ธ์๋ค์ ์ฌ๋ ค๋ ์ํ๋ก, CPU๊ฐ ์ฌ๋ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์์๊ฒ CPU์์์ ํ ๋นํ์ฌ ๋์์ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด์ ๊ดํ ์ฉ์ด์ ๋ํด ์ ๋ฆฌํด ๋ณด์.
2.1 Degree of multiprogramming
Degree of multiprogramming ๋ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋์ด ์๋ ํ๋ก์ธ์ค ๊ฐ์๋ฅผ ๋งํ๋ค.
2.2. I/O bound process VS CPU bound process
ํ๋ก์ธ์ค๋ I/O bound process ์ CPU bound process ๋ก ๋๋๋ค.
-
I/O bound process: ํด๋น ํ๋ก์ธ์ค์์ I/O(์ ์ถ๋ ฅ) ์์ ์ด ์ฐจ์ง๋ ๋น์ค์ด ๋์ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค.
- Word processor
-
CPU bound process: ํด๋น ํ๋ก์ธ์ค์์ CPU ์์ (๊ณ์ฐ)์ด ์ฐจ์ง๋ ๋น์ค์ด ๋์ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค.
- Super computer
์ด์์ฒด์ , ์ ํํ ๋งํ๋ฉด job scheduler ๋ ์ด๋ฌํ ํ๋ก์ธ์์ ํน์ง์ ๊ฐ์ํ์ฌ I/O bound process์ CPU bound process๋ฅผ ์ ์ ํ ๋ถ๋ฐฐํด์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํด์ฃผ์ด์ผ ํ๋ค.
2.3 Medium-term scheduler
Medium-term scheduler๋ ๋ง๊ทธ๋๋ก short-term๋ณด๋ค๋ ๋ ๋ฐ์ํ์ง๋ง, long-term๋ณด๋ค๋ ์์ฃผ ๋ฐ์ํ๋ scheduler์ด๋ค. ํ๋ ์ผ์ ์ด์์ฒด์ ๊ฐ ์คํํ๋ ๋์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ๊ฒ์ฌํ์ฌ ์ง์ ์ ์ผ๋ก CPU์ ์ผ์ ํ์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ์ฐพ์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด๋ค. ์ฎ๊ธฐ๋ ๊ธฐ์ค์ ์ฌ๋ฌ๊ฐ์ง ์๊ฒ ์ง๋ง ๋ํ์ ์ผ๋ก ์ฅ๊ธฐ๊ฐ ์ฌ์ฉํ์ง ์๋ ํ๋ก์ธ์ค๊ฐ ์๋ค.
Swapping
์ผํ์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ์ซ์๋ด๋ ํ์๋ฅผ Swapping์ด๋ผ ๋ถ๋ฅด๋๋ฐ, ์ด๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ์ฅ์๊ฐ ์ฌ์ฉํ์ง ์๋ ํ๋ก์ธ์ค๋ฅผ ํ๋๋์คํฌ(Swap device = Backing store, ์ผ๋ฐ์ ์ผ๋ก ํ๋๋์คํฌ๋ File system + Backing store ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.)๋ก ์ฎ๊ฒจ์ฃผ๊ณ (Swap out ), ๋์ค์ ์ด ํ๋ก์ธ์ค๊ฐ ๋ค์ ์ฌ์ฉ๋๋ ค๊ณ ํ๋ฉด ํ๋๋์คํฌ์์ ํด๋น ํ๋ก์ธ์ค๋ฅผ ๋ค์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํด์ค๋ค.(Swap in)
Swap out์ ํตํด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ์๊ธฐ๋ฏ๋ก ์ด๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋ง์ฝ swap out๋ ํ๋ก์ธ์ค๊ฐ ๋ค์ swap in์ผ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๋ ค๊ณ ํ ๋ ์ด์ ์ ๊ณต๊ฐ์ผ๋ก ํ ๋น๋๋ ๊ฒ์ ๋ณด์ฅํ์ง๋ ์๋๋ค. ์๋ํ๋ฉด ์์ ๋งํ๋ฏ์ด swap out์ผ๋ก ์๊ธด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
2.4 Context Switching(๋ฌธ๋งฅ ์ ํ)
Context switching์ CPU๊ฐ ํ ํ๋ก์ธ์ค์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ์ฎ๊ฒจ๊ฐ๋ ๊ฒ์ ๋งํ๋ค. ์ฆ, ํ ํ๋ก์ธ์ค๊ฐ ์คํ์ค์ธ ๊ฒ์ ๋ฉ์ถ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๊ฒ์ด๋ค.
- Scheduler
- ์ฌ๊ธฐ์ ์ค์ผ์ค๋ฌ๋ CPU Scheduler๋ฅผ ๋งํ๋ฉฐ, CPU๊ฐ ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ ํํ ์ง ์ ํ๋ค.
- Dispatcher
- ์ค์ context switching์ด ๋ฐ์ํ๋ฉด CPU์ ๋ด๋ถ ๋ฐ์ดํฐ๋ฅผ ์๋ก ์์๋๋ ๋ฐ์ดํฐ๋ก ๋ฐ๊ฟ์ค๋ค. ์ด ๊ณผ์ ์์ ํ์ฌ ์คํํ๊ณ ์๋ ํ๋ก์ธ์ค์ PCB์ ํ์ฌ๊น์ง ์์ ๊ณผ์ ์ผ๋ก ๊ฐฑ์ ํ๊ณ , ์๋ก ์์๋๋ ํ๋ก์ธ์ค์ PCB ๋ฐ์ดํฐ๋ฅผ CPU๋ก ๋ณต์(Restore)ํ๋ ์์ ์ ํ๋ค.
- Context switching overhead
- Context switching์ด ๋ฐ์ํ ๋๋ง๋ค, dispatcher์์ ์ํํ๋ ์์ ์ ๋งค๋ฒ ์ํํด์ผํ๋ฉฐ ์ด ๋ชจ๋ ๊ฒ์ overhead(๋ถ๋ด)์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ๋งฅ ์ ํ์ ๋งค์ฐ ์์ฃผ ๋ฐ์ํ๋ ์์ ์ด๋ฏ๋ก overhead๋ฅผ ์ค์ด๊ธฐ ์ํด์๋ dispatcher๋ฅผ ๊ตฌํํ๋ ์ฝ๋์ ๋ํ ํจ์จ์ ์ต๋ํ ๋์ฌ์ฃผ์ด์ผํ๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- ํ๋ก์ธ์ค์ ๊ตฌ์กฐ
- Operating System Concepts, 9th Edition - Abraham Silberschatz