- ์ด์์ฒด์ ๋?
- ํ๋ก์ธ์ค์ ์ค๋ ๋ ์ฐจ์ด
- ๋ฉํฐ ํ๋ก์ธ์ค ๋์ ๋ฉํฐ ์ค๋ ๋ ์ฌ์ฉํ๋ ์ด์
- context switching๊ฐ๋ , ์ฌ์ฉ ์ด์
- ๋ฐ๋๋ฝ ์ ์, ๋ฐ์ ์กฐ๊ฑด
- bankerโs algorithm
- ์ธ๋งํฌ์ด๋?
- ๋ฎคํ ์ค๋?
- ํ์ด์ง์ด๋?
- ์ธ๊ทธ๋จผํ ์ด์ ์ด๋?
- CPU ์ค์ผ์ค๋ง
- ์บ์ ๋ฉ๋ชจ๋ฆฌ
๐ ์ด์์ฒด์ ๋
- ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ํ๋์จ์ด ์ฌ์ด์์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ฉฐ ์์คํ ์ ๋์์ ์ ์ดํ๋ ์์คํ ์ํํธ์จ์ด
- ์ญํ : ํ๋ก์ธ์ค ๊ด๋ฆฌ, ์ ์ฅ์ฅ์น ๊ด๋ฆฌ, ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ง์, ์ฌ์ฉ์ ๊ด๋ฆฌ, ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ
ํ๋ก์ธ์ค ๊ด๋ฆฌ: ์ด์์ฒด์ ์์ ์๋ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ, CPU๋ฅผ ์ ์ ํด์ผ ํ ํ๋ก์ธ์ค ๊ฒฐ์ , CPU๋ฅผ ํ๋ก์ธ์ค์ ํ ๋น, ํ๋ก์ธ์ค ๊ฐ ๊ณต์ ์์ ์ ๊ทผ๊ณผ ํต์ ๋ฑ์ ๊ด๋ฆฌ
์ ์ฅ์ฅ์น ๊ด๋ฆฌ: ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ์ ํ๋๋์คํฌ, NAND ๋ฑ ๊ด๋ฆฌ
๋คํธ์ํฌ ํ๋กํ ์ฝ ์ง์: TCP/IP ๊ธฐ๋ฐ ์ธํฐ๋ท์ ์ฐ๊ฒฐํ๊ฑฐ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํจ
์ฌ์ฉ์ ๊ด๋ฆฌ: ์ฌ์ฉ์ ๋ณ๋ก ๊ณ์ ๊ด๋ฆฌ, ํ์ผ, ์์คํ ์์์ ์ ๊ทผ ๊ถํ ์ง์
๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ ๊ด๋ฆฌ: ํ๋์จ์ด๋ฅผ ์ถ์ํํด์ฃผ๋ ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ค์ ๊ด๋ฆฌ
๐ ํ๋ก์ธ์ค์ ์ค๋ ๋

