๐งฑ 1. ์ด๊ธฐ ์ปดํจํฐ ์์คํ
- ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ 1๊ฐ, ํ๋ก์ธ์ค๋ 1๊ฐ. ๋ณดํธ/๊ฐ์ํ ์์
- ์ด๊ธฐ ์ปดํจํฐ๋ ๋จ์ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ ๋จ์ผํ ํ๋ก๊ทธ๋จ๋ง ์คํ.
- ์ด์์ฒด์ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์์ชฝ์ ์์ฃผํ๊ณ , ํ๋ก๊ทธ๋จ์ ๊ทธ ๋ค์์ ์คํ.
- ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์, ๋ณดํธ ๊ธฐ๋ฅ๋ ์์.
- ์ฌ์ฉ์๋ ๋ง์ ๊ฑธ ๊ธฐ๋ํ์ง ์์๋ ์๋.
โ๏ธ 2. ๋ฉํฐํ๋ก๊ทธ๋๋ฐ๊ณผ ์๋ถํ
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋ฒ๊ฐ์ ์คํํด CPU ํ์ฉ๋ ์ฆ๊ฐ
- ์ปดํจํฐ๊ฐ ๋น์ธ๋ค ๋ณด๋ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ณต์ ํ์ → ๋ฉํฐํ๋ก๊ทธ๋๋ฐ ๋ฑ์ฅ.
- I/O ์์ ์ค์ธ ํ๋ก์ธ์ค ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํ → CPU ํ์ฉ๋ ์ฆ๊ฐ.
- ์ดํ ์๋ถํ (time-sharing) ๊ฐ๋ ๋ฑ์ฅ
์๋ถํ ์์คํ
- ๋ง์ ์ฌ์ฉ์๊ฐ ๋์์ ์ปดํจํฐ ์ฌ์ฉ → ๋น ๋ฅธ ์๋ต ํ์
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์งง์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์ ํ ์คํ
- ์ปดํจํฐ ์์์ ํ์ฉ๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ ,
- ์งง์ ์๊ฐ ๋จ์๋ก CPU๋ฅผ ๋ฒ๊ฐ์ ํ ๋นํ๋ ์๋ถํ ์์คํ ์ด ๋ฑ์ฅ.
- ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์์ ์์คํ ์ฌ์ฉ.
- ์๋ต์ฑ์ด ์ค์ํ ๋ํ์ ์์คํ (interactive system) ํ์.
- ์ด๊ธฐ ์๋ถํ ๋ฐฉ์์ ํ๋ก์ธ์ค๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ค๊ฐ ๋ณต์ → ๋๋ฌด ๋๋ฆผ.
โค ํด๊ฒฐ์ฑ : ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์ ์ง -> ๋น ๋ฅด๊ฒ ์ปจํ ์คํธ ์ค์์นญ. + ๋ณดํธ ํ์
๐ง 3. ์ฃผ์ ๊ณต๊ฐ์ ๋์
- ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์์ผ๋ฉด ์๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ํ ๋ฐ์.
- ํด๊ฒฐ์ฑ : ์ฃผ์ ๊ณต๊ฐ(Address Space) ๊ฐ๋ ๋์ .
- ๋ณดํธ(protection)๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ค์ผ์ ๋ฐฉ์งํจ.
๐ ์ฃผ์ ๊ณต๊ฐ์ด๋?
์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด ์์ ๋ง์ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ค๊ณ ์๊ฐํ๋๋ก ๋ง๋ ํ์
(์ค์ ๋ก๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง๋ง OS๊ฐ ๋ณดํธ์ ๊ฐ์ํ๋ก ๋ถ๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํจ)
๐ ๋ณดํธ?
ํ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํจ
๐ฆ 4. ์ฃผ์ ๊ณต๊ฐ์ ๊ตฌ์ฑ ์์
ํ๋ก์ธ์ค๋ ์ด๋ฌํ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ฉ๋ชจ๋ฆฌ -> ์ด์์ฒด์ ๊ฐ ์ด๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋งคํ
- Code ์์ญ: ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด (๋ณดํต read-only)
- Heap ์์ญ: ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ (์๋์์ ์๋ก) (malloc, new ๋ฑ)
- Stack ์์ญ: ํจ์ ํธ์ถ, ์ง์ญ ๋ณ์ ์ ์ฅ (์์์ ์๋๋ก)
- (์ถ๊ฐ๋ก ๋ฐ์ดํฐ ์์ญ, BSS ๋ฑ๋ ์์)
๐ง ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ (VM)์ 3๋ ๋ชฉํ
โ 1. ํฌ๋ช ์ฑ (Transparency)
โ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌ๋ฅผ ๋์น์ฑ์ง ์์์ผ ํ๋ค โ
- ํ๋ก์ธ์ค(ํ๋ก๊ทธ๋จ)๋ ๋ง์น ์๊ธฐ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ ํ๋ ๊ฒ์ฒ๋ผ ํ๋ํจ
- ์ค์ ๋ก๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง๋ง,
- ์ด์์ฒด์ ์ ํ๋์จ์ด๊ฐ ๋ค์์ ๋ชฐ๋ ์กฐ์ํด์ ๊ทธ๋ ๊ฒ ๋ณด์ด๊ฒ ๋ง๋ฆ
๐ฆ ๋น์ : ๋ฌด๋ ์ ๋ฐฐ์ฐ๋ ํผ์ ์ฐ๊ธฐํ๊ณ ์์ง๋ง,
๋ฌด๋ ๋ค ์คํํ๋ค์ด ์กฐ๋ช
, ์ํฅ, ์ํ์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ๋งค๋๋ฝ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์์.
โ 2. ํจ์จ์ฑ (Efficiency)
โ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ๋๋ผ๋ ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ์ง ์์์ผ ํ๊ณ , ๊ณต๊ฐ ๋ญ๋น๋ ์์ด์ผ ํ๋ค โ
- ์ฑ๋ฅ ์ ํ ์์ด ๋น ๋ฅด๊ฒ ๋์ํด์ผ ํจ (์๊ฐ ํจ์จ)
- ๊ฐ์ํ ๊ธฐ๋ฅ์ ์ํ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ต์ํํด์ผ ํจ (๊ณต๊ฐ ํจ์จ)
- ์ด๋ฅผ ์ํด ์ด์์ฒด์ ๋ TLB ๊ฐ์ ํ๋์จ์ด ์ฅ์น์ ๋์์ ๋ฐ์์ผ ํจ
๐ง ์:
- TLB = ์ฃผ์ ๋ณํ ์บ์
- TLB ๋๋ถ์ ์ฃผ์ ๋ณํ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ!
โ 3. ๋ณดํธ (Protection)
โ ๊ฐ ํ๋ก๊ทธ๋จ์ ์๋ก์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฑด๋๋ฆด ์ ์์ด์ผ ํ๋ค โ
- A ํ๋ก๊ทธ๋จ์ด B ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์๋, ๋ฐ๊ฟ ์๋ ์๋๋ก ํด์ผ ํจ
- ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํด์ผ ํจ
- ์ฆ, ํ๋ก๊ทธ๋จ๋ง๋ค "์๊ธฐ๋ง์ ์์ ๊ตฌ์ญ" ์์์ ์คํ๋์ด์ผ ํจ
๐ ์ด ๋ณดํธ ๊ธฐ๋ฅ ๋๋ถ์ ํ๋ก๊ทธ๋จ์:
- ๊ณ ๋ฆฝ(Isolation) ๋๊ณ
- ์ ์ฑ ์ฝ๋๋ ์ค๋ฅ๋ก๋ถํฐ ์์ ํด์ ธ์
'ํ์ต ๊ธฐ๋ก (Learning Logs) > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐18. ์ฃผ์ ๋ณํ์ ์๋ฆฌ (0) | 2025.04.07 |
---|---|
๐17. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (0) | 2025.04.07 |
๐15. CPU ๊ฐ์ํ์ ๊ดํ ๋ง๋ฌด๋ฆฌ ๋ํ (0) | 2025.04.07 |
๐ 10์ฅ. ๋ฉํฐํ๋ก์ธ์ ์ค์ผ์ค๋ง (0) | 2025.04.07 |
๐ 9์ฅ. ๋น๋ก ๋ฐฐ๋ถ (Proportional Share Scheduling) (0) | 2025.04.07 |