๐ป ์ด์์ฒด์ : Operating System
โป๏ธ ๋ฉ๋ชจ๋ฆฌ
๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ์์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฒ๋ฆฌ ๋์์ด๋ ๊ฒฐ๊ณผ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ์ ๋ณด๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์ฒ๋ฆฌ๋๋ค.
๐ ๐ ๐
โป๏ธ ํ๋ก์ธ์ค
โ๏ธ ์ ์: ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ.
โ๏ธ ํน์ง: ์ด์์ฒด์ ๋ก๋ถํฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น ๋ฐ๋๋ค. / ํ๋ก์ธ์ค๋ค์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํต์ ํ๊ธฐ ์ํด IPC๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. / ํ๋ก์ธ์ค๋ ์ต์ 1๊ฐ ์ด์์ ์ค๋ ๋(๋ฉ์ธ ์ค๋ ๋)๋ฅผ ๊ฐ์ง๊ณ ์๋ค./ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋ ์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ๋น๋ฐ๊ฒ ๋๋๋ฐ, ํ๋ก์ธ์ค๋ง๋ค ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ์์ญ, Code/Data/Stack/Heap์ ํ์์ผ๋ก ํ ๋นํด์ค๋ค.
- Data: ์ ์ญ ๋ณ์์ static ๋ณ์๊ฐ ํ ๋น๋๋ ์์ญ. ํ๋ก๊ทธ๋จ์ ์์๊ณผ ๋์์ ํ ๋น๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ด์ผ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ฉธ๋๋ค.
- Stack: ํจ์ ํธ์ถ ์ ์์ฑ๋๋ ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ณต๊ท์ฃผ์์ ๊ฐ์ ์์ ์๋ฃ๋ค์ ๊ฐ์ง๋ค. ํจ์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์ฌ๋ผ์ง๋ค.
- Heap: ํ๋ก์ธ์ค ์คํ ์ค์ ๋์ ์ผ๋ก ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ
โ๏ธ ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค์ ์ฐจ์ด
- ํ๋ก๊ทธ๋จ: ์ปดํ์ผ ์ฝ๋, ์ ์ญ๋ณ์, ๋ฌธ์์ด, ๋ฌธ์์ด ์์ ๋ฑ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ์ ์ ์ธ ๊ฐ์ฒด
- ํ๋ก์ธ์ค: ์คํ, ํ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ, ๋ ์ง์คํฐ์ฒ๋ผ ํ์ฌ ๊ด๋ฆฌํ๋ ์์ ์ ๋ณด๋ฅผ ๊ฐ์ง ๋์ ์ธ ๊ฐ์ฒด
โ๏ธ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)
ํน์ ํ๋ก์ธ์ค์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ ์ด์์ฒด์ ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค ์์ฑ๊ณผ ๋์์ ๊ณ ์ ํ PCB๋ฅผ ์์ฑํ๋ค. ํ๋ก์ธ์ค๋ ์ ํ์ด ๋ฐ์ํ๋ฉด ์งํํ๋ ์์ ์ PCB์ ์ ์ฅํ๋ฉฐ, ๋ค์ CPU๋ฅผ ํ ๋น๋ฐ์ ์์ ์ ์์ํ ๋ PCB์ ์ ์ฅ๋์ด ์๋ ๋ด์ฉ์ ๋ถ๋ฌ์ ์ด์ ์ ์ข ๋ฃ๋์๋ ์์ ๋ถํฐ ๋ค์ ์์ ์ ์ํํ๋ค.
โป๏ธ ์ค๋ ๋
โ๏ธ ์ ์: ํ๋ก๋ ์ค ๋ด์์ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํด ๋์ํ๋ ์คํ ๋จ์
โ๏ธ ํน์ง: ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ Stack๋ง ๋ฐ๋ก ํ ๋น ๋ฐ๊ณ , Code/Data/Heap ์์ญ์ ๊ณต์ ํ๋ค. Stack์๋ ํจ์์ ํธ์ถ ์ ๋ณด๊ฐ ์ ์ฅ๋๋๋ฐ, ์คํ์ ๊ณต์ ํ๊ฒ ๋๋ฉด LIFO๊ตฌ์กฐ์ ์ํด ์คํ ์์๊ฐ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ ์คํ ํ๋ฆ์ ์ํํ๊ฒ ํ๊ธฐ ์ํ์ฌ Stack๋ง ๋ฐ๋ก ๋ถ๋ฆฌํ๋ค. ๋ฐ๋ผ์ Stack์ ๋ถ๋ฆฌํ๋ค๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ธ ํจ์ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๊ณ , ์ด๋ ๋ ๋ฆฝ์ ์ธ ์คํํ๋ฆ์ด ์ถ๊ฐ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์ค๋ ๋์ ์ ์์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ธ ์คํํ๋ฆ์ ์ถ๊ฐํ๊ธฐ ์ํ ์ต์์กฐ๊ฑด์ผ๋ก ๋ ๋ฆฝ๋ ์คํ์ ํ ๋นํ๋ค./ ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ์์์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ค๋ ๋์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํ ์ ์๋ค. / ํ๋ก์ธ์ค ๋ด์ ์กด์ฌํ๋ฉฐ, ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ์ฌ ์คํ๋๋ค.
๐ ๐ ๐
โป๏ธ Context Switching ์ปจํ ์คํธ ์ค์์นญ
Context Switching์ด๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ณผ์ ์ด๋ค. ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ์ํ(Context)๋ฅผ ๋จผ์ ์ ์ฅํ๊ณ , ๋ค์ ํ๋ก์ธ์ค๋ฅผ ๋์์์ผ ์์ ์ ์ฒ๋ฆฌํ ํ์ ์ด์ ์ ์ ์ฅ๋ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๋ณต๊ตฌํ๋ค. ์ฌ๊ธฐ์ ์ธํฐ๋ฝํธ๋ CPU๊ฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ์์ ๋, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํจ์ CPU์๊ฒ ์๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
โป๏ธ ๋ฉํฐ ํ๋ก์ธ์ค
โ๏ธ ๋ฉํฐ ํ๋ก์ธ์ค: ํ๋์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ํ๋ก์ธ์ค๊ฐ 1๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ.
โ๏ธ ํน์ง: 1๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ์์ ํ๋ก์ธ์ค ์ด์ธ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ๊ณ์ ์คํ๋๋ค. (์ฅ์ )/ Context Switching์ ์ํ ์ค๋ฒํค๋(์บ์ ์ด๊ธฐํ, ์ธํฐ๋ฝํธ ๋ฑ)๊ฐ ๋ฐ์ํ๋ค./ ํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์๊ธฐ ๋๋ฌธ์ ํต์ ํ๋ ๊ฒ์ด ์ด๋ ต๋ค./ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๊ณผ CPU ์๊ฐ์ ์ฐจ์งํ๋ค.
โป๏ธ ๋ฉํฐ ์ค๋ ๋
โ๏ธ ๋ฉํฐ์ค๋ ๋: ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ์ค๋ ๋๊ฐ 1๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๊ฒ.
โ๏ธ ํน์ง: ํ๋ก์ธ์ค๋ฅผ ์ํด ์์์ ํ ๋นํ๋ ์์คํ ์ฝ์ด๋ Context Switching์ ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์๋ค./ ์ค๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์, ํต์ ์ด ์ฝ๊ณ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค./ ํ๋์ ์ค๋ ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ ์ฒด ํ๋ก์ธ์ค๊ฐ ์ํฅ์ ๋ฐ๋๋ค/ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ํ๋์ ์์์ ๋์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ ์์ ๊ณต์ (๋๊ธฐํ)์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๐ ๐ ๐
โป๏ธ DeadLock ๊ต์ฐฉ์ํ
ํ์ ๋ ์์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๊ณ ์ ํ ๋ ๋ฐ์ํ๋ ์ํฉ์ผ๋ก, ํ๋ก์ธ์ค๊ฐ ์์์ ์ป๊ธฐ ์ํด ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฌ๋ ์ํ๋ฅผ ๋ปํ๋ค. ์์ A๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค P1๊ณผ ์์ B๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค P2๊ฐ ์์ ๋, P1์ B๋ฅผ, P2๋ A๋ฅผ ํ์๋ก ํ๋ค๋ฉด ๋ ํ๋ก์ธ์ค๋ ์๋ก ์์์ ์ป๊ธฐ ์ํด ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ค.
โ๏ธ ์กฐ๊ฑด
- ์ํธ๋ฐฐ์ : ํ ์์์ ๋ํ ์ฌ๋ฌ ํ๋ก์ธ์ค/์ค๋ ๋์ ๋์ ์ ๊ทผ ๋ถ๊ฐ
- ์ ์ ์ ๋๊ธฐ: ์์์ ๊ฐ์ง๊ณ ์๋ ์ํ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๊ณ ์๋ ์์์ ๋ฐ๋ฉ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ.
- ๋น์ ์ : ๋ค๋ฅธ ํ๋ก์ธ์ค/์ค๋ ๋์ ์์์ ๊ฐ์ ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒ.
- ์ํ ๋๊ธฐ: ๊ฐ ํ๋ก์ธ์ค๊ฐ ์ํ์ ์ผ๋ก ๋ค์ ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ์์์ ๊ฐ์ง๊ณ ์๋ ๊ฒ
โ๏ธ ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์๋ฐฉ: ๋ฐ๋๋ฝ์ด ๋ฐ์ํ๋ ๋ค ๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋๋ฅผ ํด๊ฒฐํ๋ค. ์์ ์ฌ์ฉ์ ํจ์จ์ฑ์ด ๋จ์ด์ง๊ณ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฌธ์ ์ ์ด ์๋ค.
- ํํผ: ๋ฐ์์กฐ๊ฑด์ ์์ ๊ธฐ ๋ณด๋ค๋ ๋ฐ์ํ์ง ์๋๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ. ์์ํ ๋น ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ/์ํ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค.
- ํ๋ณต: ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์์ ๋ง์ง ์๊ณ , ๋ฐ์ ์ดํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ.
- ๋ฌด์: ๊ต์ฐฉ์ํ๋ฅผ ํด๊ฒฐํ ๋์๋ ๋ฌธ๋งฅ๊ตํ์ ์ํ ์ค๋ฒํค๋๋ก ์ฑ๋ฅ ์ ํ๊ฐ ์๊ธฐ๋๋ฐ, ๊ต์ฐฉ์ํ์ ์ํ ์ฑ๋ฅ ์ ํ๋ณด๋ค ์ด๋ฅผ ํด๊ฒฐํ ๋์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ ํฐ ๊ฒฝ์ฐ, ๊ทธ๋ฅ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ.
๐ ๐ ๐
โป๏ธ CPU ์ค์ผ์ค๋ง
โ๏ธ ์ค์ผ์ค๋ง(Scheduling)
- ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์คํ๋ ๋ ํ์ํ ์์คํ ์ ์ฌ๋ฌ ์์์ ํด๋น ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ๋ ์์
- CPU๋ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
- ์ฅ๊ธฐ ์ค์ผ์ฅด๋ง, ์ค๊ธฐ ์ค์ผ์ฅด๋ง, ๋จ๊ธฐ ์ค์ผ์ฅด๋ง์ผ๋ก ๊ตฌ๋ถ๋๋ค.
โ๏ธ ์ ์ ์ค์ผ์ค๋ง
ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํํ๊ณ ์์ ๋, ์ฐ์ ์์๊ฐ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ.
- ์ฃผ๋ก ๋น ๋ฅธ ์๋ต์๊ฐ์ ์๊ตฌํ๋ ๋ํ์ ์๋ถํ ์์คํ ์ ์ฌ์ฉ๋๋ค.
- ์ฅ์ : ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
- ๋จ์ : ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๊ฐ ์๊ธธ ๋๋ง๋ค ๊ณ์ ๋ฌธ๋งฅ๊ตํ์ด ์ผ์ด๋๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ํฌ๋ค.
- ๋ผ์ด๋๋ก๋น: FCFS๋ฅผ ์ ์ ํํ๋ก ๋ณํํ ๊ธฐ๋ฒ. ๋ชจ๋ ํ๋ก์ธ์ค๋ ๋์ผํ ํ ๋น์๊ฐ์ ๊ฐ์ง๋ฉฐ, ํ ๋น ์๊ฐ์ด ์ง๋๋ฉด ํ๋ก์ธ์ค๋ ์ ์ ๋๊ณ ์ค๋น ํ์ ๋งจ๋ค๋ก ๋ค์ ๋ค์ด๊ฐ๊ฒ ๋๋ค. ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ต์ด ์๋ต์๊ฐ์ ๋น ๋ฅด๊ฒ ๋ณด์ฅ๋ฐ์ ์ ์๋ค. ์ค์ ํ ํ ๋น ์๊ฐ์ด ๋๋ฌด ์ปค์ง๋ฉด ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ์ํด CPU์ ํจ์จ์ฑ์ด ๋จ์ด์ง๊ฒ ๋๊ณ , ํ ๋น ์๊ฐ์ด ๋๋ฌด ์์์ง๋ฉด ์ฆ์ ๋ฌธ๋งฅ๊ตํ์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค.
- SRT: SJF๋ฅผ ์ ์ ํํ๋ก ๋ณํํ ๊ธฐ๋ฒ. ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๊ณผ ์ค๋น์ํ ํ์ ์๋ก ๋์ฐฉํ ํ๋ก์ธ์ค์ ์คํ์๊ฐ์ ๋น๊ตํ์ฌ ๊ฐ์ฅ ์งง์ ์คํ์๊ฐ์ ์๊ตฌํ๋ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋น.
- ์ ์ ์ฐ์ ์์
- ๋ค๋จ๊ณ ํ
- ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ
โ๏ธ ๋น์ ์ ์ค์ผ์ค๋ง
์ด๋ฏธ ํ ๋น๋ CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ฅด๋ง ๊ธฐ๋ฒ. ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ๊ฒฝ์ฐ ํด๋น ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋ ๋๊น์ง ์ธํฐ๋ฝํธ์์ด CPU๋ฅผ ์ฌ์ฉํ๋ค.
- ์ผ๊ด์ฒ๋ฆฌ ๋ฐฉ์์ ์ ํฉํ๋ค.
- ์ฅ์ : ํ๋ก์ธ์ค ์๋ต์๊ฐ์ ์์ธกํ๊ธฐ ์ฝ๋ค.
- ๋จ์ : ์ค์ํ ์์ ์ด ์ค์ํ์ง ์์ ์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- FCFS: ๋จผ์ CPU๋ฅผ ์์ฒญํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- SJF: ์คํ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค์ ๋จผ์ CPU๋ฅผ ํ ๋น
- ์ฐ์ ์์:
- HRN: ์คํ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ๋ถ๋ฆฌํ SJF ๊ธฐ๋ฒ์ ๋ณด์ํ๊ธฐ ์ํจ. ๋๊ธฐ ์๊ฐ๊ณผ ์คํ์๊ฐ์ ์ด์ฉํจ.
- ๊ธฐํ๋ถ
๐ ๐ ๐
๐ CS ์ง๋ฌธ ์ ๋ฆฌ
1. ์ด์์ฒด์ ๋ ๋ฌด์์ ๋๊น?
์ด์์ฒด์ ๋ ์ปดํจํฐ ํ๋์จ์ด๊ฐ ์ํํธ์จ์ด์ ํต์ ํ๊ณ ์๋ํ๋๋ก ํ๋ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ ๋๋ค.
2. ์ด์์ฒด์ ์ ์ฃผ์ ๋ชฉ์ ์ ๋ฌด์์ ๋๊น?
์ปดํจํฐ ์์คํ ์ ๊ณ์ฐํ๋์ ๊ด๋ฆฌํ์ฌ ์ปดํจํฐ ์์คํ ์ด ์ ๋๋ก ์๋ํ๋๋ก ํ๋ค.
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐ ์คํ์ ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
3. ํ๋ก์ธ์ค๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ.
4. ํ๋ก์ธ์ค์ ํน์ง์ ์ค๋ช ํ์ธ์.
์ด์์ฒด์ ๋ก๋ถํฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ์ผ๋ฉฐ, ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค๊ฐ ํต์ ์ ์ํด์๋ IPC๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ํ๋ก์ธ์ค๋ ์ต์ ํ ๊ฐ ์ด์์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋๋ง๋ค ์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ๋น๋ฐ๊ฒ ๋๋๋ฐ, ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ์์ญ์ผ๋ก Code/Stack/Data/Heap ํ์์ผ๋ก ํ ๋น๋ฐ์ต๋๋ค.
5. ์ค๋ ๋๋ ๋ฌด์์ ๋๊ฐ?
ํ๋ก์ธ์ค ๋ด์์ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํด ๋์ํ๋ ์คํ ๋จ์.
6. ์ค๋ ๋์ ํน์ง์ ์ค๋ช ํ์ธ์.
ํ๋ก์ธ์ค ๋ด์์ stack๋ง ๋ฐ๋ก ํ ๋น๋ฐ๊ณ , ๋๋จธ์ง ์์์ ๋ชจ๋ ๊ณต์ ํฉ๋๋ค. stack์๋ ํจ์ ํธ์ถ ์ ๋ณด๊ฐ ์ ์ฅ๋๋๋ฐ, stack์ LIFO๊ตฌ์กฐ์ ์ํด ์คํ ์์๊ฐ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ ์คํํ๋ฆ์ ์ํํ๊ฒ ํ๊ธฐ ์ํ์ฌ stack๋ง ๋ฐ๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๋ฐ๋ผ์ stack๋ง ๋ฐ๋ก ๋ถ๋ฆฌ๋๋ค๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ธ ํจ์ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์ค๋ ๋์ ์ ์์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ธ ์คํํ๋ฆ์ ์ถ๊ฐํ๊ธฐ ์ํ ์ต์์กฐ๊ฑด์ผ๋ก ๋ ๋ฆฝ๋ ์คํ์ ํ ๋นํฉ๋๋ค.
7. ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด๋ ๋ฌด์์ ๋๊น?
8. ์ค๋ ๋์ ์ฅ์ ์ด๋?
ํ๋ก์ธ์ค๋ณด๋ค ์์ฑ ๋ฐ ์ข ๋ฃ์๊ฐ, ์ค๋ ๋๊ฐ ์ ํ์๊ฐ์ด ์งง์ต๋๋ค.
ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ, ์์ ๋ฑ์ ๊ณต์ ํ๋ฏ๋ก ์ปค๋์ ๋์์์ด ์ํธ ๊ฐ์ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
9. ๋ฉํฐ ์ค๋ ๋ฉ์ ์ฅ์ ๊ณผ ๋จ์ ์?
ํ๋์ ํ๋ก์ธ์ค ๋ด์ ๋ค์์ ์คํ ๋จ์๋ค์ด ์กด์ฌํ์ฌ ์์ ์ ํ์ํ ์์๋ค์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์์์ ์์ฑ๊ณผ ๊ด๋ฆฌ๊ฐ ์ค๋ณต๋๋ ๊ฒ์ ์ค์ผ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค./ ๊ต์ฐฉ์ํ๋ฅผ ๋ฐ์์ํฌ ์ ์์ผ๋ฉฐ, ๋๊ธฐํ์ ์ฃผ์ํด์ผํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
10. ๋ฉํฐ ํ๋ก์ธ์ค ๋์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ.
ํ๋ก์ธ์ค๋ฅผ ์์ฑํ์ฌ ์์์ ํ ๋นํ๋ ์์คํ ์ฝ์ด ์ค์ด ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์์คํ ์์ ์๋ชจ๊ฐ ์ค์ด๋ค๊ฒ ๋๋ค.
์ฒ๋ฆฌ๋น์ฉ ๊ฐ์ ๋ฐ ์๋ต์๊ฐ ๋จ์ถ์ ์ฅ์ ๋ ์๋ค. ์์๊ณต์ ๋ก ์ธํด ์ค๋ ๋๊ฐ ํต์ ๋น์ฉ์ด ๋ ์ ๊ฒ ๋ค๊ณ , ๋ context switching์์ ์ค๋ ๋๋ ์คํ์์ญ๋ง ์ฒ๋ฆฌํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ ํ ์๋๊ฐ ํ๋ก์ธ์ค๋ณด๋ค ๋ ๋น ๋ฅด๋ค.
11. ๋ฉํฐ ํ๋ก์ธ์ฑ๊ณผ ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด๋?
๋ฉํฐ ํ๋ก์ธ์ฑ์ ์ฌ๋ฌ๊ฐ์ ์ฒ๋ฆฌ์ฅ์น(CPU)๋ฅผ ์ฅ์ฐฉํ์ฌ ๋์์ ์ฌ๋ฌ ์์ ์ ๋ณ๋ ฌ๋ก ์คํํ๋ ๋ฐฉ๋ฒ.
๋ฉํฐ ํ๋ก๊ทธ๋จ์ ๋ค์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๊ฐ์ด ์ฃผ๊ธฐ์ต์ฅ์น์ ์๋๋ก ํ ๋ฐฉ์.
12. ๊ต์ฐฉ์ํ๋ ๋ฌด์์ธ๊ฐ?
ํ์ ๋ ์์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๊ณ ์ ํ ๋ ๋ฐ์ํ๋ ์ํฉ์ผ๋ก, ํ๋ก์ธ์ค๊ฐ ์์์ ์ป๊ธฐ ์ํด ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋ค๋ฆฌ๋ ์ํ๋ฅผ ๋ปํ๋ค. ์์ A๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค P1๊ณผ ์์ B๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค P2๊ฐ ์์ ๋, P1์ B๋ฅผ, P2๋ A๋ฅผ ํ์๋ก ํ๋ค๋ฉด ๋ ํ๋ก์ธ์ค๋ ์๋ก ์์์ ์ป๊ธฐ ์ํด ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ค.
13. ๊ต์ฐฉ์ํ์ 4๊ฐ์ง ํ์ ์กฐ๊ฑด์?
์ํธ๋ฐฐ์ฒด, ์ ์ ์ ๋๊ธฐ, ๋น์ ์ , ํํ๋๊ธฐ
14. ๊ต์ฐฉ์ํ์ ํด๊ฒฐ๋ฐฉ๋ฒ์?
์๋ฐฉ, ํํผ, ํ๋ณต, ๋ฌด์
15. ์ค์ผ์ค๋ง์ด๋?
ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์คํ๋ ๋, ์์ ์ ํ์ํ ์์คํ ์ ์ฌ๋ฌ ์์์ ํด๋น ํ๋ก์ธ์ค์ ํ ๋นํ๋ ๋ฐฉ๋ฒ
16. cpu ์ค์ผ์ค๋ง์ด๋?
CPU ํ๋๋ ๋์์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋์ง ๊ฒฐ์ ํ๋ ์ ์ฑ ์ ๋๋ค.
17. cpu ์ค์ผ์ค๋ง์ ์ธ์ ๋ฐ์ํ๋๊ฐ?
์คํ์ํ์์ ๋๊ธฐ์ํ๋ก ์ ํ๋ ๋(์ ์ถ๋ ฅ ์์ฒญ)
์คํ์ํ์์ ์ค๋น์ํ๋ก ์ ํ๋ ๋(์ธํฐ๋ฝํธ ๋ฐ์)
๋๊ธฐ์ํ์์ ์ค๋น์ํ๋ก ์ ํ๋ ๋(์ ์ถ๋ ฅ ์ข ๋ฃ)
์ข ๋ฃ๋ ๋
18. cpu ์ค์ผ์ค๋ง์ ์ข ๋ฅ๋ฅผ ์ค๋ช ํ์์ค.
๋น์ ์ ์ค์ผ์ค๋ง/ ์ ์ ์ค์ผ์ค๋ง
19. ๋ฌธ๋งฅ๊ตํ์ด๋ ๋ฌด์์ธ๊ฐ?
Context Switching์ด๋ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์์ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ณผ์ ์ด๋ค. ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ์ํ(Context)๋ฅผ ๋จผ์ ์ ์ฅํ๊ณ , ๋ค์ ํ๋ก์ธ์ค๋ฅผ ๋์์์ผ ์์ ์ ์ฒ๋ฆฌํ ํ์ ์ด์ ์ ์ ์ฅ๋ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๋ณต๊ตฌํ๋ค. ์ฌ๊ธฐ์ ์ธํฐ๋ฝํธ๋ CPU๊ฐ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ์์ ๋, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ์์ธ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํจ์ CPU์๊ฒ ์๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
20. ๊ธฐ์ํ์์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์?
21. ํ๋ก์ธ์ค๊ฐ ํต์ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์๋์ง ์ข ๋ ์์ธํ ์ค๋ช ํ๋ผ.
22. PCB๋ ๋ฌด์์ธ๊ฐ?
23. ์ค๋ ๋ ์ธ์ดํ๋?
๐ ๐ ๐
๏ผฐ๏ฝ๏ฝ๏ฝ๏ฝ ๏ฝ ๏ผข๏ฝ ๏ผณ๏ผก๏ผน
๐๐ฉ๐ข๐ฏ๐ฌ๐ด ๐ง๐ฐ๐ณ ๐ณ๐ฆ๐ข๐ฅ๐ช๐ฏ๐จ
'Programming > ์ทจ์ ์ค๋น&CS Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS ์คํฐ๋ #03] ๋คํธ์ํฌ-OSI 7๊ณ์ธต๊ณผ ๊ด๋ จ ํ๋กํ ์ฝ (0) | 2021.11.15 |
---|---|
[๋ฉด์ ์ค๋น] ๊ฐ๋ฐ์ "๊ธฐ์ " ๊ด๋ จ ๊ณตํต ์ง๋ฌธ๋ค ๋ชจ์ (0) | 2021.11.13 |
๋ฐ์ดํฐ ํฌ๋งท ์ ๋ฆฌ/ CSV, XML, JSON์ด๋ ๋ฌด์์ธ๊ฐ? (0) | 2021.11.12 |
[CS์คํฐ๋ #01] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ (0) | 2021.11.02 |
[CS์คํฐ๋ #01] ์๋ฃ๊ตฌ์กฐ(Array, LinkedList, Tree, Hash) (0) | 2021.11.02 |