1. ํ๋ก์ธ์ค vs ํ๋ก๊ทธ๋จ
2. ํ๋ก์ธ์ค๋?
2.1. PCB๋?
3. ํ๋ก์ธ์ค ์ํ
3.1. Created State (-> ready or suspended ready)
3.2. Ready State (-> running)
3.3. Running State (-> ready or asleep)
3.4. Blocked/Asleep State (-> ready)
3.5. Suspended State
3.6. Terminated/Zombie State
1. ํ๋ก์ธ์ค vs ํ๋ก๊ทธ๋จ

ํ๋ก๊ทธ๋จ : ํน์ ์์ ์ ์ํํ๊ธฐ ์ํ ์ฝ๋๋ค์ ๋ชจ์
ํ๋ก์ธ์ค : ํ๋ก๊ทธ๋จ์ด ์ปค๋์ ๋ฑ๋ก๋ ์ํ๋ฅผ ํ๋ก์ธ์ค๋ผ๊ณ ํ๋ค.
- ์ฑ๋ฅ ํฅ์์ ์ํด ์ปค๋์ด ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ค.
JOB : ํ๋ก๊ทธ๋จ + ๋ฐ์ดํฐ
2. ํ๋ก์ธ์ค๋?
- ์ปค๋์ ๋ฑ๋ก๋ ์ปค๋์ ๊ด๋ฆฌํ์ ์๋ ํ๋ก๊ทธ๋จ
- ๊ฐ์ข ์์์ ์์ฒญํ๊ณ ํ ๋น๋ฐ์ ์ ์๋ ๋์ ๊ฐ์ฒด
- PCB๋ฅผ ํ ๋น ๋ฐ์ ๊ฐ์ฒด
2.1. PCB๋?
- ์ปค๋๋ด์ ์กด์ฌํ๋ฉฐ, ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- PCB์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์กด์ฌํ๋ค.
- ์ค์ผ์ค๋ง ์ ๋ณด
- ํ๋ก์ธ์ค ์ํ
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด
- ์ ์ถ๋ ฅ ์ํ ์ ๋ณด
- ๋ฌธ๋งฅ ์ ์ฅ ์์ญ
- ๊ณ์ ์ ๋ณด(๋ค์ค ์์คํ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ํ ์ ๋ณด)
3. ํ๋ก์ธ์ค ์ํ

3.1. Created State (-> ready or suspended ready)
ํ๋ก๊ทธ๋จ์ ์ปค๋์ ๋ฑ๋กํ ์ํ, PCB๋ฅผ ํ ๋นํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ํ์ด๋ค. ์ด ์ํ์์ ์ปค๋์ ๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ ์ฒดํฌํ์ฌ ์ด๋ค ์ํ๋ก ์ ์ด๋ ์ง ๊ฒฐ์ ํ๋ ์ญํ ์ ๋ด๋นํ๋ค.
if(memory ์ถฉ๋ถ) {
ready state๋ก ์ ์ด
}
else {
suspended ready๋ก ์ ์ด
}
3.2. Ready State (-> running)
ํ๋ก์ธ์ ์ธ์ ๋ชจ๋ ์์์ ํ ๋น ๋ฐ์ ์ํ, ํ๋ก์ธ์๋ง ํ ๋น ๋๋ฉด ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ํ์ด๋ค. ํ๋ก์ธ์๊ฐ ํ ๋น๋์ด ์คํ์ด ๋๋ค๋ฉด running ์ํ๋ก ์ ์ด๋๋ค.
while(!๋ฉ๋ชจ๋ฆฌ ํ ๋น) {
ready
}
running
3.3. Running State (-> ready or asleep)
ํ๋ก์ธ์์ ๋ชจ๋ ์์์ ํ ๋น ๋ฐ์ ์ํ์ด๋ค. ๋ง์ฝ ํ๋ก์ธ์ ์ค์ผ์ค๋ง์ ์ํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ๋ก์ธ์๋ฅผ ๋บ๊ธฐ๊ฒ ๋๋ค๋ฉด ready ์ํ๋ก ์ ์ด๋๋ฉฐ, I/O์ ๊ฐ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ์๋ asleep ์ํ๋ก ์ ์ด๋์ด ํ๋ก์ธ์ค๋ ์ ์ ๋น ์ง๊ฒ ๋๋ค.
while(!์์
์ข
๋ฃ) {
running;
if(I/O ๋ฐ์) {
asleep;
}
if(ํ๋ก์ธ์ ํ ๋น ์ทจ์) {
ready;
}
}
3.4. Blocked/Asleep State (-> ready)
ํ๋ก์ธ์ ์ธ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ, I/O๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๋น ์ํ๋ก ์ ์ด๋๋ค. ๋ง์ฝ์ ๋๊ธฐ๊ฐ ์ข ๋ฃ๋ ํ์ ๋ฐ๋ก ์คํ๋๋ ๊ฒ์ด ์๋ Ready ์ํ๋ก ์ ์ด๋๋ค.
3.5. Suspended State
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ์ง ๋ชปํ(ํน์ ๋นผ์๊ธด) ์ํ๋ฅผ ๋งํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋นผ์๊ธฐ๋ ์ํฉ์ด ์ค๊ฒ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ํ๋ ์ฌ๋ผ์ง๊ฒ ๋๋ค. ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ์ ์ํ๊ฐ ์ฌ๋ผ์ง๊ฒ ๋๋ค๋ฉด ์ ์ ๋๊ธฐ ์ค์ธ ํ๋ก์ธ์ค๋ ์ฒ์๋ถํฐ ์คํํ๊ฑฐ๋ ํน์ ์์ ์คํํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ณ ์ ๊ธฐ๋กํ๊ณ ์๋ Memory Image๋ฅผ Swap Device์ ์ ์ฅํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ Swap-out์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋๋ก Memory Image๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฉ์ํค๋ ๊ณผ์ ์ Swap-in์ด๋ผ๊ณ ํ๋ค.
3.6. Terminated/Zombie State
ํ๋ก์ธ์ค ์ํ์ด ๋๋ ์ํ, ์์์ ๋ฐ๋ฉํ๊ณ ์ปค๋๋ด์ ์ผ๋ถ PCB ์ ๋ณด๋ง ๋ณด๊ดํ๋ค.
์ ์์ ํ ์ญ์ ํ์ง ์๊ณ ์ผ๋ถ ์ ๋ณด๋ฅผ ๋ณด๊ดํ ๊น?
- ๋ง์ฝ ์ ์ฌํ ์์ ์ด ๋ฐ์ํ ๋ ๊ด๋ฆฌํ๊ธฐ์ ์ ๋ฆฌํ๋๋ก ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ ๊ณผ์ ์ด ์กด์ฌํ๋ค.
Reference
https://sites.google.com/view/hpclab/courses/operating-system
HPC Lab., KOREATECH - Operating System
Operating System (CSE132)
sites.google.com