์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ
0. ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค
0-1. ํ๋ก๊ทธ๋จ์ด ์ ์ฅ๋์ด ์๋ ๊ณณ : ๋ณด์กฐ ๊ธฐ์ต์ฅ์น
0-2. ํ๋ก๊ทธ๋จ์ด ๋ก๋ฉ๋๋ ๊ณณ : ์ฃผ ๊ธฐ์ต์ฅ์น
0-3. ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์ฃผ์ฒด : ํ๋ก์ธ์ค
0-4. ์์ ์ ์ฒ๋ฆฌํด์ฃผ๋ ์ฃผ์ฒด : ์ฐ๋ ๋ ~ ์ค๋ ๋๋ ํ์์๋ง๋ค ์์ฑ๋๋ฉฐ, ํ๋ก์ธ์ค ์์ธ์ ์๋ ์ต๊ทผ ํ๊ท ์ฐ๋ ๋ ๊ฐ์ ํต๊ณ๊ฐ
0-5. ํ๋ก์ธ์ค ์ํ๋ณํ ๋ณต์ต
https://cdaosldk.tistory.com/264
CS ๊ฐ์ 2. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ
์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ 1. CU์ ํต์ฌ ๊ธฐ๋ฅ : ์ค์ผ์ค๋ง 1) ์ค์ผ์ค๋ง ์๊ฐ - ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์ฃผ์ฒด = ํ๋ก์ธ์ค ex) ์นดํก ์คํ - ์์ ์ ์ฒ๋ฆฌํ๋ ์ฃผ์ฒด = ์ค๋ ๋ ex) ์นดํก ๋ฉ์ธ์ง ์ก์์ CPU๋ฅผ ์ ์ฌ์ฉํ
cdaosldk.tistory.com
1. ํ๋ก์ธ์ค ์๋ช ์ฃผ๊ธฐ
ํ๋ก์ธ์ค ์๋ช ์ฃผ๊ธฐ = ํ๋ก์ธ์ค ์ํ๋ณํ
๊ฐ ์์ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์๋ฏธํ๋ฉฐ, ํ์ดํ(์ํ๋ณํ๋์)์ ๋ฐ๋ผ ์ํ๊ฐ ๋ณํํ๋ค
1 - 1. ํ๋ก์ธ์ค ์ํ
1) ์ ๊ท
- ํ๋ก์ธ์ค๊ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์ํ
- ์คํ ๋ถ๊ฐ๋ฅ
- ์์ฉ์ ๊ฑฐ์ณ์ผ ์ค๋น๋จ๊ณ๋ก ๋์ด๊ฐ ์ ์๋ค
2) ์ค๋น
- ๋ณ์ ์ด๊ธฐํ ๋ฑ ๊ธฐ์ด ์ค๋น์์ ์ ๋ชจ๋ ๋๋ด๊ณ ์คํํ ์ ์๋ ์ํ
- ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ๋ฐ์ก๋์ด์ผ ์ํ ์ํ๊ฐ ๋๋ค
- ์ ๊ท ํ๋ก์ธ์ค๊ฐ ์์ฉ/ ๋๊ธฐ ํ๋ก์ธ์ค์ ์ ์ถ๋ ฅ,์ด๋ฒคํธ๊ฐ ์๋ฃ/ ์ํ ํ๋ก์ธ์ค์ ์ค๋จ
3) ์ํ
- CPU๊ฐ ์ค์ ๋ก ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ณ ์๋ ์ํ
- ์ ์ ์ค์ผ์ค๋ง์ ์ํด ์ค๋จ๋๋ฉด ์ค๋น
- ์ ์ถ๋ ฅ/ ์ด๋ฒคํธ ํ์์ ๋๊ธฐ
- ์ํ ์๋ฃ์ ์ข ๋ฃ
- ์ค๋น ํ๋ก์ธ์ค๊ฐ ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ๋ฐ์ก
ex)
์ํ -> ์ค๋น : CPU ๊ณผ๋ถํ
์ํ -> ๋๊ธฐ : I/O๋ event wait๊ฐ ์๋ ๊ฒฝ์ฐ, ์ดํ ์ ์ถ๋ ฅ/์ด๋ฒคํธ ์ข ๋ฃ์ ์ค๋น ์ํ๋ก ๋ณต๊ตฌ
4) ๋๊ธฐ
- ํ๋ก์ธ์ค ๋์ค ์ ์ถ๋ ฅ ์์ ์ด ํ์ํ๋ฉฐ ์ ์ถ๋ ฅ ์์ ์ ์ํํ๋ ์ํ
- CPU๋ I/O ๋๊ธฐ์ ๋์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ค
- ๋๊ธฐ ์ํ๊ฐ ๋๋๋ฉด ํ๋ก์ธ์ค๋ ๋ค์ ์ค๋น์ํ๊ฐ ๋๊ณ , ์ ์ ํ ๋ค์ ์ํ ์ํ๊ฐ ๋๋ค
5) ์ข ๋ฃ
- ํ๋ก์ธ์ค ์ข ๋ฃ ~ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ํด์
cf) ์๊ณต์ ์์คํ ์์ ์ํ ์ํ์์ ํ ๋น๋ ์๊ฐ์ด ๋ง๋ฃ๋๋ฉด ๋๊ธฐ ์ํ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์ค๋น ์ํ๋ก ๋ณํ ์ ์๋ค. ์ค๋จ๊ณผ ๊ฐ์ด ๋์ํ๋ค
1 - 2. ๋๊ธฐ ํ
1) Job Queue
HDD์ ์๋ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ๋ก ์ฌ๋ผ์ฌ ๋, ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐผ๊ฑฐ๋ CPU๊ฐ ๋ค๋ฅธ ์์ ์ ์ํํ๊ณ ์๋ค๋ฉด HDD์ ํ๋ก๊ทธ๋จ์ด ๋๊ธฐํ๋ ์ฅ์
2) Ready Queue
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ผ์จ ํ์๋ ๋๊ธฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ ๋ฐ, ์ด๋ฐ ๊ฒฝ์ฐ์ ๋ ๋ ํ์์ ๋๊ธฐํ๋ค. ๋จผ์ ์ํ๋๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด I/O๋ฅผ ์์ํด ๋๊ธฐ ์ํ๊ฐ ๋๊ฑฐ๋ ์๊ณต์ ์์คํ ์ ๊ฒฝ์ฐ ๊ธฐ์กด ํ๋ก์ธ์ค ์๊ฐ์ด๊ณผ์ ํ์ ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ค
3) Device Queue
I/O ์ฅ์น๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ๊ธฐ์กด ์ํ๋๊ณ ์๋ I/O ์์ ์ด ๋๋๋ ๊ฒ์ ๋๊ธฐํ๋ ์ฅ์๋ก ๊ฐ I/O ์ฅ์น๋ ๊ณ ์ ํ ๋๊ธฐ ์ฅ์๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ํต์นญํด Device Queue๋ผ๊ณ ํ๋ค
cf) ์ข ๋ฃ๋ฅผ ๋๊ธฐํ๋ ํ๋ ์๋ค
1 - 3. ์ค์ผ์ค๋ง
1) Job Scheduler
Job Queue์ ํ๋ก๊ทธ๋จ ์์๋ฅผ ๊ฒฐ์ ํ๋ ์ค์ผ์ค๋ฌ. ์ด์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ ค์ง๋ฉฐ, ํ๋ก๊ทธ๋จ์ด ์๋ก ์์ํ๋๋ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋์ฐฌ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํ๋ฏ๋ก, ๋น๋๊ฐ ๋์ง ์๋ค(์๋ถ ~ ์์ญ๋ถ)
cf) Long Term Scheduler : ๊ธด ๊ฐ๊ฒฉ์ผ๋ก ๋์ํ๋ ์ค์ผ์ค๋ฌ๋ฅผ ์ด๋ฅด๋ ๋ง
2) CPU Scheduler
Ready Queue์ ํ๋ก์ธ์ค ์์๋ฅผ ๊ฒฐ์ ํ๋ ์ค์ผ์ค๋ฌ. ๋ชจ๋ ์ค์ผ์ค๋ฌ ์ค ๊ฐ์ฅ ์ค์ํ๋ค
cf) Short Term Scheduler : ์๊ณต์ ์์คํ ์ ๊ฒฝ์ฐ 1์ด์๋ ์์ญ, ์๋ฐฑ๋ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ S.T.S๋ก ๋ถ๋ฅธ๋ค
3) Device Scheduler
Device Queue์ ํ๋ก์ธ์ค ์์๋ฅผ ๊ฒฐ์กํ๋ ์ค์ผ์ค๋ฌ๋ก ๊ฐ I/O ์ฅ์น๋ณ ํ๋ฅผ ํต์นญํ๋ค
I/O Bound Process vs CPU Bound Process
I/O Bound Process : ๋๋ถ๋ถ์ ์๊ฐ์ I/Oํ๋ ๋ฐ ์ฐ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธ
CPU Bound Process : ๋๋ถ๋ถ์ ์๊ฐ์ CPU๋ก ์ฐ์ฐํ๋๋ฐ ์ฐ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธ
~ ์ด์์ฒด์ (Job Scheduler)๋ ์ฑ๋ฅ์ ์ํด ๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ ํ๊ฒ ์กฐํฉํด์ผ ํ๋ค
1 - 4. ์ฃผ-๋ณด์กฐ ๊ตํ(Swapping)
1) Swapping
- ์๋ฒ์ ๊ฐ์ด ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ ํ ์ฌ์ฉ์๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ ์ถ๋ ฅ ๋ฑ์ ๋๊ธฐ ์ํ๋ฅผ ์ง์ํ๋ฉด ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ทธ๋งํผ ์ ๊ฒ ํ ๋น๋ฐ์ผ๋ฏ๋ก ํจ์จ์ ์ด์ง ๋ชปํ๋ค. PCB์ CPU Time ๋ฑ์ ํ์ธํด ์ค๋ซ๋์ ๋์์ด ์๋ ํ๋ก์ธ์ค๋ HDD๋ก ๋ณด๋ด๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ฑฐ๋ ๊ธฐ์กด ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํ ๋นํ๋ ๋ฑ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ค
* Swap Out : ๋ฉ๋ชจ๋ฆฌ์์ HDD๋ก ๋ณด๋ด๋ ์์
* Swap In : HDD์์ ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ณด๋ด๋ ์์
- ์์ ๋ฉ๋ชจ๋ฆฌ ๋ชฉ์ ์ผ๋ก Swapping์ ์ฌ์ฉ๋๋ HDD ๊ณต๊ฐ์ Backing Store ๋๋ Swap Device๋ผ๊ณ ํ๋ค
cf) Medium Term Scheduler
Swapping ์์๋ฅผ ๊ฒฐ์ ํ ๋ ์ฌ์ฉํ๋ ์ค์ผ์ค๋ฌ๋ก, Short๊ณผ Long์ ์ค๊ฐ ๋น๋๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ Medium์ผ๋ก ๋ถ๋ฅธ๋ค. ๋ํ ์ค์ผ์ค๋ง ์์ ์ Medium Term Scheduling์ด๋ผ๊ณ ํ๋ค
1 - 5. ๋ฌธ๋งฅ ๊ตํ(Context Switching)
1) Context Switching
- ์๊ณต์ ์์คํ ์ ๊ฒฝ์ฐ ์ํ ์ค์ด๋ ํ๋ก์ธ์ค์ ํ ๋น๋ ์๊ฐ์ด ๋ง๋ฃ๋๋ฉด ํด๋น ํ๋ก์ธ์ค๋ ์ค๋น ์ํ๊ฐ ๋๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ ํ๋ก์ธ์ค์ ๊ต์ฒด๋ฅผ Context Switching์ด๋ผ๊ณ ํ๋ค
2) Scheduler
CPU ์ค์ผ์ค๋ฌ๊ฐ ๋ฌธ๋งฅ ๊ตํ์ ์ํ ์ค์ผ์ค๋ง ์์ ์ ๋ด๋นํ๋ค(๋ํ ๋ ๋ ํ ์ค์ผ์ค๋ง ์์ ๋ ์ํ)
3) Dispatcher
- ๊ธฐ์กด์ ์ํ๋๋ ํ๋ก์ธ์ค์ ์ํ ์ํ๋ฅผ ์ ์ฅํ๊ณ ์์ด์ผ ๋ค์ ๋ฌธ๋งฅ ๊ตํ์ด ๋ฐ์ํ์ ๋ ์์ ์ ์ด์ดํ ์ ์๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ Dispatcher๋ผ๊ณ ํ๋ค
cf) ๋๋ถ๋ถ์ ์ด์์ฒด์ ๋ CPU ์๊ณต์ ์์คํ ์ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ํตํค ์ฌ๋ฌ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ค์ ๋ก๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํ๋๋ง ์คํํ๊ณ ์๊ณ , CPU๋ ๊ฐ์ฅ ์ต์ ์ ํจ์จ๋ก ์ด์๋๊ณ ์๋ ๊ฒ์ด๋ค
2. ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ
2 - 1. ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
1) Code
์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ค. CPU๋ Code์์ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ๊ฐ์ ธ์ ์ฒ๋ฆฌ
2) Data
- ์ ์ญ๋ณ์, ์ ์ ๋ณ์๊ฐ ์ ์ฅ๋๋ค. ์ด ๋ณ์๋ค์ ํ๋ก๊ทธ๋จ ์์์ ํ ๋น๋๊ณ , ์ข ๋ฃ์ ์๋ฉธ๋๋ค
+ BSS : BSS์๋ ์ด๊ธฐํ๋์ง ์์ ์ ์ญ๋ณ์๊ฐ ์ ์ฅ๋๋ค. ์ด๊ธฐํ๋๋ Data ์์ญ์ ๋ณ์๋ ROM์ ์ ์ฅ๋์ด ํ๋ฐ์ฑ์ ๋์ง ์์ผ๋ฉฐ, BSS์ ๋ณ์๋ ์ด๊ธฐํ์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ RAM๊ณผ ROM์ ์ ์ฅ๋๋ ๊ฒ์ ๊ตฌ๋ถํ๋ค
3) Stack
- ํธ์ถ๋ ํจ์์ ์ํ์ด ๋๋๊ณ ๋ณต๊ทํ ์ฃผ์ ๋ฐ ๋ฐ์ดํฐ(์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด๊ฐ ๋ฑ)๋ฅผ ์์๋ก ์ ์ฅํ๋ ๊ณต๊ฐ
- ํจ์ ํธ์ถ์ ๊ธฐ๋กํ๊ณ ํจ์ ์ํ์ด ๋๋๋ฉด ์๋ฉธ๋๋ค. Stack์ LIFO๋ฐฉ์์ผ๋ก ์ ์ฅ/์ถ๋ ฅ๋๋ค
- ์ปดํ์ผํ ๋ Stack ์์ญ์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ฏ๋ก ๋ฌดํ ํ ๋นํ ์ ์๋ค. ๊ทธ๋์ Stack ์์ญ์ ์ด๊ณผํ๋ ์ฌ๊ทํจ์ ํธ์ถ ๋ฑ์ ์์ธ๊ฐ Stack Overflow์ธ ๊ฒ์ด๋ค
์ปดํ์ผ์ ์ธ ์์ญ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํด ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฒฐ์ ํ๋ค
4) Heap
- ๋์ ๋ฐ์ดํฐ ์์ญ. ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ์ํด์๋ง ์ฐธ์กฐ๋๊ณ ์ฌ์ฉ๋๋ค. ํ๋ก๊ทธ๋จ ๋์(๋ฐํ์)์ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ค
ex) Stack ์์ญ์์ Pointer ๋ณ์๋ฅผ ํ ๋นํ๋ฉด, ๊ทธ ๋ณ์๊ฐ ๊ฐ๋ฆฌํค๋ Heap ์์ญ์ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ํ ๋นํด ์ฌ์ฉํ๋ค
- ์๋ฐ์์ Heap ์์ญ์ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ ์ฐ์์ด ๋คํ ๊ฐ์ฒด๋ GC๊ฐ ์ ๋ฆฌํ๋ค
2 - 2. ์ปค๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ
1) ์ปค๋
๋๋ถ๋ถ์ ์ด์์ฒด์ ์ ์ฃผ ๊ตฌ์ฑ์์๋ก, ์ปดํจํฐ ํ๋์จ์ด์ ํ๋ก์ธ์ค๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ฌ ํ๋ก์ธ์ค๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ํ๋์จ์ด์ ํ๋ก์ธ์ค ์ฌ์ด ๋ช ๋ น์ ์ฆ์ ์คํํ๋(์ธํฐํ๋ฆฌํฐ) ์ญํ ์ ์ํ, ์์คํ ์ ํธ์ถ์ด๋ ๋ณด์์ ๊ธฐ๋ฅ์ ์ํํ๋ค
~ ์ปค๋์ ํ๋ก์ธ์ค๊ฐ ์๋ ์ฐ๊ฒฐ ์ธํฐํ์ด์ค
+ OS์ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ข ๋ฃ๋ ์ปค๋์ ๊ธฐ๋ฅ ์ค ํ๋๋ค
2) ์ปค๋์ Code
- ์์คํ ์ฝ, ์ค๋จ(์ธํฐ๋ฝํธ) ์ฒ๋ฆฌ ์ฝ๋
- CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ์ํ ์ฝ๋
- ํธ๋ฆฌํ ์ธํฐํ์ด์ค ์ ๊ณต์ ์ํ ์ฝ๋
3) ์ปค๋์ Data
- CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฑ ํ๋์จ์ด ์์์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ฅ
- PCB ์๋ฃ๊ตฌ์กฐ ์ ์ฅ
~ ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์ค์ ์ํ, CPU ์ฌ์ฉ ์ ๋ณด ๋ฑ์ ์ ์งํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ
~ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก์ ๊ฐ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅ(์ฃผ๋ฏผ๋ฑ๋ก์ฆ)ํ๊ณ ์ด์์ฒด์ ๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ค
~ ๊ฐ ํ๋ก์ธ์ค์ PCB๋ ์ด์์ฒด์ ๋ด๋ถ์ Process Management์์ ๊ด๋ฆฌํ๋ฉฐ, PC,Register,MMU์ ๋ณด,Process์ํ, CPU Time, PID ๋ฑ์ ํฌํจํ๊ณ ๊ตฌ์กฐ์ฒด์ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค
- ํ๋ก์ธ์ค ์๋ณ์(Process ID, PID): PCB์๋ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ๋ฒํธ๋ ์๋ณ์๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด์ ์ฒด์ ๋ ํน์ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ํ๋ก์ธ์ค ์ํ(Process State): PCB์๋ ํ๋ก์ธ์ค์ ํ์ฌ ์ํ๊ฐ ์ ์ฅ๋ฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์คํ ์ค, ๋๊ธฐ ์ค, ์ค๋น ์ค, ์ข ๋ฃ ๋ฑ ์ฌ๋ฌ ์ํ ์ค ํ๋์ผ ์ ์์ต๋๋ค.
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ(Program Counter, PC): ํ๋ก์ธ์ค๊ฐ ๋ค์์ ์คํํ ๋ช ๋ น์ด์ ์ฃผ์๋ฅผ ๋ํ๋ด๋ ์ ๋ณด์ ๋๋ค. ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์คํํ ๋ช ๋ น์ด๋ฅผ ์ฐพ์๊ฐ๊ณ ํ๋ก์ธ์ค๋ฅผ ์ฌ๊ฐํ ์ ์์ต๋๋ค.
- ๋ ์ง์คํฐ ์ํ(Register State): PCB์๋ ํ๋ก์ธ์ค์ ์ค์ํ ๋ ์ง์คํฐ ๊ฐ(์: CPU ๋ ์ง์คํฐ)์ด ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ํ๋ก์ธ์ค๊ฐ ๋ค์ ์คํ๋ ๋ ๋ ์ง์คํฐ ๊ฐ์ ๋ณต์ํ๋ ๋ฐ ํ์ํฉ๋๋ค.
- ํ๋ก์ธ์ค ์ฐ์ ์์(Process Priority): ํ๋ก์ธ์ค ์ฐ์ ์์๋ ์ด์ ์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ ๋ ์ฌ์ฉ๋๋ ์ ๋ณด์ ๋๋ค. ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๋ CPU ์๊ฐ์ ๋ ๋ง์ด ํ ๋น๋ฐ์ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด(Memory Management Information): PCB์๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ ๋ฒ์๋ ํ์ด์ง ํ ์ด๋ธ ์ ๋ณด ๋ฑ์ด ์ฌ๊ธฐ์ ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ ์ถ๋ ฅ ์ํ(I/O State): ํ๋ก์ธ์ค๊ฐ ๋๊ธฐ ์ค์ธ ์ ์ถ๋ ฅ ์์ ๊ณผ ๊ด๋ จ๋ ์ ๋ณด๊ฐ PCB์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋๋ฉด ํ๋ก์ธ์ค๋ฅผ ๋๊ธฐ ์ํ์์ ์คํ ๊ฐ๋ฅํ ์ํ๋ก ์ ํํ ์ ์์ต๋๋ค.
- ์ค์ผ์ค๋ง ์ ๋ณด(Scheduling Information): PCB์๋ ํ๋ก์ธ์ค์ ์ค์ผ์ค๋ง๊ณผ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ์ ๋ณด๋ ์ด์ ์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ๊ณ ์ฐ์ ์์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
4) ์ปค๋์ Stack
๊ฐ ํ๋ก์ธ์ค์ ์ปค๋ Stack ์ ์ฅํ๋ค. ํ๋ก์ธ์ค๋ ํจ์ ํธ์ถ์ ์์ ์ ๋ณต๊ท ์ฃผ์๋ฅผ ์ ์ฅํ์ง๋ง, ์ปค๋์ ์ปค๋ ๋ด์ ์ฃผ์๊ฐ ๋ณต๊ท ์ฃผ์๋ก ์ ์ฅ๋๋ค. ์ปค๋ ํ๋ก์ธ์ค์ ์คํ ํฌ๊ธฐ๋ ์ผ๋ฐ ์คํ๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฌ๋ฉฐ, ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ๋ณ๋์ ์คํ์ ๋๊ณ ๊ด๋ฆฌํ๋ค
+ ์ปค๋์ Heap์ด ์๋ค : ์ด์์ฒด์ ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํด ํ์ํ ๊ธฐ๋ฅ์ ์ปค๋์ด ์ ๊ณตํ๋๋ฐ, ์ปค๋ ํ๋ก์ธ์ค์๋ ํ์ด ์๊ธฐ๊ฒ ๋๋ฉด,
1. ๋ณด์, ์์ ์ฑ : ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ก์ธ์ค ๊ฐ ๋ฌด์ ํ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ์ปค๋ ๋ด๋ถ์์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๋ค
2. ๋ฆฌ์์ค ๊ด๋ฆฌ : ์ด์์ฒด์ ์ ์์์ ๊ด๋ฆฌํ ๋ ํ ์์ญ์ด ์๊ธฐ๋ฉด ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋ค
3. ํ๋ก์ธ์ค ๋ถ๋ฆฌ : ์ปค๋๊ณผ ์ฌ์ฉ์ ํ๋ก์ธ์ค ๊ฐ ํ ์์ญ์ด ํผํฉ๋๋ ๊ฒฝ์ฐ ๋ถ๋ฆฌ๋ฅผ ํผ์ํ๊ณ ํ๋ก์ธ์ค ๊ฐ ๊ฐ์ญ์ด ์ผ์ด๋ ์ ์๋ค
4. ์ฐ์ ์์์ ๋ฐ๋๋ฝ : ์ฐ์ ์์ ์ค์ผ์ค๋ง ๋ฐ ๋ฐ๋๋ฝ ํํผ ๊ฐ์ ์ด์์ฒด์ ๊ธฐ๋ฅ๊ณผ ์ถฉ๋ํ ์ ์๋ค
'๊ฐ๋ฐ๊ณต๋ถ > CS๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS ๊ฐ์ 5. DB ๊ตฌ์กฐ์ ์ ํ (0) | 2023.10.25 |
---|---|
CS ๊ฐ์ 4. ์ฐ๋ ๋์ ์ฐ๋ ๋ํ (1) | 2023.10.25 |
CS ๊ฐ์ 2. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ (0) | 2023.07.23 |
CS ๊ฐ์ 1. CPU์ ๋ฉ๋ชจ๋ฆฌ (0) | 2023.07.19 |
๋ก๋๋ฐธ๋ฐ์ฑ/ ์ค์ผ์ผ ์ / ์ค์ผ์ผ ์์ : ์๋ฒ์ ๋ถ์ฐ ์ ์์ฌ ๊ฒฐ์ ์ ๋ํด (0) | 2023.03.15 |