ํ๋ก์ธ์ค๋ง๋ค ์ต์ ํ๋์ ์ค๋ ๋ ์์
ํ๋ก์ธ์ค: ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์คํ์ค์ธ ์์ , ๊ฐ๊ฐ ๋ณ๋์ ์ฃผ์ ๊ณต๊ฐ ํ ๋น๋ฐ์ ์ฌ์ฉ
์ค๋ ๋: ํ๋ก์ธ์ค ์์์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ ๋จ์, ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต๊ฐ, ์์์ ๊ณต์
๋ฉํฐ ํ๋ก์ธ์ค: ํ๋์ ์ปดํจํฐ์ ์ฌ๋ฌ CPU๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ ํ๋ก์ธ์ค ๋ณ๋ ฌ ์ฒ๋ฆฌ
๋ฉํฐ ์ค๋ ๋: ํ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ์ค๋ ๋ ๊ตฌ์ฑํด ๊ฐ ์ค๋ ๋๊ฐ ํ๋์ ์์ ์ ์ฒ๋ฆฌ
๋ฉํฐํ๋ก์ธ์ค
(+): ๋ฉ๋ชจ๋ฆฌ ์นจ๋ฒ ๋ฌธ์ ๋ฅผ OS์ฐจ์์์ ํด๊ฒฐํด ์์ ์ฑ ๋ณด์ฅ
(-): ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ์ ธ ์์ ๋์ด ๋ง์์๋ก ์ค๋ฒํค๋ ๋ฐ์, Context Switching์ผ๋ก ์ฑ๋ฅ ์ ํ
๋ฉํฐ ์ค๋ ๋
(+): ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋งํผ ์๊ฐ, ์์ ์ด๋, ์ ์ญ ๋ณ์์ ์ ์ ๋ณ์์ ๋ํ ์๋ฃ ๊ณต์ ๊ฐ๋ฅ
(-): ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ธํด ์์ ์ฑ ๋ณด์ฅX, ํ๋์ ์ค๋ ๋๊ฐ ๋ฐ์ดํฐ ๊ณต๊ฐ ๋ง๊ฐ๋จ๋ฆฌ๋ฉด ๋ชจ๋ ์ค๋ ๋ ์๋ ๋ถ๊ฐ -> Critical Section ๊ธฐ๋ฒ์ผ๋ก ๋ณด์
๐ ํ๋ก์ธ์ค ์ฃผ์ ๊ณต๊ฐ
์ต๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ ๊ตฌ์ญ์ ๋๋
Code Segment: ํ๋ก๊ทธ๋จ ์์ค์ฝ๋ ์ ์ฅ
Data Segment: ์ ์ญ ๋ณ์ ์ ์ฅ
Stack Segment: ํจ์, ์ง์ญ ๋ณ์ ์ ์ฅ
๐ ์ธํฐ๋ฝํธ
- ํ๋ก๊ทธ๋จ ์คํ ๋์ค ์๊ธฐ์น ์์ ์ํฉ ๋ฐ์ ์ ํ์ฌ ์คํ ์ค์ธ ์์ ์ ์ค๋จํ๊ณ ๋ฐ์๋ ์ํฉ์ ๋ํ ์ฐ์ ์ฒ๋ฆฌ๊ฐ ํ์ํจ์ CPU์ ์๋ฆฌ๋ ๊ฒ
์ธ๋ถ ์ธํฐ๋ฝํธ: I/O ์ฅ์น, ํ์ด๋ฐ ์ฅ์น, ์ ์ ๋ฑ ์ธ๋ถ ์์ธ์ผ๋ก ๋ฐ์
๋ด๋ถ ์ธํฐ๋ฝํธ: ์๋ชป๋ ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ ์ฌ์ฉ ์ ๋ฐ์ ex) 0์ผ๋ก ๋๋๊ธฐ, ์ค๋ฒํ๋ก์ฐ ๋ฑ
์ํํธ์จ์ด ์ธํฐ๋ฝํธ: ํ๋ก๊ทธ๋จ ์ฒ๋ฆฌ ์ค ๋ช ๋ น์ ์์ฒญ์ ์ํด ๋ฐ์

