[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ๊ฐ์ ๊ธฐ์ต ์ฅ์น (Virtual Memory)
2022. 7. 20. 15:33
Virtual Memory(๊ฐ์๊ธฐ์ต์ฅ์น)
๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ผ๋ถ๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒ. ์ฃผ๊ธฐ์ต์ฅ์น๋ฅผ ๋ง์น ํฐ ์ฉ๋์ ๊ฐ์ง ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
- ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ธ๋ก ๋จ์๋ก ๋๋์ด์ ๊ฐ์๊ธฐ์ต์ฅ์น์ ๋ณด๊ดํด๋๊ณ , ํ๋ก๊ทธ๋จ ์คํ ์ ์๊ตฌ๋๋ ๋ธ๋ก๋ง ์ฃผ๊ธฐ์ต์ฅ์น์ ๋ถ์ฐ์์ ์ผ๋ก ํ ๋น
- ์ฃผ๊ธฐ์ต ์ฅ์น์ ์ด์ฉ๋ฅ ↑ , ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํจ์จ ↑
- ๋ธ๋ก ๋จ์๋ก ๋๋์ด ์ฌ์ฉ → ์ฐ์ ํ ๋น ๋ฐฉ์์์ ๋ฐ์ํ ์ ์๋ ๋จํธํ๋ฅผ ํด๊ฒฐํ ์ ์์
Paging(ํ์ด์ง) ๊ธฐ๋ฒ
๊ฐ์๊ธฐ์ต์ฅ์น ๋ด์ ํ๋ก๊ทธ๋จ๊ณผ ์ฃผ๊ธฐ์ต์ฅ์น ์์ญ์ ๋์ผํ ํฌ๊ธฐ๋ก ๋๋ ํ, ๋ถํ ๋ ํ๋ก๊ทธ๋จ์ ๋ถํ ๋ ์ฃผ๊ธฐ์ต์ฅ์น์์ญ์ ์ ์ฌ์์ผ ์ํ
- Page (ํ์ด์ง) : ํ๋ก๊ทธ๋จ์ ์ผ์ ํ ํฌ๊ธฐ๋ก ๋๋ ๋จ์
- Page Frame : ํ์ด์ง ํฌ๊ธฐ๋ก ์ผ์ ํ๊ฒ ๋๋์ด์ง ์ฃผ๊ธฐ์ต์ฅ์น์ ๋จ์
- ์ธ๋ถ๋จํธํ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ ๋ด๋ถ ๋จํธํ๋ ๋ฐ์ํ ์ ์๋ค.
- ํ์ด์ง-ํ๋ ์ ๋์์ ์ํด page mapping ํ์ → Page Map Table ์์ฑ(Page์ ์์น ์ ๋ณด)
- Page Map Table → ๋น์ฉ ์ฆ๊ฐ, ์ฒ๋ฆฌ์๋ ๊ฐ์
Segmentation(์ธ๊ทธ๋จผํ ์ด์ ) ๊ธฐ๋ฒ
๊ฐ์๊ธฐ์ต์ฅ์น ๋ด์ ํ๋ก๊ทธ๋จ์ ๋ค์ํ ํฌ๊ธฐ์ ๋ ผ๋ฆฌ์ ๋จ์๋ก ๋๋ ํ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ์์ผ ์ํ
- Segment (์ธ๊ทธ๋จผํธ) : ํ๋ก๊ทธ๋จ์ ๋ฐฐ์ด์ด๋ ํจ์ ๋ฑ๊ณผ ๊ฐ์ ๋ ผ๋ฆฌ์ ํฌ๊ธฐ๋ก ๋๋ ๋จ์
- ๊ฐ ์ธ๊ทธ๋จผํธ๋ ๊ณ ์ ํ ์ด๋ฆ๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ๋๋ค
- ์ฌ์ฉํ๋ ๊ถ๊ทน์ ์ธ ์ด์ : ๊ธฐ์ต๊ณต๊ฐ์ ์ ์ฝํ๊ธฐ ์ํด์
- ์ธ๊ทธ๋จผํธ์ ํ๋ ์ ๋์์ ์ํด mapping ํ์ → Segment Map Table ์์ฑ (์ธ๊ทธ๋จผํธ์ ์์น ์ ๋ณด)
- ๋ด๋ถ๋จํธํ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ ์ธ๋ถ ๋จํธํ๋ ๋ฐ์ํ ์ ์๋ค.
Fragmentation (๋จํธํ)
์ฆ, ์ฃผ๊ธฐ์ต์ฅ์น ์์์ ๋น๋ฒํ ๊ธฐ์ต์ฅ์ ํ ๋น/๋ฐ๋ฉ์ ๋ฐ๋ผ ๊ธฐ์ต์ฅ์๋ค์ด ์กฐ๊ฐ์ผ๋ก ๋๋๋ ํ์ → ์ฌ์ฉ๋์ง ์๋ ๋น ์กฐ๊ฐ๋ค ์์ฑ
1. External Fragmentation(์ธ๋ถ ๋จํธํ)
๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ก์ธ์ค์ ํฌ๊ธฐ์ ๋นํด ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ถฉ๋ถํ์ง๋ง ์ค๊ฐ ์ค๊ฐ ๋น ๊ณต๊ฐ์ผ๋ก ์ธํด ์ค์ ๋ก๋ ํ ๋นํ ์ ์๋ ์ํฉ ๋ฐ์
- ํด๊ฒฐ์ฑ
1 : Garbage Collection
- compaction(์์ถ)์ ํตํด ๋จํธํ๋ free space๋ฅผ ํ๋์ ํฐ free space๋ก ๋ง๋๋ ๋ฐฉ๋ฒ
- ๋จ์ : ๋์ฒด์ ์ผ๋ก ์๊ฐ์ด๋ ๋ค๋ฅธ ์์์ด ๋ง์ด ๋ ๋ค
- ํด๊ฒฐ์ฑ 2 : Paging
2. Internal Fragmentation (๋ด๋ถ ๋จํธํ)
๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ํ๋ก์ธ์ค๊ฐ ํ์ํ ์๋ณด๋ค ๋ ํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น๋์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ ์ํฉ
- ํด๊ฒฐ์ฑ : Segmentation
Page ํฌ๊ธฐ
ํ์ด์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ ํ์ด์ง ๋จ์๋ก ๋๋๊ฒ ๋๋๋ฐ, ํ์ด์ง ํฌ๊ธฐ์ ๋ฐ๋ผ ์์คํ ์ ๋ฏธ์น๋ ์ํฅ์ด ๋ค๋ฅด๋ค
ํ์ด์ง ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ
- ํ์ด์ง ๋จํธํ๊ฐ ๊ฐ์
- ํ ๊ฐ์ ํ์ด์ง๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น๋ก ์ด๋์ํค๋ ์๊ฐ ๊ฐ์
- ๋ถํ์ํ ๋ด์ฉ์ด ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋
ํ์ด์ง ํฌ๊ธฐ๊ฐ ํด ๊ฒฝ์ฐ
- ํ์ด์ง ๋งต ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์์์ง๊ณ , ๋งคํ ์๋๊ฐ ๋นจ๋ผ์ง
- ๋์คํฌ ์ ๊ทผ ํ์๊ฐ ์ค์ด๋ค์ด ์ ์ฒด์ ์ธ ์ , ์ถ๋ ฅ์ ํจ์จ์ฑ์ด ์ฆ๊ฐ๋จ
- ํ์ด์ง ๋จํธํ๊ฐ ์ฆ๊ฐ
- ํ ํ์ด์ง๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น๋ก ์ด๋์ํค๋ ์๊ฐ ์ฆ๊ฐ๋จ
Locality
ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ๋์ ์ฃผ๊ธฐ์ต์ฅ์น๋ฅผ ์ฐธ์กฐํ ๋, ์ผ๋ถ ํ์ด์ง๋ง ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ ์ฑ์ง์ด ์๋ค๋ ์ด๋ก
- ์ค๋ ์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ํน ์ ์ด๋ก ์ ๊ธฐ๋ฐ์ด ๋จ
- ๊ฐ์๊ธฐ์ต์ฅ์น ๊ด๋ฆฌ์ ์บ์ ๋ฉ๋ชจ๋ฆฌ ์์คํ ์ ์ด๋ก ์ ์ธ ๊ทผ๊ฑฐ
- ๋ฐ๋(Denning)๊ต์์ ์ํด ๊ฐ๋ ์ด ์ฆ๋ช ๋จ
์ข ๋ฅ
- ์๊ฐ ๊ตฌ์ญ์ฑ(Temporal Locality) : ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉด์ ํ๋์ ํ์ด์ง๋ฅผ ์ผ์ ์๊ฐ ๋์ ์ง์ค์ ์ผ๋ก ์ก์ธ์คํ๋ ํ์
- ๊ณต๊ฐ ๊ตฌ์ญ์ฑ(Spatial Locality) : ํ๋ก์ธ์ค ์คํ ์ ์ผ์ ์์น์ ํ์ด์ง๋ฅผ ์ง์ค์ ์ผ๋ก ์ก์ธ์คํ๋ ํ์
Working Set(์ํน ์ )
ํ๋ก์ธ์ค๊ฐ ์ผ์ ์๊ฐ ๋์ ์์ฃผ ์ฐธ์กฐํ๋ ํ์ด์ง๋ค์ ์งํฉ
- Denning์ด ์ ์ํ ํ๋ก๊ทธ๋จ์ ์์ง์์ ๋ํ ๋ชจ๋ธ
- ํ๋ก๊ทธ๋จ์ Locality ํน์ง ์ด์ฉ
- ์์ฃผ ์ฐธ์กฐ๋๋ ์ํน ์ ์ ์ฃผ๊ธฐ์ต์ฅ์น์ ์์ฃผ์ํด → ํ์ด์ง ๋ถ์ฌ ๋ฐ ํ์ด์ง ๊ต์ฒด ํ์์ด ์ค์ด๋ค์ด ํ๋ก์ธ์ค์ ๊ธฐ์ต์ฅ์น ์ฌ์ฉ์ด ์์ ๋๋ค.
Thrashing (์ค๋์ฑ)
ํ๋ก์ธ์ค์ ์ฒ๋ฆฌ ์๊ฐ๋ณด๋ค ํ์ด์ง ๊ต์ฒด์ ์์๋๋ ์๊ฐ์ด ๋ ๋ง์์ง๋ ํ์
- ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ์์คํ /๊ฐ์๊ธฐ์ต์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ์์คํ ์์, ํ ํ๋ก์ธ์ค ์ํ ๊ณผ์ ์ค ์์ฃผ Page Fault(ํ์ด์ง ๋ถ์ฌ)๊ฐ ๋ฐ์ ⇒ ์ค๋์ฑ ๋ฐ์
- ⇒ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ ์ ํ
- ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ ↑ ⇒ CPU์ ์ด์ฉ๋ฅ ์ ์ด๋ ํน์ ์์ ๊น์ง๋ ๋์์ง๋ค๊ฐ ๊ทธ ์ดํ์๋ ์ค๋์ฑ์ด ๋ํ๋จ → CPU์ ์ด์ฉ๋ฅ ๊ธ๊ฒฉํ ๊ฐ์
'etc > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ค์ผ์ค๋ง(Scheduling) (0) | 2022.07.22 |
---|---|
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ํ๋ก์ธ์ค์ ์ค๋ ๋ (0) | 2022.07.21 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์์คํ ์นดํ๋ก๊ทธ (0) | 2022.07.20 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ ๊ทํ์ ๋ฐ์ ๊ทํ (0) | 2022.07.19 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ด์ / ํจ์์ ์ข ์ (0) | 2022.07.19 |