์ด์์ฒด์
- ์ปดํจํฐ์ ์ฌ์ฉ์ ์ฌ์ด์์ ์์คํ ์ ํจ์จ์ ์ผ๋ก ์ด์ํ ์ ์๋๋ก ์ธํฐํ์ด์ค ์ญํ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ, ํ์ผ ๊ด๋ฆฌ, ์ ์ถ๋ ฅ ๊ด๋ฆฌ, ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ฑ
๋ง์ปค(Linker)
- ๋ฃจํด์ ๋ชจ์ ์คํ ๊ฐ๋ฅํ ํ๋์ ๋ฃจํด์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ
- ์ฐ๊ฒฐ ๊ธฐ๋ฅ๋ง ์ํ
๋ก๋(Loader)
- ํ ๋น, ์ฐ๊ฒฐ, ์ฌ๋น์น, ์ ์ฌ
- ์ปดํจํฐ ๋ด๋ถ๋ก ์ ๋ณด๋ฅผ ๋ค์ฌ์ค๊ธฐ
- ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌํ๊ธฐ
ํ๋ก์ธ์ค ์ํ
- new : ํ๋ก์ธ์ค ์์ฑ ์ํ
- ready : ํ๋ก์ธ์ค ํ ๋น ๋๊ธฐ ์ํ
- running : ํ๋ก์ธ์ค์ ๋ช ๋ น์ด๋ฅผ ์คํ ์ค์ธ ์ํ
- waiting : ํ๋ก์ธ์ค๊ฐ ์ด๋ ํ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- terminated : ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ์ํ
Admitted [์์ฑ -> ์ค๋น] : ์ค๋น ํ๊ฐ ๋น์ด์์ ๋ ์์ ์ค์ผ์ค๋ฌ์ ์ํด ์คํ
Dispatch [์ค๋น -> ์คํ] : ์ค์ผ์ค๋ฌ์ ์ํด ์ค๋น ํ ๋งจ ์์ ์๋ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋น
Blocked [์คํ -> ๋๊ธฐ] : CPU๋ฅผ ํ ๋น๋ฐ์ ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ ์์ ๋ฑ์ผ๋ก ์ธํด ๋ช ๋ น์ ์คํํ ์ ์๋ ์ํ
Wake up [๋๊ธฐ -> ์ค๋น] : block์ํ์ ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ ์์ ์ด ๋๋๋ฉด ๋๊ธฐ ์ํ์์ ์ค๋น ์ํ๊ฐ ๋จ
Interrupt [์คํ -> ์ค๋น] : Timer run out, CPU๋ฅผ ์ ์ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์๊ฐ์ ๋ชจ๋ ์ฌ์ฉํ์ฌ ํ์ ์์๋๊ฑฐ๋,
CPU ์ค์ผ์ค๋ง ์ ์ฑ ์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ก CPU ๋์ค ํจ์น๋ ์ํ
Exit [์คํ -> ์ข ๋ฃ] : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์์ ์ ๋ชจ๋ ์ํํ ์ํ
CPU ์ค์ผ์ค๋ง
CPU ์ค์ผ์ค๋ง์ ์ธ์ ์ด๋ค ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ ์์
CPU ์ด์ฉ๋ฅ ์ ๊ทน๋ํํ๊ธฐ ์ํจ
๋น์ ์ ํ ์ค์ผ์ค๋ง : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๊ณ ์๋ค๋ฉด ์ด๋ฅผ ๋บ์ ์ ์๋ ๋ฐฉ์
์ ์ ํ ์ค์ผ์ค๋ง : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ ์ค์ด๋๋ผ๋ ์ด์์ฒด์ ๊ฐ ์ด๋ฅผ ๊ฐ์ ๋ก ๋บ์ ์ ์๋ ๋ฐฉ์
CPU ์ฑ๋ฅ ํ๊ฐ ๊ธฐ์ค
CPU ์ฌ์ฉ๋ฅ (CPU Utilization) | CPU ํ์ฉ ์ ๋๋ฅผ ๋ํ๋ด๋ ๋น์จ |
์ฒ๋ฆฌ์จ (Throughput) | ๋จ์ ์๊ฐ๋น ์๋ฃ๋๋ ํ๋ก์ธ์ค์ ์ |
๋ฐํ ์๊ฐ (Turnaround Time) | ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์์ ์ ๋ง์น๊ณ ์ข ๋ฃ๋ ๋๊น์ง์ ๊ฑธ๋ฆฌ๋ ์๊ฐ |
๋๊ธฐ ์๊ฐ (Waiting Time) | ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์์ ์ ๋ง์น๊ณ ์ข ๋ฃ๋ ๋๊น์ง ํ์์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ |
๋ฐ์ ์๊ฐ (Response Time) | ๋ํํ ์์คํ ์์ ์์ ์๊ตฌ(์: ํค๋ณด๋ ์ ๋ ฅ)์ ๋ํ์ฌ ์์คํ ์ด ๋ฐ์์ ์์ํ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ |
CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
๋น์ ์ | FCFS | ๋จผ์ ๋ค์ด์จ ํ๋ก์ธ์ค ๋จผ์ ์ฒ๋ฆฌ |
SJF | ์ฒ๋ฆฌ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ถํฐ ์ฒ๋ฆฌ | |
HRN | ์งง์ ์์ ์๊ฐ์ด๋ฉด์ ๋๊ธฐ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๋ถํฐ ์ฒ๋ฆฌ | |
์ ์ | RR | ๋จผ์ ๋ค์ด์จ ์์๋๋ก ์ผ์ ์๊ฐ๋งํผ๋ง ์ฒ๋ฆฌ |
SRT | ๋จ์ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ถํฐ ์ฒ๋ฆฌ | |
MLQ | ์ฐ์ ์์๋ณ๋ก ํ๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ค์ํ ์ค์ผ์ค๋ง ์ ์ฉ |
FCFS(First-Come-First-Served)
์ฐ์ ์์, ์คํ์๊ฐ ๋ฑ์ ๋ค๋ฅธ ์์๋ ์ ํ ๊ณ ๋ คํ์ง ์๊ณ ๋ฌด์กฐ๊ฑด ๋จผ์ ์ค๋น๋๋ฉด ๋จผ์ ์คํ์์ผ์ค๋ค.
SJF(Shortest Job Fisrt)
์ค๋น์ํ์ ๋๊ธฐ ์ค์ธ ์์ ์ค CPU ์ฌ์ฉ์๊ฐ์ด ๊ฐ์ฅ ์ ์ ํ๋ก์ธ์ค๋ถํฐ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
HRN(Highest Response ratio Next)
์๋ต ๋น์จ(response ratio)์ ์ด์ฉํ์ฌ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๊ณ์ฐ
์๋ต ๋น์จ = (๋๊ธฐ ์๊ฐ + ์๋น์ค ์๊ฐ) / ์๋น์ค ์๊ฐ
RR(Round Robin)
ํ๋ก์ธ์ค์๊ฒ ๊ฐ๊ฐ ๋์ผํ CPU ํ ๋น ์๊ฐ์ ๋ถ์ฌํด์ ๊ทธ ์๊ฐ ๋์๋ง CPU๋ฅผ ์ด์ฉํ๊ฒ ํ๋ค.
CPU๋ฅผ ๋ ์ ํ์ง ์๊ณ ๊ณตํํ๊ฒ ์ด์ฉ
SRT(Shortest Remaining Time)
์ต๋จ ์์ฌ์๊ฐ์ ์ฐ์ ์ผ๋ก ํ๋ ์ค์ผ์ค๋ง
MLQ(Multi-Level Queue)
๋ค๋จ๊ณ ํ
ํญ์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ํ์ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋น
(์ฐ์ ์์๊ฐ ๋ฎ์ ํ์์ ์์ ์คํ ์ค์ด๋๋ผ๋ ์์ ๋จ๊ณ์ ํ์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด CPU๋ฅผ ๋นผ์๋ ์ ์ ํ ์ค์ผ์ค๋ง)
๋ฐ๋๋ฝ(Deadlock, ๊ต์ฐฉ ์ํ)
์์คํ ์์์ ๋ํ ์๊ตฌ๊ฐ ๋ค์ํจ ์ํ
๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ์์์ ์ ์ ํ ์ํ์์ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์๊ตฌํ๋ฉฐ,
์๋ก์ ์์ ์ ๋๋๊ธฐ๋ง์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ ๋ค ์์ํ ๋๋์ง ์๋ ์ํฉ
๊ต์ฐฉ์ํ์ ๋ฐ์ ์กฐ๊ฑด 4๊ฐ์ง
๊ต์ฐฉ์ํ๋ ์๋์ 4๊ฐ์ง ์กฐ๊ฑด์ด ๋ชจ๋ ๋ง์กฑ๋๋ ๊ฒฝ์ฐ(ํ์์ถฉ๋ถ์กฐ๊ฑด)์ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ,
ํ๋๋ผ๋ ๋ง์กฑํ์ง ์์ผ๋ฉด ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
1. ์ํธ ๋ฐฐ์ (Mutual Exclusion)
ํ ๋ฒ์ ํ ๊ฐ์ ํ๋ก์ธ์ค๋ง์ด ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์์
2. ์ ์ ๋๊ธฐ(Hold and Wait)
ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์์์ ๊ฐ์ง ์ํ์์ ๋ค๋ฅธ ์์์ ๊ธฐ๋ค๋ฆผ
3. ๋น์ ์ (No Preemption)
ํ๋ก์ธ์ค๊ฐ ์์
์ ๋ง์น ํ ์์์ ์๋ฐ์ ์ผ๋ก ๋ฐํํ ๋๊น์ง ๊ธฐ๋ค๋ฆผ
(์ด๋ฏธ ํ ๋น๋ ์์์ ๊ฐ์ ์ ์ผ๋ก ๋นผ์์ ์ ์์)
4. ์ํ ๋๊ธฐ(Circular Wait)
ํ๋ก์ธ์ค์ ์์ ์ ์ ๋ฐ ์ ์ ๋ ์์์ ์๊ตฌ ๊ด๊ณ๊ฐ ์ํ์ ์ด๋ฃจ๋ฉด์ ๋๊ธฐํ๋ ์กฐ๊ฑด.
๊ฐ ํ๋ก์ธ์ค๋ ์ํ์ ์ผ๋ก ๋ค์ ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ์์์ ๊ฐ์ง๊ณ ์์
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Centos7 ๋ฆฌ๋ ์ค ์ค๋ผํด ๋๋น ์ค์น (0) | 2023.10.24 |
---|---|
[CS - ์ด์์ฒด์ ] Chapter 01. ์ด์์ฒด์ ๊ฐ์ (0) | 2023.08.12 |