ํด๋ง ๋ฐฉ์
์ธํฐ๋ฝํธ ๊ธฐ๋ฅ์ด ์์ ๋ ์ปจํธ๋กค๋ฌ๊ฐ ํน์ ์ด๋ค ์ผ์ ํ ์๊ธฐ๋ฅผ ์๊ธฐ ์ํด ์ฒดํฌํด์ผ ํจ, ์ฌ์ฉ์๊ฐ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ์ ๋ ฅ ํ์ ๊ฐ์ ๊ณ์ ์ฝ์ด ๋ณํ๋ฅผ ์์๋ด๋ ๋ฐฉ์
์ ์ํ๊ฒ ์ค์๊ฐ ๋์์ด ํ์ํ ๋ ํ์ ๊ธฐ๋ฅ
์ธํฐ๋ฝํธ
ํ๋์จ์ด๋ก ์ง์ ๋ฐ์์ผ ํ๋ ์ ์ฝ ์กด์ฌ, ๋ฐ์ ์๊ธฐ ์์ธก์ด ์ด๋ ค์ธ ๋ ๋น ๋ฅด๊ฒ ๋์ ๊ฐ๋ฅ
๐ ์์คํ ์ฝ
ํ๋ก์ธ์ค ์์ฑ๊ณผ ์ ์ด๋ฅผ ์ํจ
fork, exec: ์๋ก์ด ํ๋ก์ธ์ค ์์ฑ
wait: ํ๋ก์ธ์ค๊ฐ ๋ง๋ ์์ ํ๋ก์ธ์ค๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋ช ๋ น์ด
๐ PCB, Context Switching
ํ๋ก์ธ์ค ๊ด๋ฆฌ: ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ๊ฐ์ผ ๋ CPU ์ค์ผ์ค๋ง์ ํตํด ๊ด๋ฆฌ
PCB(Process Control Block)
ํ๋์ ํ๋ก์ธ์ค ๋ฉํ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ, interrupt๊ฐ ๋ฐ์ํด ์์ผ๋ก ๋ค์ ์ํํ ๋๊ธฐ์ค(waiting)์ธ ํ๋ก์ธ์ค์ ๊ดํ ๋ฐ์ดํฐ ์ ์ฅ
Context Switching
- CPU๊ฐ ์ด์ ์ ํ๋ก์ธ์ค ์ํ๋ฅผ PCB์ ๋ณด๊ดํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ PCB์์ ์ฝ์ด์ ๋ ์ง์คํฐ์ ์ ์ฌ
- ๋ฐ์ํ๋ ์ด์ : interrupt ๋ฐ์, ์คํ์ค์ธ CPU ์ฌ์ฉ ํ๊ฐ ์๊ฐ ๋ชจ๋ ์๋ชจ, ์ ์ถ๋ ฅ ๋๊ธฐ
- ์ค๋ฒํค๋๋ฅผ ๊ฐ์ํ๊ณ Context Switching ํ๋ ์ด์ : CPU๊ฐ ๊ณ์ํด์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋๋ก ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅธ ์ผ์ฒ๋ฆฌ ์ ๊ณต
๐ IPC
Inter Process Communication
- ์ปค๋์์ ์ ๊ณต๋๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ๋๋ ๋ฐฉ๋ฒ
- ์ข ๋ฅ: ์ต๋ช PIPE, Named PIPE, Message Queue, ๊ณต์ ๋ฉ๋ชจ๋ฆฌ, ๋ฉ๋ชจ๋ฆฌ ๋งต
- ์ต๋ช PIPE
- Named PIPE
- Message Queue
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ
- ๋ฉ๋ชจ๋ฆฌ ๋งต
๐ CPU ์ค์ผ์ค๋ง
CPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผ ์ ๋ฐฐ์ ํ๋ ๋ฐฉ๋ฒ
๋ชฉํ
- Batch System - ๊ฐ๋ฅํ ๋ง์ ์์ ์ฒ๋ฆฌ
- Interactive System - ๋น ๋ฅธ ์๋ต ์๊ฐ, ์ ์ ๋๊ธฐ ์๊ฐ
- Real-time System - ๊ธฐํ ๋ง์ถ๊ธฐ
์ ์ ์ค์ผ์ค๋ง
- Priority Scheduling: ์ ์ /๋์ ์ผ๋ก ์ฐ์ ์์ ๋ถ์ฌํ์ฌ ๋์ ์์๋๋ก ์ฒ๋ฆฌ, Starvation ๋ฐ์ ์ aging์ผ๋ก ํด๊ฒฐ
- Round Robin: FCFS์ ํ๋ก์ธ์ค๋ค์ ๋์ผ ์๊ฐ์ time quantum๋งํผ ํ ๋น ํ context switching
- Multilevel Queue: time quantum์ด ๊ฐ๊ฐ ์ค์ ๋ ์ฌ๋ฌ๊ฐ์ ํ๋ฅผ ์ด์ฉํด ํ๋ก์ธ์ค๋ฅผ ๊ฐ ํ์ ๋ณด๋ธ ํ ์คํ์ํด
- Multilevel Feedback Queue: time quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ ๋ค์ ํ๋ก ์ด๋, ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ํ์ฌ ํ์ ์ ์ง
๋น์ ์ ์ค์ผ์ค๋ง
- FCFS: ํ์ ๋์ฐฉํ ์์๋๋ก ์ํ
- SJF: ์ํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์์ ๋จผ์ ์ํ
- HRN: ์ฐ์ ์์๋ฅผ ๊ณ์ฐํ์ฌ SJF ๋ฐฉ์์ ์ ์ ๋ถํ๋ฑ ๋ณด์
์ค์ผ์ค๋ง ์ฒ๋
Response time: ์์ ์ด ์ฒ์ ์์๋๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
Turnaround time: ์คํ์๊ฐ๊ณผ ๋๊ธฐ์๊ฐ์ ํฉํ ์๊ฐ = ์์ ์๋ฃ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
๐ ๋ฐ๋๋ฝ
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์๋ก ์ํ๋ ์์์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์์ด ๋ฌดํ wait์ํ์ ๋น ์ ธ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ
์์คํ ์ ์ผ๋ก ํ์ ๋ ์์์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์

