PCB, ์ค์ผ์ฅด๋ง, ํ๋ก์ธ์ค์ ์ฐ๋ ๋, Context Switching, ๊ต์ฐฉ ์ํ(DeadLock), ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
1. PCB
2. ์ค์ผ์ฅด๋ง
3. ํ๋ก์ธ์ค์ ์ฐ๋ ๋
4. Context Switching
5. ๊ต์ฐฉ ์ํ(DeaLock)
6. ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
1. PCB
PCB(Process Control Block)๋ ์ด์์ฒด์ ์์ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค.
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ PCB๋ฅผ ํตํด ํ๋ก์ธ์ค์ ์ํ, CPU ๋ ์ง์คํฐ ๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด ๋ฑ์ ์ถ์ ํฉ๋๋ค.
2. ์ค์ผ์ฅด๋ง
์ด์์ฒด์ ์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ณ , CPU ์์์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์ธ์ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ ๊ณผ์ ์ ๋๋ค.
- FCFS(First-Come, First-Served)
๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค ๋จผ์ ์ฒ๋ฆฌํฉ๋๋ค.
- SJF (Shortest Job First)
์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํฉ๋๋ค.
- Round Robin
๊ฐ ํ๋ก์ธ์ค์๊ฒ ๋์ผํ ์๊ฐ์ ํ ๋นํ๊ณ ๊ทธ ์๊ฐ์ด ๋๋๋ฉด ๋ค์ ๋๊ธฐ ํ ๋ค๋ก ๊ฐ๊ฒ ๋ฉ๋๋ค.
๋์ผํ ์๊ฐ์ ํ ๋นํ๋ ๊ฒ์ ํ์ ํํ (Time Quantum)์ด๋ผ๊ณ ์ด๋ ์์คํ ์ ํจ์จ์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋๋ฌด ์งง์ผ๋ฉด Context Switching์ด ์์ฃผ ๋ฐ์ํ์ฌ ์ค๋ฒํค๋๊ฐ ์ปค์ง๊ณ , ๋๋ฌด ๊ธธ๋ฉด ๋ฐ์ ์๋๊ฐ ๋จ์ด์ง ์ ์์ต๋๋ค.
- Priority Scheduling
๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋์ ์ฐ์ ์์์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์คํํฉ๋๋ค.
3. ํ๋ก์ธ์ค์ ์ฐ๋ ๋
ํ๋ก์ธ์ค(Process)๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด๊ณ , ์ค๋ ๋(Sread)๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์ ๋จ์์ ๋๋ค.
ํ๊ธ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ํ๋์ ํ๋ก์ธ์ค๊ฐ ์๊ณ , ๊ทธ ํ๊ธ ํ๋ก๊ทธ๋จ ์์์ ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ์์ ์ ํ๋ ์ค๋ ๋์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ ์ค๋ ๋ ๋ฑ๊ณผ ๊ฐ์ด ํ ํ๋ก์ธ์ค ์์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์ํ ์ ์๊ณ ์ด๋ฅผ ๋ฉํฐ ์ค๋ ๋ฉ(Multi-Sreading)์ด๋ผ๊ณ ํฉ๋๋ค.
4. Context Switching
CPU๊ฐ ํ๋์ ํ๋ก์ธ์ค์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ์ ํํ๋ ๊ณผ์ ์ ๋๋ค.
์ด ๊ณผ์ ์์ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ ์ฅํ๊ณ , ์๋ก ์คํํ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๋ณต์ํฉ๋๋ค.
5. ๊ต์ฐฉ ์ํ(DeadLock)
๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ ์๋ก ์์์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฌดํ ๋๊ธฐํ๋ ์ํฉ์ ๋๋ค.
- ๋ฐ์ ์กฐ๊ฑด
1. ์ํธ ๋ฐฐ์ (Mutual Exclusion)
2. ์ ์ ์ ๋๊ธฐ(Hold and Wait)
3. ๋น์ ์ (No Preemption)
4. ์ํ ๋๊ธฐ(Circular Wait)
- ํด๊ฒฐ ๋ฐฉ๋ฒ
1. ์๋ฐฉ(Prevetion)
2. ํํผ(Avoidance)
3. ํ์ง ๋ฐ ๋ณต๊ตฌ(Detection and Recovery)
6. ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ ์์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋, ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋ค ํ์ด์ง๋ฅผ ์ ๊ฑฐํ๊ณ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ก๋ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- FIFO(First-In-First-Out)
๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ํ์ด์ง๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊ต์ฒดํฉ๋๋ค.
- LRU(Least Recently Used)
๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒดํฉ๋๋ค.
- Optimal
๋ฏธ๋์ ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ๊ต์ฒดํฉ๋๋ค.
- Clock
FIFO๋ฅผ ๊ฐ์ ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํ ํ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง๋ฅผ ๊ต์ฒดํฉ๋๋ค.
์ฐธ๊ณ ์ฌ์ดํธ
[์ด์์ฒด์ ] PCB์ Context Switching
ํน์ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ์ด์์ฒด์ ๋ PCB์ ๋ด๊ธด ํ๋ก์ธ์ค ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ์ดํ๋ค.ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋ ๋ง๋ค ๊ณ ์ ์ PCB๊ฐ ์์ฑ๋์ด ๋ฉ์ธ ๋ฉ๋ชจ
velog.io
Deadlock(๊ต์ฐฉ ์ํ)์ ๊ฐ๋ ๊ณผ ๋ฐ์ ์์ธ
velog.io
[์ด์์ฒด์ ] ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
ํจ์คํธ์บ ํผ์ค ์ด์์ฒด์ ๊ฐ์์ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์ด์์ฒด์ ๊ต์ฌ์ ๋ํ TIL์ ๋๋ค. ์ ๋ฒ ํฌ์คํ ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์ ์ค ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ(Fetch) ์ ์ฑ ์ ๊ดํ ๊ฒ์ด์๋ค๋ฉด, ์ด๋ฒ ํฌ์คํ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ๋ฐฐ์น(R
rob-coding.tistory.com
๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์ !
ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋ค <3
'๐ CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DataStructure] ์ฐ์ ์์ ํ (feat. ํ) (0) | 2025.01.25 |
---|---|
[DataStructure] ํธ๋ฆฌ (0) | 2025.01.25 |
[DB] ํธ๋์ญ์ , SQL ์กฐ์์ด, JOIN, ์ ๊ทํ (0) | 2025.01.23 |
[DataStructure] ์คํ, ํ, ์ฐ๊ฒฐ ๋ฆฌ์คํธ (0) | 2025.01.23 |
[Web] ํด๋ผ์ด์ธํธ์ ์๋ฒ, ํ๋กํ ์ฝ, TCP/IP ํต์ , ์์ผ & ์น ์์ผ & HTTP, OSI 7๊ณ์ธต (0) | 2025.01.20 |