Memory Allocation
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น
๋ฉ๋ชจ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ์์ญ์ผ๋ก ๋๋์ด ์ฌ์ฉ๋๋ค.
OS ์์ฃผ ์์ญ์๋ ์์ฃผ ๋ฎ์ ์ฃผ์ ์์ญ์ interrupt vector ์ ํจ๊ป ์กด์ฌํ๋ค.
์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ์๋ ๋์ ์ฃผ์ ์์ญ์ ์ฌ์ฉํ๋ค.
์ด ์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๋ฐฉ๋ฒ์๋ ๋ค์ ๋ ๋ ๊ฐ์ง๊ฐ ์๋ค.
continuous allocation์ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ์ ์ฌ๊ฐ ๋๋ค.
fixed partition allocation
variable partition allocation
noncontinuous allocation ์ ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ์์ญ์ ๋๋์ด ์ฌ๋ผ๊ฐ๋ค.
paging
segmentation
paged segmentation
1) continuous allocation
fixed partition allocation ๊ณ ์ ๋ถํ ๋ฐฉ์
fixed partition allocation ์ ๋ฐ๋ฅด๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ๋ช๊ฐ์ ์๊ตฌ์ partition์ผ๋ก ๋ถํ ๋๋ค.
ํํฐ์ ์ ํฌ๊ธฐ๊ฐ ๋ชจ๋ ๋์ผํ ๋ฐฉ์๊ณผ ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ด ์กด์ฌํ๋ฉฐ
ํํฐ์ ๋น ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ ์ฌ๋ ์ ์๋ค.
์ตํต์ฑ์ด ์์ด์ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋๋ ํ๋ก๊ทธ๋จ์ ์๊ฐ ์ ํ์ ์ด๊ฒ ๋๋ฉฐ, ์ต๋ ์ํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ ์ ํ๋๋ค.
ํ๋ก๊ทธ๋จ์ด ํํฐ์ ๊ณผ ๋ง์ง ์๋ค๋ฉด, ์ธ๋ถ์กฐ๊ฐ external fragment ์ด๋ ๋ด๋ถ ์กฐ๊ฐ internal fragment์ด ์๊ธฐ๊ฒ ๋๋ค.
variable partition allocation ๊ฐ๋ณ๋ถํ ๋ฐฉ์
ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ง๋ค ์ฐจ๊ณก์ฐจ๊ณก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๋ ๋ฐฉ์์ผ๋ก
ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํด์ ํ ๋น๋๋ค. ๋ถํ ์ ํฌ๊ธฐ์ ๊ฐ์๊ฐ ๋์ ์ผ๋ก ๋ณํ๋ค.
์ด ๋ฐฉ๋ฒ์ ์ํด์๋ ๊ธฐ์ ์ ์ผ๋ก ๊ด๋ฆฌ ๊ธฐ๋ฒ์ด ๊ฐ์ถ์ด์ ธ์ผํ๋ค.
๊ฐ๋ณ๋ถํ ๋ฐฉ์๋ ํ๋ก๊ทธ๋จ ์คํ์ ๋ฐ๋ผ์ ์ธ๋ถ์กฐ๊ฐ์ด ๋ฐ์ํ ์ ์๋๋ฐ ์๋ฅผ ๋ค๋ฉด ์๋์ ๊ฐ์ ์ํฉ์ด๋ค.
ํ๋ก๊ทธ๋จ B์ ์ํ์ด ๋๋๋ ํ๋ก๊ทธ๋จD๊ฐ B๊ฐ ์๋ ๊ณต๊ฐ์ ๋ค์ด๊ฐ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์, C๋ค์ ์์นํ๊ฒ ๋๋ค. ์ด๋ ์ธ๋ถ์กฐ๊ฐ์ด ๋ฐ์ํ ์ ์๋ค.
hole
๊ฐ์ฉ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
๋ค์ํ ํฌ๊ธฐ์ hole ๋ค์ด ์ฌ๋ฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฉ์ด์ ธ ์๋ค.
ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด ์์ฉ ๊ฐ๋ฅํ hole ์ ํ ๋นํ๋ค.
๋ฐ๋ผ์ ์ด์์ฒด์ ๋ ๋ค์์ ์ ๋ณด๋ฅผ ํญ์ ์์งํ๊ณ ์๋ค. โ 1) ํ ๋น ๊ณต๊ฐ 2) ๊ฐ์ฉ๊ณต๊ฐ hole
dynamic storage allocation problem
๊ฐ๋ณ๋ถํ ๋ฐฉ์์์ size ๊ฐ n์ธ ์์ฒญ์ ๋ง์กฑํ๋ ๊ฐ์ฅ ์ ์ ํ hole์ ์ฐพ๋ ๋ฌธ์
ํด๊ฒฐ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์๋ค.
first fit : size n์ ๋ง์กฑํ๋ hole ์ค ๊ฐ์ฅ ์ต์ด๋ก ์ฐพ์์ง๋ ๊ฒ์ ํ ๋นํ๋ ๋ฐฉ๋ฒ
best fit : size n์ ๋ง์กฑํ๋ hole ์ค ๊ฐ์ฅ ์์ ๊ฒ์ ํ ๋นํ๋ ๋ฐฉ๋ฒ
hole๋ค์ ๋ฆฌ์คํธ๊ฐ ํฌ๊ธฐ์์ผ๋ก ์ ๋ ฌ๋์ง ์๋ ๊ฒฝ์ฐ, ๋ชจ๋ hole ๋ค์ ํ์ํด์ผํ๋ค.
๋ง์ ์์ ์์ฃผ ์์ hole ๋ค์ด ์์ฑ๋ ์ ์๋ค.
worst fit : size n์ ๋ง์กฑํ๋ ๊ฐ์ฅ ํฐ hole์ ํ ๋นํ๋ ๋ฐฉ๋ฒ
๋ชจ๋ ๋ฆฌ์คํธ๋ฅผ ํ์ํด์ผํ๋ฉฐ
ํฐ hole ๋ค์ด ์์ฑ๋๋ค.
๋น์ฐํ๊ฒ๋ first fit ์ ์๊ฐ์ ์ผ๋ก, best fit ์ ๊ณต๊ฐ ์ด์ฉ๋ฅ ์ธก๋ฉด์์ ๊ฐ๊ฐ ๊ฐ์ฅ ์ ๋ฆฌํ๋ฉฐ, worst fit์ ๊ฐ์ฅ ๋นํจ์จ์ ์ธ ๊ฒ์ด ์คํ ๊ฒฐ๊ณผ ๋ํ๋ฌ๋ค.
compaction
external fragmentation ์ธ๋ถ์กฐ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฌ์ฉ์ค์ธ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๊ตฐ๋ฐ๋ก ๋ชฐ๊ณ hole ๋ค์ ๋ค๋ฅธ ํ ๊ณณ์ผ๋ก ๋ชจ์ ์์ฃผ ํฐ hole ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
๋น์ฉ์ด ๋งค์ฐ ๋ง์ด ๋ค๋ฉฐ, ์ต์ํ์ ์ด๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ compaction ํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ณต์กํ๋ค.
๋น์ฐํ์ง๋ง, compaction ๊ธฐ๋ฒ์ ํ๋ก์ธ์ค์ ์ฃผ์๊ฐ ์คํ๋๋ ์๊ฐ์ ๋์ ์ผ๋ก ์ฌ๋ฐฐ์น๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
2) noncontinuous allocation
paging
ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ์ฃผ์ ๊ณต๊ฐ์ ํ์ด์ง ๋จ์๋ก ์๋ฅธ๋ค. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ๋ ๊ฐ์ ๋จ์๋ก ์๋ฅธ๋ค.
์ฃผ์ ๋ณํ์ด ๋ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ address binding ์ด ๋ ๋ณต์กํด์ง๋ค.
segmentation
์๋ฏธ์๋ ๋จ์๋ก ์๋ฅด๋ ๊ฒ
paged segmentation
paging
ํ๋ก์ธ์ค์ virtual memory ๋ฅผ ๋์ผํ ์ฌ์ด์ฆ์ page ๋จ์๋ก ๋๋๋ค.
virtual memory ์ ๋ด์ฉ์ด page ๋จ์๋ก noncontinous ํ๊ฒ ์ ์ฅ๋๋ค.
์ผ๋ถ๋ backing storage ์, ์ผ๋ถ๋ physical memory ์ ์ ์ฅ๋๋ค.
basic method
physical memory ๋ฅผ ๋์ผํ ํฌ๊ธฐ์ frame ์ผ๋ก ๋๋๋ค.
local memory ๋ฅผ ๋์ผํ ํฌ๊ธฐ์ page ๋ก ๋๋๋ค. โ frame ๊ณผ ๊ฐ์ ํฌ๊ธฐ!
๋ชจ๋ ๊ฐ์ฉ frame ๋ค์ ๊ด๋ฆฌํ๋ค.
page table ์ ์ฌ์ฉํ์ฌ logical address๋ฅผ physical address ๋ก ๋ณํํ๋ค.
page ๋จ์๋ก ๋๋์ด์ง๊ธฐ ๋๋ฌธ์ ๋์ด์ ๋ ๊ฐ์ register ๋ก๋ ๋ถ๊ฐํ๋ค.
external fragment ๋ ๋ฐ์ํ์ง ์์ง๋ง, ์ฌ์ ํ internal fragmentation ์ด ๋ฐ์ํ ์๋ ์๋ค.
ํ์ด์ง ๋จ์๋ก ๋๋๊ฒ ๋๋ฉด, ํ์ด์ง ๋ฒ์๋ฅผ ๋ค ์ฑ์ฐ์ง ๋ชปํด ๋จ๋ ๊ณต๊ฐ์ด ๋ฐ์ํ ์ ์๋ค๋ ๋ป.
page table ์ physical memory ์ ์์ฃผํ๋ค.
page table base register ๊ฐ page table ์ ๊ฐ๋ฆฌํค๊ณ ์๊ณ ,
page table length register ๋ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ๋ณด๊ดํ๋ค.
๋ฐ๋ผ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ฐ์ฐ์๋ 2๋ฒ์ memory access ๊ฐ ํ์ํ๋ฐ, ํ๋ฒ์ page table ์ ์ ๊ทผํ๊ธฐ ์ํด์, 1๋ฒ์ ์ค์ ๋ฐ์ดํฐ์ ์ธ์คํธ๋ญ์ ์ ์ ๊ทผํ๊ธฐ ์ํด์ ํ์ํ๋ค.
์๋ ํฅ์์ ์ํด์
associative register
ORtranslation look-aside
buffer ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ณ ์์ lookup hardware cache ๋ฅผ ์ฌ์ฉํ๋ค.associative resiters (TLD) : parallel search ๊ฐ ๊ฐ๋ฅํ๋ค. page table ํ ์ด๋ธ ์ค ์ผ๋ถ๋ง ์กด์ฌํ๋ค. ์์ผ๋ฉด page table ๋ก ์ด๋ํจ
address translation ๊ณผ์
page table ์ค ์ผ๋ถ๊ฐ associative regieter ์ ๋ณด๊ด๋์ด์๋ค.
๋ง์ฝ ํด๋น page ๋ฒํธ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ณง๋ฐ๋ก frame ๋ฒํธ๋ฅผ ์ป๊ฒ ๋๋ค.
ํ์ง๋ง ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, main memory ์ ์๋ page table๋ก๋ถํฐ frame ๋ฒํธ๋ฅผ ์ป๋๋ค.
TLB ๋ context switch ๋ flush (remove old entiries) ๋๋ค. โ ํ๋ก์ธ์ค๋ณ๋ก ๋ณ๋๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์
์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๊ฐ์?
์๋นํ ๋น ๋ฅด๋ค!
2๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ - two level paging table
์ฌ์ฉํ๋ ์ด์
์ปดํจํฐ์์ ์ด๋ค ์์คํ ์ด ์กด์ฌํ ๋, ๊ทธ ์กด์ฌ์ ์ด์ ๋ ๋ณดํต ๋ ๊ฐ์ง์ด๋ค.
์๊ฐ์ ๋น ๋ฅด๊ฒ ํ๊ฑฐ๋
๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ํ๊ฑฐ๋
two level paging table ์ ๊ฒฝ์ฐ, ์๋๋ ์ค๊ฐ ๊ณผ์ ์ด ์ถ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์คํ๋ ค ๋ ๋์ด๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋์ ์๋ง
๊ณต๊ฐ์ ํจ์จ์
์ผ๋ก ํ์ง ์์๊น, ์ถ์ธกํ ์ ์๋ค.
ํ๋์ ์ปดํจํฐ๋ 32bit, 64bit ๋จ์์ด๋ค. ๊ทธ๋ ๋ค๋ฉด, ํ๋ก๊ทธ๋จ๋ง๋ค ๊ฐ์ง๊ณ ์๋ Maximum ์ฃผ์์ฒด๊ณ๋ ๋ช ๊ฐ๋ ๋๊ฒ ๋๊ฐ? โ ์ปดํจํฐ์ 32bit, 64bit ์ ๋ฐ๋ผ์ ๋๋์ด์ง๋ค.
32bit ์ปดํจํฐ์ ๊ฒฝ์ฐ, 0๋ฒ๋ถํฐ 2^32๋ฒ๊น์ง์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง ์ ์๋ค.
๊ทธ๋ฐ๋ฐ 2^10 = K ์ด๊ณ , 2^20 = M์ด๊ณ , 2^30 = G์ด๋ฏ๋ก,
2^32 = 2^2 * G = 4GB
๋ฅผ ์๋ฏธํ๊ฒ ๋๋ค.์ด๋, ํ์ด์ง ์ฌ์ด์ฆ๊ฐ 4K๋ผ๋ฉด, 1M๊ฐ์ page table entry ๊ฐ ํ์ํ๊ฒ ๋๋ค.
๊ฐ page entry๊ฐ 4B์ผ ๋์๋, ํ๋ก์ธ์ค ๋น 4M์ page table ์ด ํ์ํ๋ค.
๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์ 4G์ ์ฃผ์๊ณต๊ฐ ์ค์์ ์ง๊ทนํ ์ผ๋ถ๋ถ๋ง ์ฌ์ฉํ๋ฏ๋ก, page table ๊ณต๊ฐ์ด ์ฌํ๊ฒ ๋ญ๋น๋๋ค.
page table ์์ฒด๋ฅผ page ๋ก ๊ตฌ์ฑํ๋ค.
์ฌ์ฉ๋์ง ์๋ ์ฃผ์ ๊ณต๊ฐ์ ๋ํ outer page table์ ์ํธ๋ฆฌ ๊ฐ์ null ์ด๋ค.
multi-level paging and performance
address space ๊ฐ ๋ ์ปค์ง๋ฉด 2๋จ๊ณ ํ์ด์ง ํ ์ด๋ธ๋ง์ผ๋ก๋ ๋ถ์กฑํ๋ค. ๋ค๋จ๊ณ ํ์ด์ง ํ ์ด๋ธ์ด ํ์ํ๋ค.
๊ฐ ๋จ๊ผ์ ํ์ด์ง ํ ์ด๋ธ์ด ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ฏ๋ก logical address ์ physical address ๋ณํ์ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์ํ๋ค.
TLB ๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๊ฐ์ ์ค์ผ ์ ์๋ค.
4๋จ๊ณ ํ์ด์ง ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ,
๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๊ฐ์ด 100ns, TLB ์ ๊ทผ ์๊ฐ์ด 20ns ์ด๊ณ TLB hit ratio ๊ฐ 98%์ธ ๊ฒฝ์ฐ,
์ด 5๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์ํ๋ค โ 4๋ฒ์ ํ์ด์ง ์ฃผ์๋ณํ, 1๋ฒ์ ๋ฐ์ดํฐ ์ ๊ทผ
effective memory access time = 0.98 * 120 + 0.02 * 520 = 128 nano seconds
98%๋ TLB ๋ฅผ ํตํด์ ์ด๋ฃจ์ด ์งํ ๋, 20ns์ ๋๋ง ์ฃผ์๋ณํ์ ์์๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์๊ฐ+์ฃผ์๋ณํ์๊ฐ = 120ns ๊ฐ ๋๋ค.
๋ฐ๋ฉด TLB ๋ฅผ ํตํด ์ด๋ฃจ์ด์ง์ง ๋ชปํ 2%์ ๊ฒฝ์ฐ๋, ์ฃผ์๋ณํ์๋ง 400ns ๊ฐ ์์๋๋ค. ๊ทธ๋ฆฌ๊ณ TLB ์ ์๋ค๋ ๊ฒ์ ํ์ธํ๋ ์์ ์ 20ns, ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๋ ์๊ฐ์ผ๋ก ๋ค์ 100ns ๊ฐ ์์๋๋ค. ์ฆ, ์ด 520ns ๊ฐ ์์๋๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฃผ์ ๋ณํ์ ์ํด 28ns ๋ง ์์๋๋ค.
์ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ํ 100ns + ์ฃผ์๋ณํ์ ์ํ 28ns
memory protection - page table ์์ valid, invalid bit ํํ
page table ์ ๊ฐ entry ๋ง๋ค ์๋์ bit ๋ฅผ ๋๋ค.
protection bit : page ์ ๋ํ ์ ๊ทผ ๊ถํ (read, write, read-only)
valid
ํด๋น ์ฃผ์์ frame ์ ๊ทธ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ ํจํ ๋ด์ฉ์ด ์์์ ๋ปํจ. โ ์ ๊ทผ ํ์ฉ
ํ ์ด๋ธ์ ๋งคํ๋ ์ค์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๊ฐ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์๋ค.
invalid
ํด๋น ์ฃผ์์ frame ์ ์ ํจํ ๋ด์ฉ์ด ์์์ ๋ปํ๋ค. โ ์ ๊ทผ ๋ถํ
ํ๋ก์ธ์ค๊ฐ ๊ทธ ์ฃผ์ ๋ถ๋ถ์ ์ฌ์ฉํ์ง ์๊ฑฐ๋
ํด๋น ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์์ง ์๊ณ swap area์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค.
inverted page table
page table ์ด ๋งค์ฐ ํฐ ์ด์
๋ชจ๋ ํ๋ก์ธ์ค๋ณ๋ก ๊ทธ logical address ์ ๋์ํ๋ ๋ชจ๋ page ์ ๋ํด page table entry ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋์ํ๋ page ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์๋๋ ๊ฐ์ page table ์๋ entry ๋ก ์กด์ฌํ๋ค.
๊ทธ๋์ ์ด ๋ญ๋น๋๋ ๊ณต๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด inverted page table!
inverted page table ์์๋ physical memory ์ ์ ๊ทผํ๋ฉด page table ์์ ๋งคํ๋ logical memory ์ฃผ์๋ฅผ ๊ฑฐ๊พธ๋ก ๋์ฐพ์๊ฐ๋ค.
์ฆ, ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ง๊ฒ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฐ๊พธ๋ ํ์!
page frame ํ๋ ๋น, page table ์ ํ๋์ entry ๋ฅผ ๋ ๊ฒ์ด๋ค.
๊ฐ page table entry ๋ ๊ฐ๊ฐ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ page frame ์ด ๋ด๊ณ ์๋ ๋ด์ฉ์ ํ์ํ๋ค.
process id, process logical address
๋จ์ : ํ ์ด๋ธ ์ ์ฒด๋ฅผ ํ์ํด์ผํ๋ค.
ํด๊ฒฐ : associative register ๋ฅผ ์ฌ์ฉํ๋ค. (ํ์ง๋ง ๋๋ฌด ๋น์ธ๋ค;;)
shared page
shared code
re-entrant code = pure code
read-only
๋ก ํ์ฌ ํ๋ก์ธ์ค ๊ฐ์ ํ๋์ code ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.shared code ๋ ๋ชจ๋ ํ๋ก์ธ์ค์ Logical address space ์์ ๋์ผํ ์์น์ ์์ด์ผ ํ๋ค.
private code and data
๊ฐ ํ๋ก์ธ์ค๋ค์ ๋ ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
private data ๋ logical address space ์ ์๋ฌด ๊ณณ์ ์๋ ๋ฌด๋ฐฉํ๋ค.
segmentation
์๋ฏธ๋จ์๋ก ๋ฒ์๋ฅผ ๋๋ ๊ฒ. ์๋ฅผ ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ฝ๋, ์คํ ๋ฑ์ ๊ณต๊ฐ
์๋ฏธ๋จ์๋ก ๋ฒ์๋ฅผ ๋๋๊ธฐ ๋๋ฌธ์ segment์ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์๋ค.
logical address ๋ ๋ค์์ ๋ ๊ฐ์ง๋ก ๊ตฌ์ฑ๋๋ค.
segment-number
offset โ d
segment table
๋ชจ๋ ํ ์ด๋ธ์ base ์ limit ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
base : starting physical address of segment. ์ฆ, ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ธ๊ทธ๋จผํธ์ ์์์ ์ ๋ํ๋ธ๋ค.
limit : lenght of the segment. ์ธ๊ทธ๋จผํธ์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค.
segment table base register - STBR
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์์ segment table์ ์์น
segment table limit register - STLR
ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ segment์ ์
segment number s < STLR ์ด์ด์ผ ํ๋ค.
ํ์ด์ง ๊ธฐ๋ฒ๊ณผ ๋ค๋ฅธ ์
ํ์ด์ง ๊ธฐ๋ฒ์ ๊ฒฝ์ฐ, ๋ชจ๋ ํ์ด์ง์ ๋จ์๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์ fragment ์์น๋ฅผ table ์ ๋งคํํ๊ณ ์์ผ๋ฉด ๋์์ง๋ง,
์ธ๊ทธ๋จผํธ ๊ธฐ๋ฒ์ ๊ฒฝ์ฐ, ๋ชจ๋ ์ธ๊ทธ๋จผํธ์ ๋จ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ์๋ ์ ํํ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ byte ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
์ฅ์
protection
๊ฐ ์ธ๊ทธ๋จผํธ๋ณ๋ก protection bit ๊ฐ ์กด์ฌํ๋ค.
๊ฐ๊ฐ์ entry ๊ฐ ์๋๋ฅผ ๋ง์กฑํจ
valid bit = 0 ์ด๋ฉด, illegal segment ๋ผ๊ณ ํ๋จํ๋ค.
read, write, execution ๊ถํ bit โ ์๋ฏธ๋จ์๋ก ์๋ฏธ๋ฅผ ๋๋๊ธฐ ๋๋ฌธ์ ์ธ๊ทธ๋จผํธ๋ณ๋ก ๊ถํ ๋ถํ ์ด ๊ฐ๋ฅํ๋ค.
sharing
shared segment
same segment number
segment ๋ ์๋ฏธ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ๊ณต์ ์ ๋ณด์์ ์์ด์ paging ๋ณด๋ค ํจ์ฌ ์ ๋ฆฌํ๋ค.
paging ๊ธฐ๋ฒ๊ณผ ๋น๊ตํด๋ณด์์ ๋, ํจ์ฌ ํ์ด์ง ํ ์ด๋ธ ๊ฐ์๊ฐ ์ ์ด์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ ๋ค.
paging : 100๋ง๊ฐ
segment : 5๊ฐ
๋จ์
allocation : first fit, best fit
์๋ฏธ ๋จ์๋ก ๊ธธ์ด๊ฐ ์ ๋์ ์ธ ์ธ๊ทธ๋จผํธ๋ค์ด ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ๋ก ์์ธ ๊ฒ์ด ์ ์์ด๊ฒ ๋๋ค.
external fragmentation ์ด ๋ฐ์ํ๋ค.
segment ๊ธธ์ด๊ฐ ๋์ผํ์ง ์์ผ๋ฏ๋ก, ๊ฐ๋ณ ๋ถํ ๋ฐฉ์์์์ ๋์ผํ ๋ฌธ์ ์ ๋ค์ด ๋ฐ์ํ๊ฒ ๋๋ค. โ hole
allocation ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
paged segmentation
paging + segmentation
paging ๊ธฐ๋ฒ๊ณผ segmentation ๊ธฐ๋ฒ์ ์ฅ์ ์ ๊ฐ์ ธ์ ์ตํฉํด๋์ ๋ฐฉ๋ฒ์ผ๋ก
segment table ์๋ segment ์์ฒด์ base address ๊ฐ ์๋๋ผ, segment ๋ฅผ ๊ตฌ์ฑํ๋ page table ์ base address ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ค์ ์ปดํจํฐ์๋ segment ๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๊ณ ์ฌ์ค์ paging ๊ธฐ๋ฒ์ ๊ฐ์ด ์ฌ์ฉํ๊ณ ์๋ค.
์ง๊ธ๊น์งโฆ
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ ๋ค์ํ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ ๋ํด์ ์์๋ณด์๋ค.
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์์ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๊ฒ์ ๊ฒฐ๊ตญ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ณํํ๋ ๊ณผ์ ์ด์๋ค. โ
์ฃผ์๋ณํ
ํ์ง๋ง ์ด ๋ชจ๋ ๊ณผ์ ์์ ์ด์์ฒด์ ๊ฐ ํ๋ ์ผ์ ๊ฑฐ์ ์์๋ค. ๋ชจ๋ ํ๋์จ์ด๊ฐ ์ํํ๋ ์ผ๋ค์ด์๋ค.
์ ํ๋์จ์ด์ ์์งํ ์ ๋ฐ์ ์์๊น?
ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ง๊ณ ๋ ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ณํ์ ํ๋ ๊ณผ์ ์๋ ์ฌ์ค์ ์ด์์ฒด์ ๊ฐ ๋ผ์ด๋ค ํ์๊ฐ ์๋ค.
์ด์์ฒด์ ์ ๊ฐ์ ์ด ํ์ํ๋ค๋ ๋ง์ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ์ โ ์ด์์ฒด์ ๋ก ๋์ด๊ฐ๋ค๋ ๊ฒ์ ์๋ฏธํ๋๋ฐ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ๋๋ง๋ค ์ด์์ฒด์ ์ ์ฌ์ฉ์ ์ฌ์ด๋ฅผ ์ด๋ํด์ผํ๋ค๋ ๊ฒ์ ๋ง์ด ์๋๋ค.
๋ฐ๋ผ์ ์ด ๋ชจ๋ ๊ณผ์ ์ ํ๋์จ์ด์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์ ๋ฐ์ ์๋ค.
์ด์์ฒด์ ๊ฐ ๋ผ์ด๋ค์ด์ผ ํ๋ ์ผ์ด์ค๋ ๋ฐ๋ก I/O ์ ๊ทผ ๋์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์์ฒด์ ๋ ๋ฌด์์ ํ๋๊ฐโฆ?
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ณํ์์๋ ์ฌ์ค์ ์ด์์ฒด์ ๊ฐ ํ๋ ์ผ์ ์๋ค.
ํ์ง๋ง virtual memory ๊ด๋ฆฌ์์๋ ์ด์์ฒด์ ์ ์ญํ ์ด ๋์ด๋๋ค.
Last updated