๋ฐ์ ์กฐ๊ฑด
- ์ํธ ๋ฐฐ์ : ์์์ ํ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- ์ ์ ๋๊ธฐ: ์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉํ๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํจ
- ๋น์ ์ : ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์์
- ์ํ ๋๊ธฐ: ํ๋ก์ธ์ค์ ์งํฉ์์ ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํจ
์ฒ๋ฆฌ ๋ฐฉ๋ฒ
- ์๋ฐฉ: ๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด ์ค์์ ํ๋์ฉ ์ ๊ฑฐํ๋ฉด์ ํด๊ฒฐ
- ์ํธ๋ฐฐ์ ๋ถ์ : ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์ ์ฌ์ฉ
- ์ ์ ๋๊ธฐ ๋ถ์ : ํ๋ก์ธ์ค ์คํ์ ๋ชจ๋ ์์์ ํ ๋น
- ๋น์ ์ ๋ถ์ : ์์ ์ ์ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ๊ฐ์ง ์์ ๋ฐ๋ฉ
- ์ํ๋๊ธฐ ๋ถ์ : ์์์ ๊ณ ์ ๋ฒํธ ํ ๋น ํ ์์๋๋ก ์์ ์๊ตฌ
- ํํผ
- ํ๋ก์ธ์ค๊ฐ ์์์ ์๊ตฌํ ๋ ์์คํ ์ ์์์ ํ ๋นํ ํ ์์ ์ํ์ธ์ง ์ฌ์ ์ ๊ฒ์ฌํ์ฌ ๊ต์ฐฉ ์ํ๋ฅผ ํํผ -> ์์ ์ํ์ด๋ฉด ์์ ํ ๋น, ์๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ์์ ํด์ง๋ฅผ ๋๊ธฐ
- ํ์ง: ์์ ํ ๋น ๊ทธ๋ํ๋ฅผ ํตํด ์์ ์์ฒญ ์ ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ์คํ์ํด
- ํ๋ณต: ๊ต์ฐฉ ์ํ๋ฅผ ์ผ์ผํจ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ๊ฑฐ๋ ํ ๋น๋ ์์์ ์ ์ ํด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น
๐ ๊ฒฝ์ ์ํ
๊ณต์ ์์์ ๋ํด ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ๊ทผํ ๋, ๊ฒฐ๊ณผ๊ฐ์ ์ํฅ์ ์ค ์ ์๋ ์ํ
๋ฐ์ ์ํฉ
- ์ปค๋ ์์
์ํ ์ค์ ์ธํฐ๋ฝํธ ๋ฐ์
-> ์ปค๋ ๋ชจ๋์์ ์์ ์ํํ๋ ๋์์ ์ธํฐ๋ฝํธ๋ฅผ disable์์ผ ํด๊ฒฐ
- ํ๋ก์ธ์ค๊ฐ 'System Call'์ ํ์ฌ ์ปค๋ ๋ชจ๋๋ก ์ง์ ํ์ฌ ์์ ์ ์ํํ๋ ๋์ค context switching์ด ๋ฐ์ํ ๋
-> ํ๋ก์ธ์ค๊ฐ ์ปค๋ ๋ชจ๋์์ ์์ ํ๋ ๊ฒฝ์ฐ ์๊ฐ์ด ์ด๊ณผ๋ผ๋ CPU์ ์ด๊ถ์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋์ด๊ฐ์ง ์๋๋ก ํ์ฌ ํด๊ฒฐ
- ๋ฉํฐ ํ๋ก์ธ์ ํ๊ฒฝ์์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ปค๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋
-> ์ปค๋ ๋ด๋ถ์ ๊ณต์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋๋ง๋ค lock/unlockํ์ฌ ํด๊ฒฐ
๐ ์ธ๋งํฌ์ด์ ๋ฎคํ ์ค
์ธ๋งํฌ์ด
๊ณต์ ๋ ์์์ ๋ฐ์ดํฐ์ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ํํ๋ ๋ฐฉ๋ฒ
์๊ณ ๊ตฌ์ญ(Critical Section)
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ฉฐ ์ํ๋ ๋, ๊ฐ ํ๋ก์ธ์ค์์ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ํ๋ก๊ทธ๋จ ์ฝ๋ ๋ถ๋ถ
ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ํํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๊ทผ ๋ง์์ผ ํจ
๋ฎคํ ์ค (์ํธ ๋ฐฐ์ )
์๊ณ ๊ตฌ์ญ์ ๊ฐ์ง ์ค๋ ๋๋ค์ ์คํ์๊ฐ์ด ์๋ก ๊ฒน์น์ง ์๊ณ ๊ฐ๊ฐ ๋จ๋ ์ผ๋ก ์คํ๋๊ฒ ํ๋ ๊ธฐ์
- lock : ํ์ฌ ์๊ณ ๊ตฌ์ญ์ ๋ค์ด๊ฐ ๊ถํ์ ์ป์ด์ด ( ๋ง์ฝ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ์๊ณ ๊ตฌ์ญ ์ํ ์ค์ด๋ฉด ์ข ๋ฃํ ๋๊น์ง ๋๊ธฐ )
- unlock : ํ์ฌ ์๊ณ ๊ตฌ์ญ์ ๋ชจ๋ ์ฌ์ฉํ์์ ์๋ฆผ. ( ๋๊ธฐ ์ค์ธ ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ ์ ์์ )
๋ฎคํ ์ค ์๊ณ ๋ฆฌ์ฆ
Dekker ์๊ณ ๋ฆฌ์ฆ
flag์ turn ๋ณ์๋ฅผ ํตํด ์๊ณ ๊ตฌ์ญ์ ๋ค์ด๊ฐ ํ๋ก์ธ์ค/์ค๋ ๋๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์
Peterson ์๊ณ ๋ฆฌ์ฆ
๋ฐ์ปค์ ์ ์ฌํ์ง๋ง, ์๋๋ฐฉ ํ๋ก์ธ์ค/์ค๋ ๋์๊ฒ ์ง์ ๊ธฐํ๋ฅผ ์๋ณดํ๋ ๊ฒ์ ์ฐจ์ด๊ฐ ์์
Bakery ์๊ณ ๋ฆฌ์ฆ
์ฌ๋ฌ ํ๋ก์ธ์ค/์ค๋ ๋์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ. ๊ฐ์ฅ ์์ ์์ ๋ฒํธํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์ง์ ํ๋ค.
๐ ํ์ด์ง, ์ธ๊ทธ๋จผํ ์ด์
๋ค์ค ํ๋ก๊ทธ๋๋ฐ ์์คํ ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์์ฉํ๊ธฐ ์ํด ์ฃผ๊ธฐ์ต์ฅ์น๋ฅผ ๋์ ๋ถํ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์ ์ด ํ์
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ
- ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ๊ณ ์ ๋ถํ ๊ธฐ๋ฒ: ์ฃผ๊ธฐ์ต์ฅ์น๊ฐ ๊ณ ์ ๋ ํํฐ์ ์ผ๋ก ๋ถํ -> ๋ด๋ถ ๋จํธํ ๋ฐ์
- ๋์ ๋ถํ ๊ธฐ๋ฒ: ํํฐ์ ๋ค์ด ๋์ ์์ฑ๋์ด ๊ฐ์ ํฌ๊ธฐ์ ํํฐ์ ์ ์ ์ฌ -> ์ธ๋ถ ๋จํธํ ๋ฐ์
- ๋ถ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
ํ์ด์ง: ๊ณ ์ ์ฌ์ด์ฆ์ ์์ ํ๋ก์ธ์ค ์กฐ๊ฐ (๊ณ ์ ํฌ๊ธฐ)
ํ๋ ์: ํ์ด์ง ํฌ๊ธฐ์ ๊ฐ์ ์ฃผ๊ธฐ์ต์ฅ์น ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ
๋จํธํ: ๊ธฐ์ต์ฅ์น์ ๋น ๊ณต๊ฐ์ด ์ฌ๋ฌ ์กฐ๊ฐ์ผ๋ก ๋๋๋ ํ์
๋ด๋ถ ๋จํธํ: ๋ถํ ๋ ์์ญ์ด ํ ๋น๋ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ณด๋ค ์ปค ์ฌ์ฉ๋์ง ์๊ณ ๋จ์์๋ ๋น ๊ณต๊ฐ
์ธ๋ถ ๋จํธํ: ๋ถํ ๋ ์์ญ์ด ํ ๋น๋ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ณด๋ค ์์ ๋น ๊ณต๊ฐ์ผ๋ก ๋จ์์๋ ์ ์ฒด ์์ญ
์ธ๊ทธ๋จผํธ: ์๋ก๋ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ ผ๋ฆฌ์ ๋ธ๋ก์ด ์ฐ์์ ๊ณต๊ฐ์ ๋ฐฐ์น๋๋ ๊ฒ (๊ฐ๋ณ ํฌ๊ธฐ)
- ํ์ด์ง: ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ๋ ์๋ค๊ณผ ๊ฐ์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๊ท ๋ฑ ํ์ด์ง๋ก ๋๋จ, ์๋์ ๋ด๋ถ ๋จํธํ ์กด์ฌ
- ์ธ๊ทธ๋จผํ ์ด์ : ๊ฐ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ์ธ๊ทธ๋จผํธ๋ค๋ก ๋๋จ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ ๊ฐ์ , ๋์ ๋ถํ ๋ก ์ค๋ฒํค๋ ๊ฐ์, ์ธ๋ถ ๋จํธํ ์กด์ฌ
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง: ํ์ํ ํ์ด์ง๊ฐ ์์ ๋ ๋ถ๋ฌ์ด, ์ธ๋ถ ๋จํธํ X, ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋ ๋ฐ์
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํ ์ด์ : ํ์ํ ์ธ๊ทธ๋จผํธ๊ฐ ์์ ๋ ๋ถ๋ฌ์ด, ๋ด๋ถ ๋จํธํ X, ๋ณต์กํ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ๋ก ์ค๋ฒํค๋ ๋ฐ์
๐ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ
์๊ตฌ ํ์ด์ง ๊ธฐ๋ฒ
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ํ์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ ์ฌ์ฉํ์ง ์๋ ๋ถ๋ถ์ ๊ทธ๋๋ก ๋
- ์๋ก์ด ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์์ฐ๋ ํ์ด์ง๋ฅผ outํ๊ณ ํด๋น ๊ณต๊ฐ์ ํ์ํ ํ์ด์ง๋ฅผ in
Page Reference String
CPU์ ์ฃผ์ ์๊ตฌ์ ๋ฐ๋ผ ํ์ด์ง ๊ฒฐํจ์ด ์ผ์ด๋์ง ์๋ ๋ถ๋ถ์ ์๋ตํ์ฌ ํ์ํ๋ ๋ฐฉ๋ฒ
- FIFO ์๊ณ ๋ฆฌ์ฆ
๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ์ด์ง๋ฅผ ๋จผ์ ๋ด๋ณด๋
์ฒ์ ํ๋ก์ธ์ค ์คํ๋ ๋ ์ ์ ํ ๋ฐฉ๋ฒ
- OPT ์๊ณ ๋ฆฌ์ฆ (Optimal)
์์ผ๋ก ์ฌ์ฉํ์ง ์์ ๊ฒ์ผ๋ก ์์๋๋ ํ์ด์ง๋ฅผ ๋จผ์ ๋ด๋ณด๋
ํด๋น ํ์ด์ง๊ฐ ์์ผ๋ก ์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ด ์์ผ๋ฏ๋ก ์ํํ๊ธฐ ์ด๋ ค์
- LRU ์๊ณ ๋ฆฌ์ฆ (Least-Recently-Used)
์ต๊ทผ ์ฌ์ฉํ์ง ์์ ํ์ด์ง๋ฅผ ๋จผ์ ๋ด๋ณด๋
์ค์ ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฅ ์ข์ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋
๊ต์ฒด ๋ฐฉ์
ํ์ด์ง ๊ต์ฒด ์
- ๋ฉ๋ชจ๋ฆฌ ์์ ๋ชจ๋ ํ๋ก์ธ์ค ํ์ด์ง๋ฅผ ๊ต์ฒด -> Global
- ๋ฉ๋ชจ๋ฆฌ ์์ ์๊ธฐ ํ๋ก์ธ์ค ํ์ด์ง์์๋ง ๊ต์ฒด -> Local
๐ ๋ฉ๋ชจ๋ฆฌ
๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ
- CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ๊ธฐ์ต ์ฅ์น
- ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ค๋ฉด ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ผ ํจ
MMU
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ฅ์น
- ๋ช ๋ น์ด ์ํ ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๊ฐ์ ธ์ด
- ๊ฐ์์ ๋ ผ๋ฆฌ ์ฃผ์๋ฅผ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ
- ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ, ์บ์ ๊ด๋ฆฌ ๋ฑ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ๊ฒ์ ๊ด๋ฆฌ
- ๋ฉ๋ชจ๋ฆฌ ๋ณดํธ: ํ ํ๋ก์ธ์ค์ ํฉ๋ฒ์ ์ธ ์ฃผ์ ์์ญ์ ์ค์ ํ๊ณ ์๋ชป๋ ์ ๊ทผ์ด ์ค๋ฉด trap ๋ฐ์์ํด
- ๋ฉ๋ชจ๋ฆฌ ๊ณผํ ๋น: ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ด์ฆ๋ณด๋ค ๋ ํฐ ์ฌ์ด์ฆ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ก์ธ์ค์ ํ ๋นํ ์ํฉ -> ํ๋ก์ธ์ค ์คํ ์ค ํ์ด์ง ํดํธ ๋ฐ์
- ํ์ด์ง ๊ต์ฒด
- ๋ฉ๋ชจ๋ฆฌ ๊ณผํ ๋น์ด ๋ฐ์ํ์ ๋ ํ๋ก์ธ์ค ํ๋๋ฅผ swap outํด์ ๋น ํ๋ ์ ํ๋ณด
- ์ฌ์ฉ์๊ฐ ๋์น์ฑ์ง ๋ชปํ๋๋ก ํ๋ ค๋ฉด ํ์ด์ง ๊ต์ฒด ์ ์ค๋ฒํค๋๋ฅผ ์ค์ฌ์ผ ํจ -> 1) ๋นํธ๋ฅผ ํ์ฉํด ๋์คํฌ์ ๊ธฐ๋กํ๋ ํ์๋ฅผ ์ค์ฌ ์ค๋ฒํค๋ ์ค์, 2) ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ์ ํ
์บ์ ๋ฉ๋ชจ๋ฆฌ
- ์ฃผ๊ธฐ์ต ์ฅ์น์ ์ ์ฅ๋ ๋ด์ฉ์ ์ผ๋ถ๋ฅผ ์์๋ก ์ ์ฅํด๋๋ ๊ธฐ์ต์ฅ์น
- CPU์ ์ฃผ๊ธฐ์ต์ฅ์น์ ์๋ ์ฐจ์ด๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ
- ์ง์ญ์ฑ: ๊ธฐ์ต์ฅ์น ๋ด์ ์ ๋ณด๋ฅผ ํ ์๊ฐ ํน์ ๋ถ๋ถ์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ํน์ฑ
- ์๊ฐ ์ง์ญ์ฑ: ์ต๊ทผ ์ฐธ์กฐ๋ ์ฃผ์์ ๋ด์ฉ์ ๋ค์์๋ ์ฐธ์กฐ๋จ
- ๊ณต๊ฐ ์ง์ญ์ฑ: ์ค์ ํ๋ก๊ทธ๋จ์ด ์ฐธ์กฐ๋ ์ฃผ์์ ์ธ์ ํ ์ฃผ์์ ๋ด์ฉ์ด ๋ค์์๋ ์ฐธ์กฐ๋จ
- ์บ์ฑ ๋ผ์ธ: ์บ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํด ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํจ๊ป ์ ์ฅํ์ฌ ๋น ๋ฅด๊ฒ ์ํ๋ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์๋๋ก ํจ
๐ ํ์ผ ์์คํ
- ์ปดํจํฐ์์ ํ์ผ์ด๋ ์๋ฃ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ์ ์ง, ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
- ํน์ง: ์ปค๋ ์์ญ์์ ๋์, ๊ณ์ธต์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ, ๋์คํฌ ํํฐ์ ๋ณ๋ก ํ๋์ฉ ๋ ์ ์์
- ์ญํ : ํ์ผ ๋ฐ ๋ณด์กฐ ์ ์ฅ์ ๊ด๋ฆฌ, ํ์ผ ๋ฌด๊ฒฐ์ฑ ๋ฉ์ปค๋์ฆ, ์ ๊ทผ ๋ฐฉ๋ฒ ์ ๊ณต
- ๋ชฉ์ : ํ๋๋์คํฌ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์๋์ฐจ ์ ๊ฐ, ํ์ผ ๊ด๋ฆฌ, ํ๋๋์คํฌ ํจ์จ์ ์ผ๋ก ์ด์ฉ
- ๊ตฌ์กฐ
- ๋ฉํ ์์ญ: ๋ฐ์ดํฐ ์์ญ์ ๊ธฐ๋ก๋ ํ์ผ ์ด๋ฆ, ์์น, ํฌ๊ธฐ ๋ฑ ํ์ผ ์ ๋ณด
- ๋ฐ์ดํฐ ์์ญ: ํ์ผ์ ๋ฐ์ดํฐ
์ ๊ทผ ๋ฐฉ๋ฒ
- ์์ฐจ ์ ๊ทผ: ํฌ์ธํฐ๋ฅผ ์์ผ๋ก ๋ณด๋ด๋ฉด์ read, write -> ๋ค๋ก ๋์๊ฐ ๋๋ ์ง์ ํ offset๋งํผ ๋๊ฐ๊ธฐ
- ์ง์ ์ ๊ทผ: ํ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ cp ๋ณ์๋ฅผ ์ฌ์ฉํด ํน๋ณํ ์์ ์์ด ๋น ๋ฅด๊ฒ ๋ ์ฝ๋๋ฅผ read, write ๊ฐ๋ฅ
- ๊ธฐํ ์ ๊ทผ: ์ง์ ์ ๊ทผ ํ์ผ์ ๊ธฐ๋ฐ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ถํ์ฌ ํฌ๊ธฐ๊ฐ ํฐ ํ์ผ์ ์ ์ถ๋ ฅ ํ์ ๊ฐ๋ฅ
๋๋ ํ ๋ฆฌ์ ๋์คํฌ ๊ตฌ์กฐ
- 1๋จ๊ณ ๋๋ ํ ๋ฆฌ: ์ ์ผํ ์ด๋ฆ์ ๊ฐ์ง, ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ฌ๋ ๊ฐ์ ์ด๋ฆ ์ฌ์ฉ ๋ถ๊ฐ
- 2๋จ๊ณ ๋๋ ํ ๋ฆฌ: ์ฌ์ฉ์๋ณ๋ก ๊ฐ๋ณ์ ์ธ ๋๋ ํ ๋ฆฌ ์กด์ฌ
- ํธ๋ฆฌ ๊ตฌ์กฐ ๋๋ ํ ๋ฆฌ: ๋นํธ๋ฅผ ํ์ฉํ์ฌ ์ผ๋ฐ ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ ํ์ผ ๊ตฌ๋ถ
- ๊ทธ๋ํ ๊ตฌ์กฐ ๋๋ ํ ๋ฆฌ: ์ํ์ด ๋ฐ์ํ์ง ์๋๋ก ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ํ์ผ์ ๋ํ ๋งํฌ๋ง ํ์ฉํ๊ฑฐ๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ด์ฉํด ์ ์ฒด ํ์ผ ์์คํ ์ ์ํํ๊ณ ์ ๊ทผ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ์ ํ์
์ถ์ฒ: https://gyoogle.dev/blog/interview/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C.html
'Job > Interview' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ (0) | 2022.04.14 |
---|---|
IT ๊ธฐ์ ๋ฉด์ ํ์ ์ง๋ฌธ ์ ๋ฆฌ (0) | 2022.04.14 |
๋๊ธ