ํ์ด์ง ํ ์ด๋ธ์ ํํ์ ๋ฐ๋ผ์ ์ฐธ์กฐํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ํํ๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค.
- Hierarchical Paging : Break up the logical address space into multiple page tables
- Hashing Page Tables : Using Hash to look up page table
- Inverted Page Tables
Two-Level Page-Table Scheme(Hierarchical Paging)
์ ๋ด์ฉ์์ ๋งํ๋ฏ์ด ๊ฐ ํ๋ก์ธ์ค์ address space๋ ์ด์์ฒด์ ์ ์ต๋ bit์ ๋ง์ถฐ์ max ์ฃผ์๊ฐ ์ค์ ๋๊ฒ ๋๊ณ 32bit OS๋ผ๋ฉด max ์ฃผ์๊ฐ 2^32 - 1์ด ๋๋ค. => ๊ฐ ํ๋ก์ธ์ค๋ 32bit๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ค
32bit address๋ฅผ ๊ฐ์ง๋ ํ๋ก์ธ์ค์ address space๋ฅผ 4KB์ ํ์ด์ง๋ก ์๋ฅด๋ฉด 2^20๊ฐ์ ํ์ด์ง๊ฐ ๋ง๋ค์ด ์ง๋ค.
๊ทธ๋ฆฌ๊ณ 2^20 ๊ฐ์ ํ์ด์ง๋ฅผ ๊ตฌ๋ถํ๋ ํ์ด์ง ํ ์ด๋ธ์ ๋ง๋ค๊ธฐ ์ํด์๋ 2^20๊ฐ์ ์ํธ๋ฆฌ๊ฐ ํ์ํ๊ณ ๊ฐ๊ฐ์ ์ํธ๋ฆฌ๋ ํ์ด์ง๊ฐ ์ ์ฅ๋ frame์ ์์์ฃผ์๊ฐ ๋ ํ ๋ ๊ฐ ์ํธ๋ฆฌ์ ํฌ๊ธฐ๋ 4 bytes ์ด๋ค.
๋ฐ๋ผ์ ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ๋ 4MB(2^22 bytes)๊ฐ ๋๋ค.
=> ํ์ด์ง ํ ์ด๋ธ์ ๋ ๋ค์ 4KB ํ์ด์ง๋ก ์๋ผ์ ํ๋ ์์ ๋ถํ ํด์ ๋ณด๊ดํด์ผ ํ๋ค.
4MB์ง๋ฆฌ ํ์ด์ง ํ ์ด๋ธ์ 4KB๋ก ์๋ฅด๋ฉด 22 - 12 = 10 ์ด๋ฏ๋ก 2^10๊ฐ์ ํ์ด์ง๊ฐ ๋ง๋ค์ด ์ง๋ค.
๋ฐ๋ผ์ 2^10๊ฐ์ ํ์ด์ง๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด 10bit๋ฅผ ํ์ด์ง ๋ฒํธ๋ก ์ฌ์ฉํด์ผ ํ๊ณ , ๊ฐ 4KB (2^12) ํ์ด์ง ๋ด์๋ 2^10๊ฐ์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๊ฐ ๋ค์ด๊ฐ๋ค.
ํ์ด์ง ๋ด์์ ๊ฐ ์ํธ๋ฆฌ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด 10bit๊ฐ ํ์ํ ๊ฒ์ด๋ค.
ํ์ด์ง ํ ์ด๋ธ์ ์ํ ํ์ด์ง ํ ์ด๋ธ์ 2^10๊ฐ ํ์ด์ง๋ฅผ ๊ตฌ๋ถํ๋ฉด ๋๊ณ ๋ฐ๋ผ์ 2^10๊ฐ์ ์ํธ๋ฆฌ๊ฐ ํ์ํ๋ฉฐ ๊ฐ ์ํธ๋ฆฌ๋ 4bytes ์ด๋ฏ๋ก 2^12 (4KB)๊ฐ ๋๋ค.
4KB๋ ํ๋์ frame์์ ๋ฑ ๋ง๊ฒ ๋ค์ด๊ฐ๋ฏ๋ก ๋ ์ด์์ ๋ถํ ํ์ง ์์๋ ๋๋ค.
=> Two level Page table
ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ 4MB๋ฉด ํ๋ก์ธ์ค๊ฐ 10๊ฐ๋ง ์์ฑ๋์ด๋ ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๋ง 40MB์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ํ์ด์ง ํ
์ด๋ธ ์ ์ฒด๋ ๋์คํฌ์ ์ ์ฅ์ ํ๊ณ ํ์ฌ ์ ๊ทผ ์ค์ธ ํ์ด์ง์ ์ ๋ณด๊ฐ ๋ค์ด์๋ ํ์ด์ง ํ
์ด๋ธ์ ์ผ๋ถ๋ถ๋ง ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ค.
=> on-demand ๋ฐฉ์
์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ด๊ฐ ์ฐพ์ผ๋ ค๋(CPU๊ฐ ์ ๊ทผํ๋ ค๋) logical page๊ฐ ์ ์ฅ๋ frame์ ์ฃผ์๊ฐ ์ ํ ํ์ด์ง ํ
์ด๋ธ์ด ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ค frame์ ์ ์ฅ๋์ด ์๋์ง๋ฅผ ์์์ผ ํ๋ค.
=> ํ์ด์ง ํ
์ด๋ธ์ ์ํ ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๋ค.
์๋ ๊ธฐ๋ณธ์ ์ธ ํ์ด์ง ํ
์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ํ์ด์ง์ ์์น๋ฅผ ๋ด๊ณ ์๋๋ฐ, ํ์ด์ง ํ
์ด๋ธ์ ์ํ ํ์ด์ง ํ
์ด๋ธ์ ํ์ด์ง ํ
์ด๋ธ์ ์ผ๋ถ๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค.
์ํ๋ ํ์ด์ง๋ฅผ ์ฐพ์ ๋, ๋จผ์ ๋ด๊ฐ ์ฐพ๊ณ ์ ํ๋ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํ์ด์ง frame์ ์์น๋ฅผ ์ฐพ๊ณ , ๊ทธ ์์์ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์ ๋ด๊ฐ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ํ์ด์ง frame์ ์ฐพ์์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค.
=> two level page table scheme
๋จผ์ , ๋ด๊ฐ ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ํ์ด์ง๋ฅผ ์ฐพ๊ธฐ ์ํ ํ์ด์ง ํ ์ด๋ธ ์ญ์ ์ชผ๊ฐ์ ธ์ ํ๋ ์ ๋ด์ ๋ค์ด์์ผ๋ฏ๋ก ๊ทธ ํ์ด์ง ํ ์ด๋ธ์ด ๋ค์ด ์๋ frame์ ์ฐพ๊ธฐ ์ํด outer-page table์ ํ์ํ๋ค.
๊ทธ๋ ๊ฒ ํ์ด์ง ํ ์ด๋ธ์ด ๋ค์ด ์๋ frame์์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ํ์ด์ง frame์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ป๋๋ค.
=> ์ฆ, outer-page table์ ํตํด ํ์ด์ง ํ ์ด๋ธ์ด ๋ค์ด ์๋ ํ์ด์ง frame์ ์ฐพ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น frame์ผ๋ก ๊ฐ์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ํ์ด์ง๊ฐ ๋ค์ด ์๋ ํ์ด์ง frame์ ์ฐพ์ ์ ๊ทผํ๋ค.
๋ง์ด ํท๊ฐ๋ฆด ์ ์์ผ๋ ์ฒ์ฒํ ์๊ฐํด๋ณด๋ฉด ๋๋ค.
๊ทธ๋ฐ๋ฐ logical address ํ๋๋ง์ ๊ฐ์ง๊ณ ์ด๋ป๊ฒ ์ด ๋ ํ ์ด๋ธ์ Look up ํ ์ ์์๊น??
ํ์ด์ง์ ํฌ๊ธฐ๊ฐ 2์ ์ง์์น์ผ๋ก ๊ฒฐ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค.
์์์ ๋งํ๋ฏ์ด, 2^20๊ฐ์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ ๋ ๋ค์ 2^10๊ฐ์ ํ์ด์ง frame์ ๋๋ ์ ์ ์ฅ๋๊ฒ ๋๋ค.
์๋ผ์ง ํ์ด์ง ํ ์ด๋ธ์ด ์ ์ฅ๋ ํ์ด์ง frame์ ๋งคํํ๋ outer-page table์ ์ํธ๋ฆฌ๋ 2^10๊ฐ๊ฐ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ์ฐพ์ ํ์ด์ง frame ๋ด์๋ 2^10๊ฐ์ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๊ฐ ๋ค์ด์์ ๊ฒ์ด๊ณ , ๋ฐ๋ผ์ ์ํ๋ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์ํด offset์ผ๋ก 10bit๊ฐ ํ์ํ ๊ฒ์ด๋ค.
page number๋ฅผ ์๋ฏธํ๋ m-n bit๊ฐ ๋ ๋ค์ p1, p2๋ก ๋๋์ด์ ๊ฐ๊ฐ์ ์๋ฆฐ ํ์ด์ง ํ ์ด๋ธ์ด ์ ์ฅ๋ ํ์ด์ง์ ๋ฒํธ์ ํ์ด์ง ๋ด์์์ offset์ ์๋ฏธํ๊ฒ ๋๋ค.
์ด ๋ ์ ๋ณด๋ฅผ ์ด์ฉํด์ outer-page table์์ ํ์ด์ง ํ ์ด๋ธ์ด ์ ์ฅ๋ ํ์ด์ง๋ฅผ ์ฐพ์ ํด๋น ํ์ด์ง ๋ด์์ ์ํ๋ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์, ์ํธ๋ฆฌ๋ฅผ ํตํด ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ํ์ด์ง frame์ ์ฐพ์์ d(12bit)๋ฅผ ์ด์ฉํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์๋ค.
์ด ๊ณผ์ ์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
p1์ ์ด์ฉํด์ outer-page table์์ ํ์ด์ง ํ ์ด๋ธ์ด ์ ์ฅ๋ ํ์ด์ง frame์ ์ฐพ๋๋ค.
๊ทธ๋ ๊ฒ ์ฐพ์ ํ์ด์ง frame์์ p2๋ฅผ offset์ผ๋ก ํ์ฌ ํ์ด์ง ํ ์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ํ์ด์ง frame์ ์ฐพ๋๋ค.
๊ทธ frame์์ d๋ฅผ offset์ผ๋ก ์ด์ฉํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ฒ ๋๋ค.
Multilevel Paging and Performance
์ด๋ ๊ฒ ์ฌ๋ฌ ๋จ๊ณ์ ํ์ด์ง ํ ์ด๋ธ์ ์ด์ฉํ์ ๋์ ์ฑ๋ฅ์ ์ด๋ป๊ฒ ๋ ๊น?
32bit ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๊นฅ์ชฝ page table์ด 2^10 * 4 (4KB)์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก ํ๋์ frame์ ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
=> 32bit์ ๊ฒ
์ฐ two level๋ก ๋๋๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ฐ๊นฅ์ชฝ page table์ ํฌ๊ธฐ๊ฐ 4KB๋ฅผ ๋์ด๊ฐ๊ฒ ๋๋ฉด ๋ ๋ค์ ํ๋์ frame์ ๋ค์ด๊ฐ์ง ๋ชป ํ๊ฒ ๋๊ณ ์ฌ๋ฌ frame์ ๋๋ ์ ๋ค์ด๊ฐ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๊นฅ์ชฝ page table์ ์ํ ํ์ด์ง ํ
์ด๋ธ์ด ๋ ๋ค์ ํ์ํ ๊ฒ์ด๋ค.
2^64bit ์ฃผ์ ์ฒด๊ณ๋ผ๋ฉด 2^32bit ์๋ ๋น๊ต๊ฐ ์ ๋ ์ ๋๋ก ๋ง์ ์ฃผ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ์ด์ง ํ
์ด๋ธ์ด two level๋ก ๋๋์ง ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ป๊ฒ ํ๋, ๋ฌผ๋ก ๊ณ์ ๋ค๋จ๊ณ๋ก ํ์ด์ง ํ
์ด๋ธ์ ๋ง๋ค๋ฉด ํด๊ฒฐ์ ๋๊ฒ ์ง๋ง ๊ทธ ์ค๋ฒํค๋๊ฐ ๊ฝค ์ปค์ง๊ฒ ๋๋ค.
two level๋ง ํด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ด 3๋ฒ์ ์ ๊ทผํ๊ฒ ๋๋ค. outer page table์ ํ ๋ฒ, inner page table์ ํ ๋ฒ, ๋ฐ์ดํฐ์ ํ ๋ฒ.
๊ทธ๋ฐ๋ฐ level์ด ๋ ์ปค์ง๊ฒ ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ค๋ฒํค๋๊ฐ ์ ์ ์ปค์ง๊ฒ ๋ ๊ฒ์ด๋ค.
CPU๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ ์ ๊ทผํ๊ธฐ ์ํด์ ์ค์ง์ ์ผ๋ก 4๋ฒ, 5๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ฒ ๋๋ค.
=> ์ด๊ฑด ์ฌ๊ฐํ ๋ฌธ์ .
๋คํ์ค๋ฝ๊ฒ TLB๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ๋ ์ค๋ฒํค๋ ์ํ๊ฐ ๊ฐ๋ฅํ๋ค.
TLB hit ratios๊ฐ 98%์ธ 4 level paging์์๋ 128 nanoseconds๊ฐ ๊ฑธ๋ฆฐ๋ค.
ํ์ด์ง ํ
์ด๋ธ์ด ์์ ๋๋ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ๋๊น 100ns๊ฐ ๊ฑธ๋ฆฌ๋๋ฐ 4๋จ๊ณ๋ก ์ ๊ทผํด๋ 128ns๋๊น ํฌ๊ฒ ์ฐจ์ด๊ฐ ๋์ง ์์. (28%์ ์ฑ๋ฅ ์ ํ)
=> TLB hit ratio๊ฐ ๋์ผ๋ฉด ๋ ๋ฒจ์ด ์กฐ๊ธ ๋์์ ธ๋ ๋ฌธ์ ๊ฐ ์๊ฒ ๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋ 64bit์ ๊ฒฝ์ฐ 6๋ ๋ฒจ์ด ํ์ํ๋ค.
=> ์ด๊ฑด TLB๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์ค๋ฒํค๋๊ฐ ๊ฝค ํด ๊ฒ์ด๋ค.
๊ตณ์ด 2^64 ์ฃผ์ ๊ณต๊ฐ์ ๋ชจ๋ ์ฌ์ฉํ ํ์๊ฐ ์์๊น? ์ฌ์ฉํ๋ ๊ณต๊ฐ๋ณด๋ค ์ฌ์ฉํ์ง ์๋ ๊ณต๊ฐ์ด ๋ ํดํ
๋ฐ??
๊ทธ๋์ ์ฌ์ฉํ์ง ์๋ bit๋ ๋ฒ๋ฆฌ์๋ ์๊ฐ์ด ๋์ด
=> 48bit๋ง ์ฃผ์๋ก ์ฌ์ฉํ์.
=> ์ด๊ฑด 4 level๋ก ๊ฐ๋ฅํ๋ค.
์ด๊ฑด ์์์ ์ผ๋ก ์์๋์.
32bit OS๋ฅผ ์ฌ์ฉํ๋๋ฐ, DRAM์ 2GB ์ง๋ฆฌ๋ฅผ ๊ฝ์๋ค๊ณ ์๊ฐํด๋ณด์.
32bit๋ 2^32๊ฐ์ ์ฃผ์๋ฅผ ์ปค๋ฒํ ์ ์๋ค. 2^32๋ 4GB
=> ๋ชจ๋ DRAM์ ์ฃผ์ ์ปค๋ฒ ๊ฐ๋ฅ
DRAM์ ๋๋ ค์ 4GB ์ง๋ฆฌ๋ฅผ ๊ฝ์๋ค๋ฉด, ๋ฑ๋ง๊ฒ DRAM์ ๋ชจ๋ ์์ญ์ ์ปค๋ฒํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ 32bit OS๋ฅผ ์ฌ์ฉํ๋๋ฐ 8GB์ง๋ฆฌ DRAM์ ๊ฝ์๋ค๊ณ ํ๋ฉด, 4GB์ ์ฃผ์ ์์ญ๋ง ์ปค๋ฒ๊ฐ ๊ฐ๋ฅํ๋๊น ๋๋จธ์ง 4GB๋ ์ฌ์ฉํ์ง ๋ชป ํ๊ฒ ๋๋ค.
์ฌ์ง์ด 4GB๋ ๋ค ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์๋๋ผ ํน์ ๋ชฉ์ ์ ์ํด reserved ๋๋ ์ฃผ์๋ฅผ ์ ์ธํ๋ฉด ์ฌ์ค์ ๋๋ต 3.2GB ์ ๋๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
4GB ์ด์์ DRAM์ ์ฌ์ฉํ๋ ค๋ฉด 64bit CPU, OS๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
Hashed Page Tables
์ฃผ์ ๋ณํ ์ญ์ Search๋ผ๋ฉด Search structure์ธ ํด์๋ฅผ ์ฐ์ง ๋ชป ํ ์ด์ ๊ฐ ์๋ค.
=> ํด์ ํ ์ด๋ธ์ ํตํด ์ค์ ์ฃผ์๋ฅผ ์ฐพ์๋ด๋๋ก ํ ์ ์์ ๊ฒ์ด๋ค.
32bit๋ two level page table๋ก ์ปค๋ฒ๊ฐ ๋๋ฏ๋ก depth๊ฐ 2์ธ tree๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
=> ์ด ๊ฒฝ์ฐ์ ๊ตณ์ด ํด์๋ฅผ ์ฌ์ฉ ์ ํด๋ ๊ด์ฐฎ๋ค.
ํด์๋ฅผ ์ฌ์ฉํ์ ๋ ๊ธฐ๋ํ ์ ์๋ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด์ง๋ง ์ถฉ๋์ด ๋ฐ์ํ์ ๊ฒฝ์ฐ๋ ์ด๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ด ํ์ํ๋ฏ๋ก chaning์ ํตํด ๋๊น์ง ๊ฐ๋ค๊ณ ํ๋ฉด ์ต์ ์ ๊ฒฝ์ฐ O(N)๊น์ง ๋์ด๋ ์๋ ์๋ค.
=> ํด์ ํ ์ด๋ธ์ ์ค๊ณ๋ฅผ ์ ํด์ผ ํ๋ค.
์ถฉ๋์ด ๋ ํ์ด์ง ๋ฒํธ๋ค์ด ๋ชจ๋ chain์ผ๋ก ์ฐ๊ฒฐ์ด ๋์ด ์๋ค.
q๋ผ๋ ํ์ด์ง๋ s๋ผ๋ frame์ ์ ์ฅ์ด ๋์ด ์๊ณ , p๋ผ๋ ํ์ด์ง๋ r์ด๋ผ๋ frame์ ์ ์ฅ์ด ๋์ด ์๋ค.
=> ์ด๋ ๊ฒ ์ฒด์ธ์ ํตํด ๋๋กฑ๋๋กฑ ๋งค๋ฌ๋ ค ์๋ค.
=> ์ต์
์ ๊ฒฝ์ฐ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์ผ๋ก ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ ๋๋ณด๋ค ์คํ๋ ค ๋๋ฆฌ๊ฒ ๋ ์๋ ์๋ค.
=> ํด์ ํจ์๋ ํจ๋ถ๋ก ์ฌ์ฉํ ์ ์์ง๋ง ํด์ ํจ์๋ฅผ ์ ๋์์ธํด์ ์ฒด์ธ์ด ์ต๋ํ ์งง์์ง๋๋ก ํ๋ค๋ฉด ํด์๋ฅผ ์ฌ์ฉํ ๊ธฐ๋ฒ์ด ํจ๊ณผ๋ฅผ ๋ฐํํ ๊ฒ์ด๋ค.
=> ๋ฌด์กฐ๊ฑด์ ์ผ๋ก ์ด๋ค ๊ธฐ๋ฒ์ด ์ข๋ค๊ณ ๋งํ ์๋ ์์ง๋ง 32bit ์ฃผ์์ฒด๊ณ ์ดํ์ธ ๊ฒฝ์ฐ์ ํธ๋ฆฌ์ ๊น์ด๊ฐ 2 ์ดํ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ๊ฒฝ์ฐ์ Hashing๋ณด๋จ 2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ์ด ๋์ ๊ฒ์ด๋ค.
Inverted Page Table
ํ์ด์ง ํ
์ด๋ธ์ ํ๋ก์ธ์ค๋ง๋ค ๊ฐ๊ฐ ๊ฐ๋๋ค๊ณ ํ๋ค.
=> ์์ ์ address space๋ฅผ ๋งคํํ๋ ํ
์ด๋ธ์ ๊ฐ๊ฒ ๋๋ค.
32bit ๋จธ์ ์ ๊ฒฝ์ฐ ํ์ด์ง ์ฌ์ด์ฆ๊ฐ 4KB๋ผ๊ณ ํ์ ๋, ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ 4MB๊ณ ํ๋ก์ธ์ค๊ฐ 10๊ฐ๋ฉด 40MB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์ด๊ณ , 100๊ฐ๋ผ๋ฉด 400MB๊ฐ ํ์ด์ง ํ
์ด๋ธ๋ก๋ง ์ฑ์์ง ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ๊ณผ์ฐ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ด ์๊ธฐ๋ง์ ํ์ด์ง ํ
์ด๋ธ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์ธ ์ ๋ฐ์ ์์๊น??
logical address space๋ ์ฃผ์ ์ฒด๊ณ ์ ์ฒด๋ฅผ ๋ค ์ด๋ค๊ณ ๊ฐ์ ํ๋ค. ๊ทธ๋ฐ๋ฐ ํ๋์ ํ๋ก์ธ์ค๊ฐ 4GB ์ ์ฒด๋ฅผ ๋ค ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ ๊ฒ์ด๋ค.
ํ๋ก์ธ์ค๊ฐ 10๊ฐ๋ผ๊ณ ํ๋ฉด ๋ฌผ๋ฆฌ์ ์ผ๋ก 40GB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ์ ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ 4GB๋ผ๋ฉด ๋ง์ด ์ ๋๋ ์ํฉ์ด๋ค.
=> ์ด๋ฌํ ์ํฉ์ virtual memory์์ ๋ฐฐ์ธ ๊ฒ์ด๋ค.
logical page ๋ฒํธ๋ฅผ physical page๋ก ๋ณํํ์ง ๋ง๊ณ , physical page๋ฅผ logical page๋ก ๋งคํ์ ํ์๋ ๊ฒ์ด Inverted Paging ๊ธฐ๋ฒ์ ๊ธฐ๋ณธ์ ์ธ ์ฒ ํ.
physical page๋ DRAM์ ์ฌ์ด์ฆ์ ์ํด ๊ฐ์๊ฐ ์ ํด์ ธ ์๋ค.
4GB๋ผ๋ฉด 2^20๊ฐ์ physical page๊ฐ ์กด์ฌํ๋ค. (ํ์ด์ง ์ฌ์ด์ฆ๊ฐ 4KB์ผ ๋)
DRAM์ ์ฒซ ๋ฒ์งธ ํ์ด์ง์๋ ํ๋ก์ธ์ค 5๋ฒ์ 15๋ฒ์งธ ํ์ด์ง๊ฐ ๋ค์ด๊ฐ ์๋ค. ๋ ๋ฒ์งธ physical ํ์ด์ง์๋ ํ๋ก์ธ์ค 3๋ฒ์ 13๋ฒ์งธ ํ์ด์ง๊ฐ ๋ค์ด๊ฐ ์๋ค.
์ด๋ ๊ฒ physical page๋ฅผ logical page๋ก ๋งคํ์ํค๊ฒ ๋๋ฉด DRAM์ ์ฌ์ด์ฆ๋ก ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ ํด์ง๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ํ์ฌ๋ ํ์ด์ง์ ๋ํ ์ ๋ณด๋ง ํ
์ด๋ธ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
=> ์ค์ ์ฌ์ฉ ์ค์ธ ํ์ด์ง์ ๋ํด์๋ง ๋งคํ ์ ๋ณด๋ฅผ ์ ์งํ์.
=> ํ์ด์ง ํ
์ด๋ธ์ด ํ๋ก์ธ์ค๋ง๋ค ์์ฑ๋๋ ๊ฒ์ด ์๋๋ผ ์ปดํจํฐ ๋ด์ ๋ฑ ํ๋๋ง ์์ฑ๋๊ฒ ๋๋ค.
์ด ๋ฐฉ์์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ์์์๋ถํฐ ์ญ ์ฐพ์ผ๋ฉด์ pid์ p๊ฐ ๋งค์นญ๋๋ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์์ผ ํ๋ค.
์ฆ, ์๋ ํ์ด์ง ๊ธฐ๋ฒ์์๋ ํ์ด์ง ๋ฒํธ p๋ฅผ ์ฌ์ฉํด์ ๋ฐ๋ก ๊ฑฐ๊ธฐ๋ก ์ ํํ ์ ์์๋๋ฐ, ์ด๊ฑด ์์ฐจ์ ์ผ๋ก search๋ฅผ ํด์ผ ํ๋ค.
=> Associative search: ์ด๋ค ํ๋์ ๊ฐ์ด ์ผ์นํ๋์ง ๋น๊ตํ๋ฉด์ Search๋ฅผ ํ๋ ๊ฒ.
=> ์ค๋๊ฑธ๋ฆฐ๋ค.
TLB ์ญ์ Associative search๋ฅผ ํ๋๋ฐ, ์ด๊ฑธ ํ ํ์ ํด์ฃผ๋ ํ๋์จ์ด์ ๋์์ ๋ฐ๋๋ค๊ณ ํ์ง๋ง ์ฌ๊ธฐ์ ์ฌ์ฉ์ ํ์ง ์๋๋ค.
์ด์ฉ ์ ์์ด ์์์๋ถํฐ ํ๋ ํ๋ ์ฝ์ผ๋ฉด์ ๋น๊ต๋ฅผ ํด์ผ ํ๋ค.
=> Inverted Paging ๊ธฐ๋ฒ์ ๋จ์
์ด ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ํด์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
pid์ p๋ฅผ ํด์ ํจ์์ input์ผ๋ก ๋ฃ์ด์ DRAM์์์ ์ธ๋ฑ์ค๋ฅผ output์ผ๋ก ๋ด๋ ํด์ฑ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋๋ TLB๋ฅผ ์ฌ์ฉํ๋ฉด miss๊ฐ ๋ ๊ฒฝ์ฐ์๋ง ํ์ด์ง ํ
์ด๋ธ์ Searchํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ hit๊ฐ ๋ง์ด ๋๋ฉด Search๋ฅผ ํ๋ ๋น์ค์ด ์ ์ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ Inverted paging ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ํ์ด์ง ๊ธฐ๋ฒ์ ํฐ ์ฅ์ ์ธ page sharing์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
=> ์ด๊ฒ ์ ๋ถ๊ฐ๋ฅํ ๊น?
Inverted paging์์๋ ํด๋น DRAM์ frame๊ณผ ๋งคํ๋ logical ํ์ด์ง๊ฐ ์ํธ๋ฆฌ๋ก ์ ์ฅ๋๊ฒ ๋๋๋ฐ, ๋ง์ฝ ํ์ด์ง๋ฅผ ๊ณต์ ํ๊ฒ ๋๋ฉด ํ๋์ ์ํธ๋ฆฌ์ ํด๋น frame์ ๊ณต์ ํ๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ์ ๋ณด๊ฐ ์ ํ์ผ ํ๋ค.
=> ์ด๊ฑธ ๋ค ์ ์ผ๋ ค๋ฉด ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค. ๊ทธ๋ฆฌ๊ณ 5๊ฐ์ ํ๋ก์ธ์ค๊ฐ ํ์ด์ง๋ฅผ ๊ณต์ ํ๋ค๊ณ ํ๋ฉด Searchํ ๋ ์ด 5๊ฐ ์ํธ๋ฆฌ๋ฅผ ๋ชจ๋ Searchํด์ผ ํ๋ค.
=> ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ Page sharing์ ์ฌ์ฉํ์ง ๋ชป ํ๋ค.
Segmentation
ํ์ด์ง ๊ธฐ๋ฒ์ ๊ฐ์ฅ ํฐ ํน์ง์ด DRAM๋ frame์ด๋ผ๋ ๋๊ฐ์ ํฌ๊ธฐ๋ก ์๋ฅด๊ณ , ํ๋ก์ธ์ค์ address space๋ ํ์ด์ง๋ผ๋ ๊ฐ์ ํฌ๊ธฐ๋ก ๋ชจ๋ ์๋ฅธ๋ค๊ณ ํ๋ค.
ํ๋ก์ธ์ค์ address space๋ฅผ ๋จ์ํ ํฌ๊ธฐ๋ง ๊ฐ์ง๊ณ ์๋ผ๋๋ค.
ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ด๋ค ํจ์๊ฐ ํธ์ถ๋๊ณ ์๋๋ฐ, ํจ์์ ์ผ๋ถ๋ ์ฒซ ๋ฒ์งธ ํ์ด์ง์ ๋ค์ด๊ฐ๊ณ ํจ์์ ๋ท๋ถ๋ถ์ ๋ ๋ฒ์งธ ํ์ด์ง์ ๋ค์ด๊ฐ๋ ์ํฉ์ด ๋ฐ์ํ๋ค.
๋๋ array๋ฅผ ์ ์ธํ๋๋ฐ array์ ์ ๋ถ๋ถ์ ๋ค์ฏ ๋ฒ์งธ ํ์ด์ง์ ๋ค์ด๊ฐ๊ณ ๋ท ๋ถ๋ถ์ ์ฌ์ฏ ๋ฒ์งธ ํ์ด์ง์ ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๊ฒ ๊ทธ๋ฅ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ผ์ ๋ฐ์ํ๋ ํ์์ด๋ค.
=> ์ด๋ ๊ฒ ํ๋ฉด ์์ด๋ฒ๋ฆฌ๋ ์ ๋ณด๊ฐ ์๊ธด๋ค. "์๋ฏธ์ ์ธ ๋ฉ์ด๋ฆฌ"๋ผ๋ ๊ฐ๋
์ ์์ด๋ฒ๋ฆฐ๋ค.
=> ์ด๊ฑธ ์์ด๋ฒ๋ฆฌ๋ฉด ๋ญ๊ฐ ์ ์ข์๊น?
๊ณต์ ํ ๋ ์ ์ข๊ฒ ๋ค๋ ์๊ฐ์ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์ด object๋ ๊ณต์ ๋ฅผ ํด๋ ๋๋ ๋ถ๋ถ์ด์ผ, ์ object๋ ๊ณต์ ๋ฅผ ํ๋ฉด ์ ๋ผ. ์ด๋ฐ ๊ฒ๋ค์ด object์ ํน์ฑ์ ์ํด ๊ฒฐ์ ๋๋๋ฐ ์ฌ์ด์ฆ ๋จ์๋ก ์๋ฅด๋ค ๋ณด๋ ์ด๋ค ํ์ด์ง ์์๋ ๊ณต์ ํ ์ ์๋ ๋ ๋ฐ, ๊ณต์ ํ ์ ์๋ ๋ ๋ฐ. ์ด๋ ๊ฒ ์์ฌ์ ๋ค์ด๊ฐ ์๊ฐ ์๋ค.
๋ ํ๋ก๊ทธ๋จ์ ์ฝ๋ ๋ถ๋ถ์ ์ ์ฒด๋ฅผ ๊ณต์ ํ ์ ์๋ค๊ณ ํ๋ฉด, ์ด ์ฝ๋๋ ๊ณต์ ๋ฅผ ํ ๋ ์ด๋ ๊ฒ ์ ์ธ์ ํ๋ฉด ๋๋๋ฐ ํฌ๊ธฐ ๋ณ๋ก 5๊ฐ๋ก ๋๋ ์ ธ ์๋ค๊ณ ํ๋ฉด 5๊ฐ์ ๋ํด์ ๊ฐ๊ฐ ๊ณต์ ๋ฅผ ์ ์ธํด์ผ ํ๋ค.
์๋ฏธ๋ ๋ฌด์ํ๊ณ ํฌ๊ธฐ ๋จ์๋ก ์๋๊ธฐ ๋๋ฌธ์ ์๊ธด ๋ฌธ์ .
=> ์๋ฏธ ๋จ์๋ฅผ ์ ์งํ๋ฉด์ ์๋ฅผ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น??
address space๋ฅผ segmentation๋จ์๋ก ์๋ฅด๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฆฐ ๊ฐ๊ฐ์ ๊ธธ์ด๊ฐ ๋ค ๋ค๋ฅผ ์ ์๋ค๋ ๊ฒ์ ํ์ฉํ๋ค.
๋ฉ์ธ ํ๋ก๊ทธ๋จ ํ ๋ฉ์ด๋ฆฌ, ๋ฉ์ธ ํจ์์์ ํธ์ถํ๋ ํจ์ ํ ๋ฉ์ด๋ฆฌ, ํ์ฌ ์ฌ์ฉํ๋ ์คํ ํ ๋ฉ์ด๋ฆฌ... ์ด๋ ๊ฒ ์๋ฏธ ๋จ์๋ณ๋ก ์๋ฅผ ์ ์๋ค.
=> logical address space๋ ์๋ฏธ ๋จ์๋ค์ ์งํฉ์ด ๋๋ค.
์ด๊ฑด ํ์ด์ง ๊ธฐ๋ฒ์ด๋์ ๋ณ๊ฐ์ ๊ธฐ๋ฒ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Contiguous Allocation์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์๋๋ ์ ์ฒด address space๋ฅผ ํต์งธ๋ก ์ฐ์์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ด์๋๋ฐ ๊ทธ๊ฑด ์ข ์ฌํ๊ณ , ์๋ฏธ ๋จ์๋ค์ ์ฐ์์ ์ผ๋ก ์ฌ๋ฆฌ์.
main program์ ์ฐ์์ ์ผ๋ก ์ฌ๋ฆฌ๊ณ , Sqrt๋ ์ฐ์์ ์ผ๋ก ์ฌ๋ฆฌ๋๋ฐ main program๊ณผ Sqrt๊ฐ ์ฐ์์ ์ผ ํ์๋ ์๋ค.
=> ๊ฐ๊ฐ๋ง ์ฐ์์ ์ผ๋ก ์ฌ๋ผ๊ฐ๋ฉด ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ segmentation ๋จ์๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋๋ฉด ์ฃผ์ ๋ณํ์ ์ด๋ป๊ฒ ํ ์ ์์๊น??
logical address๋ฅผ page number์ offset์ผ๋ก ์๋ฅด๋ ๊ฒ๊ณผ ๋น์ทํ๊ฒ segment number์ offset์ผ๋ก ์๋ฅด์.
๊ทธ๋ฆฌ๊ณ segment table์ ์ ์งํ์.
Segment table์๋ ๊ฐ๊ฐ์ segment์ ์์ ์ฃผ์๋ฅผ ๋ด๋ field๊ฐ ํ๋ ์๋ค (Base).
๊ทธ๋ฆฌ๊ณ ๊ทธ segment์ ๊ธธ์ด๋ฅผ ๋ด๋ ์ ๋ณด๊ฐ ํ๋ ์๋ค (limit)
Base์ Limit์ ํ์ด๊ฐ segment table์ ์ํธ๋ฆฌ๊ฐ ๋๋ค.
segment ๋ฒํธ๋ฅผ ๋ณด๊ณ segment table ๋ด์์ ์ํธ๋ฆฌ๋ฅผ ์ฐพ์๋ด์ Base์ limit ์ ๋ณด๋ฅผ ์ป๋๋ค.
Base์ offset์ ๋ํ๋ฉด ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ ์ฃผ์๋ฅผ ์์๋ผ ์ ์๋ค.
์ด๋ ๊ฒ ๊ฐ segment์ ๋ฒํธ๋ฅผ ๋งค๊ธฐ๊ณ segment table์๋ segment ๋ฒํธ ๋ณ๋ก segment๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ฃผ์์ segment์ ๊ธธ์ด๋ฅผ ์ํธ๋ฆฌ๋ก ์ ์ฅํ๋ค.
๋ง์ฝ 4๋ฒ segment์ธ symbol table์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์ถ๋ค๊ณ ํ๋ฉด segment table์์ 4์นธ์ ๋ด๋ ค๊ฐ๋ฉด base๊ฐ 4700์์ ์ ์ ์๋ค.
4700์ offset์ ๋ํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์๋ค. ์ด๋ offset์ด segment์ ๊ธธ์ด์ธ limit๋ณด๋ค ํฌ๋ฉด ์ธ๊ทธ๋จผํธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ์ ๊ทผ์ด๋ฏ๋ก ๋ณดํธ๋ฅผ ํด์ผ ํ๋ค.
์คํ์ํฌ ํ๋ก์ธ์ค์ segment๊ฐ ๋ช ๊ฐ์ผ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ OS๋ segment table์ ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์๋ค.
๊ทธ๋ฅ ๋ฏธ๋ฆฌ ํ
์ด๋ธ์ ํ ๋นํด๋๊ณ ์ฌ์ฉํ์ง ์๋ ๋ถ๋ถ์ invalid๋ก ํ์๋ฅผ ํ์.
segment table ๋ด์ ์ธ๊ทธ๋จผํธ์ ๋ํ ์ ๊ทผ ๋ฐฉ์๋ ๋ช
์ํ ์ ์๋ค.
์ด๊ฒ ์ ๊ฐ๋ฅํ๋?
์๋ฏธ ๋จ์๋ก ๋ถํ ์ด ๋์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ํ
์ผํ ์ ๊ทผ ์ปจํธ๋กค์ด ๊ฐ๋ฅํ๋ค
=> Read only์ธ segment์ Write๋ฅผ ํ๋ ค๊ณ ํ๋ฉด ๋ง์ ์ ์๋ค.
Sharing์ด ๋งค์ฐ effectiveํ๊ฒ ์ผ์ด๋ ์ ์๋ค.
=> Segment ๋จ์๋ก sharing์ ํ ์ ์๋ค.
ํ์ด์ง ๋จ์๋ก ํ๋ ํ๋ sharing์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ธ๊ทธ๋จผํธ๋ฅผ ํต์งธ๋ก sharing์ด ๊ฐ๋ฅํ๋ค.
=> Segmentation ๊ธฐ๋ฒ์ ๋ง๊ฐํ ์ฅ์
๊ทธ๋ฐ๋ฐ Segmentation ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด Contiguous Allocation๊ณผ ๋์ผํ๊ฒ dynamic allocation problem์ด ์๊ธด๋ค.
์ด Segment๋ฅผ ๋น์ด์๋ ๊ณต๊ฐ ์ค์ ์ด๋์ ์ฌ๋ ค์ผ ํ ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
=> Segment ๋ณ๋ก ํฌ๊ธฐ๊ฐ ๋ค ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ .
=> External fragmentation ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ๋ฐ์ ์๋ค.
=> Segment ํฌ๊ธฐ์ ๋ง๊ฒ ํ ๋นํ๊ธฐ ๋๋ฌธ์ internal fragmentation์ ๋ฐ์ํ์ง ์๋๋ค.
๋ฐ์ํ๋ fragmentation์ ์ข ๋ฅ๊ฐ Contiguous allocation๊ณผ ๋์ผํ๊ณ ํ์ด์ง ๊ธฐ๋ฒ๊ณผ๋ ๋ฐ๋๋ค.
ํ์ด์ง ๊ธฐ๋ฒ์ ๋ง์ง๋ง ํ์ด์ง์์ internal fragmentation์ด ๋ฐ์ํ์ง๋ง frame๊ณผ ํ์ด์ง์ ํฌ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ์๋ฅด๊ธฐ ๋๋ฌธ์ external fragmentation์ ๋ฐ์ํ์ง ์์๋ค.
Segment๋ฅผ ํต์งธ๋ก Sharing์ ํ ์ ์๊ฒ ๋๋ค.
Segmentation with paging
Segmentation ๊ธฐ๋ฒ์์ ๋ฐ์ํ๋ external fragmentation ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง ๊ธฐ๋ฒ์ ๋์
ํ๋ค.
ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋์ผํ๊ฒ DRAM์ frame ์ฌ์ด์ฆ๋ก ๋์ผํ๊ฒ ์๋ฅธ๋ค.
๊ทธ๋ฐ๋ฐ logical space๋ segmentation ๋จ์๋ก ์๋ฅธ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ๊ฐ์ segmentation์ ํ์ด์ง ๋จ์๋ก ์๋ฅธ๋ค.
=> ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ์์ฐํ ๋ค๋ฅด๋ค.
์ด๋ ๋ฐ์ดํฐ๋ ๋ช ๋ฒ ์ธ๊ทธ๋จผํธ์ ํฌํจ๋ ๋ช ๋ฒ ํ์ด์ง์ ๋ช ๋ฒ offset์ ์๋ค.
์ด๋ฐ ๊ฐ๋
์ด ์๊ธด๋ค.
๊ทธ๋ฅ segmentation ๋ฐฉ์์ ํ๋์ segment๊ฐ ์ฐ์๋ ๊ณต๊ฐ์ ์ฌ๋ผ์ค๊ธฐ ๋๋ฌธ์ ์์ ์ฃผ์๋ก๋ถํฐ offset์ ๋ํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์๋๋ฐ, ์ด์ ๋ ํ๋์ segment๊ฐ ๊ณณ๊ณณ์ ํฉ์ด์ ธ ์๋ค.
=> ์์ ์ฃผ์์ offset์ ๋ํ๋ ๋ฐฉ์์ด ํตํ์ง ์๊ฒ ๋๋ค.
์๋๋ segment table์์ segment ๋ฒํธ๋งํผ ๋ด๋ ค๊ฐ๋ณด๋ฉด limit๊ณผ base address๊ฐ ์ ์ฅ๋์ด ์๋ค๊ณ ํ๋ค.
๊ทธ๋ฐ๋ฐ segmentation with paging ๊ธฐ๋ฒ์์๋ base๊ฐ ์๋ฌด๋ฐ ์๋ฏธ๋ ์๋ค. ํ๋์ segment๊ฐ ์ฌ๋ฌ ํ์ด์ง๋ก ๋๋ ์ ธ์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์.
๋์ ์ด segment๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ํ์ด์ง๊ฐ ๋ช ๋ฒ frame์ ๋ค์ด๊ฐ๋์ง๋ฅผ ๋ํ๋ด๋ ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๋ค.
=> ์ฆ, segment๋ง๋ค ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๋ค.
=> base ๋์ ์ segment์ ํ์ด์ง ํ
์ด๋ธ์ ์์ ์ฃผ์๊ฐ ์ ์ฅ๋๋ค.
์ด๊ฑธ ์ด์ฉํด์ segment์ ํ์ด์ง ํ
์ด๋ธ๋ก ๊ฐ์ ํ์ด์ง ๋ฒํธ๋ฅผ ์ด์ฉํด์ ํด๋น ํ์ด์ง๊ฐ ์ ์ฅ๋ ์์ ์ฃผ์๋ฅผ ์ฐพ์์ offset(displacement)์ ๋ํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค.
์ต์ข
์ ์ผ๋ก๋ ํ์ด์ง ๋จ์๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ external fragmentation์ด ๋ฐ์ํ์ง ์๋๋ค.
๋์ internal fragmentation์ด ๋ฐ์ํ๊ฒ ๋๋ค. (๋ง์ง๋ง ํ์ด์ง์๋ง)
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ ์ธก๋ฉด์์๋ ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋์ผํ์ง๋ง segment๋ผ๋ ๊ฐ๋
์ ์ ์ง๋๋ค.
=> ์๋ฏธ ๋จ์๋ ์ ์ง๋์ง๋ง ๊ณต๊ฐ ํจ์จ ์ธก๋ฉด์์๋ ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋์ผ
๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ณํ์๋ TLB๊ฐ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค. TLB๊น์ง ์ ์ฉ๋ Segmentation with paging์ ๊ณผ์ ์ ์ด๋จ๊น
์ธ๊ทธ๋จผํธ ๋ฒํธ์ ํ์ด์ง ๋ฒํธ๋ฅผ ์ฌ์ฉํด์ TLB look up์ ํ๊ฒ ๋๊ณ , TLB hit๊ฐ ๋ฐ์ํ๋ฉด ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ธ๊ทธ๋จผํธ์ ํ์ด์ง์ ์์ ์ฃผ์๊ฐ ๋ณํ ๊ฒฐ๊ณผ๋ก ๋์ค๊ฒ ๋๋ค.
=> ๊ตณ์ด segment table์์ ํ์ด์ง ํ ์ด๋ธ ์์ ์ฃผ์๋ฅผ ์ฐพ์์ ํ์ด์ง์ ์์ ์ฃผ์๋ฅผ ์ฐพ์ ํ์๊ฐ ์๊ฒ ๋๋ค.
์์ฆ ๋๋ถ๋ถ์ Segmentation with paging ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋๋ฐ, OS๋ง๋ค ๊ตฌํ์ ๋ฐฉ์์ ๋ค๋ฅผ ์ ์๋ค.
=> ๊ธฐ๋ณธ์ ์ธ ํ์ ์์ ๊ฐ๋ค.
โป ๋ณธ ๋ด์ฉ์ ํ์๋ํ๊ต ๊ฐ์์ฉ ๊ต์๋์ ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
'HYU > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. Deadlocks (0) | 2023.05.18 |
---|---|
10. Virtual Memory (1) (1) | 2023.05.12 |
8. Memory Management (1) (0) | 2023.05.02 |
6. Process Syncronization (2) (0) | 2023.04.07 |
5. Process Synchronization (1) (0) | 2023.03.30 |