Logical Address vs Physical Address
โข
Logical address(virtual address)
โฆ
ํ๋ก์ธ์ค๋ง๋ค ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๋ ์ฃผ์ ๊ณต๊ฐ
โฆ
๊ฐ ํ๋ก์ธ์ค๋ง๋ค 0๋ฒ์ง๋ถํฐ ์์
โฆ
CPU๊ฐ ๋ณด๋ ์ฃผ์๋ logical address
โข
Physical address
โฆ
๋ฉ๋ชจ๋ฆฌ์ ์ค์ ๋ก ์ฌ๋ผ๊ฐ๋ ์์น
โข
address binding
โฆ
์ฃผ์๋ฅผ ๊ฒฐ์ ํ๊ณ ๋งค์นญํ๋ ๊ฒ
โฆ
logical address ์์ physical address ๋ก ๋ณํ๋๋ ๊ฒ
โข
symbolic address
โฆ
๋ณ์ ์ด๋ฆ์ฒ๋ผ ๊ฐ๋ฐ์๊ฐ ์ ์ฅํ๋ ์ฃผ์
Address Binding
โข
์คํํ๊ธฐ ์ํด physical address ์ ์ฌ๋ผ๊ฐ๋ ์์ ์ ์ฃผ์ ๋ฐ์ธ๋ฉ
โข
CPU ๊ฐ ๋
ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๋ ์ด์ โ ์คํํ์ผ ๋ด์ ์ฝ๋๋ ๊ฐ๊ฐ์ด instruction ์ธ๋ฐ instruction ๋ด๋ถ์ ์ฃผ์๋ ๋
ผ๋ฆฌ์ ์ฃผ์์ด๋ค. ์ด ์ธ์คํธ๋ญ์
์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ๋ฐฐ์น ๋๋ค๊ณ ํด๋ ์ธ์คํธ๋ญ์
๋ด๋ถ์ ์ฃผ์๊ฐ ๊ฒฐ๊ตญ logical address ๋ฅผ ๋ฐ๋ผ๋ณด๊ธฐ๋๋ฌธ์ CPU ๋ ๋
ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณผ ์ ๋ฐ์ ์๋ค.
โข
compile time binding
โฆ
์ปดํ์ผ ์์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ํ ๋น
โฆ
์์ ์์น ๋ณ๊ฒฝ์ re-compile
โฆ
์ปดํ์ผ๋ฌ๋ ์ ๋ ์ฝ๋(absolute code) ์์ฑ
โฆ
์ปดํ์ผ ์์ logical address ์ ์๋ ์ฃผ์๊ฐ physical address
โฆ
์ปดํ์ผ ์์ ์ด๋ฏธ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ์ ํด์ง
โฆ
๋นํจ์จ์
โฆ
์ปดํจํฐ ์์ ํ๋์ ํ๋ก๊ทธ๋จ๋ง ์คํ๋ ๋ ์ปดํ์ผ ๋ฐ์ธ๋ฉ
โข
load time binding
โฆ
loader ์ ์ฑ
์ํ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ถ์ฌ
โฆ
์ปดํ์ผ๋ฌ๊ฐ ์ฌ๋ฐฐ์น ๊ฐ๋ฅ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ๊ฐ๋ฅ
โฆ
์คํ ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ์ ํด์ง
โข
execution time binding(runtime)
โฆ
์ํ์ด ์์๋ ์ดํ์๋ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ ์์น๋ฅผ ์ฎ๊ธธ ์ ์์
โฆ
CPU ๊ฐ ์ฃผ์๋ฅผ ์ฐธ์กฐํ ๋๋ง๋ค binding ์ ์ ๊ฒ(address mapping table)
โฆ
ํ๋์จ์ด ์ง์ ํ์(MMU)
โฆ
์คํ ์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๊ฐ ์ ํด์ง๋๋ฐ ์ฃผ์๊ฐ ์คํ ๋์ค์ ๋ฐ๋ ์ ์๋ค
Memory Management Unit(MMU)
โข
์ฃผ์ ๋ณํ์ฉ ํ๋์จ์ด
โข
์ฃผ์ ๋ณํํ ๋ ์ฌํ ๋น ๋ ์ง์คํฐ์ ๋ฆฌ๋ฏธํธ ๋ ์ง์คํฐ ๋๊ฐ๋ฅผ ์ด์ฉํด์ ๋ณํ
โข
์ฌํ ๋น ๋ ์ง์คํฐ์๋ ํด๋น ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ์์์์น๊ฐ ์ ์ฅ๋จ
โข
๋ฆฌ๋ฏธํธ ๋ ์ง์คํฐ์๋ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ โ ๋ฆฌ๋ฏธํธ๋ฅผ ๋์ด์๋ ๋
ผ๋ฆฌ์ ์ฃผ์๋ฅผ ํ์ธํ๊ธฐ ์ํด
โข
user program ์ logical address ๋ง ๋ค๋ฃจ๊ณ ์ค์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ณผ ์๋, ์ ํ์๋ ์๋ค.
dynamic loading
โข
ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ฒ
โข
๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ ํฅ์
โข
๊ฐ๋ ์ฌ์ฉ๋๋ ๋ง์ ์์ ์ฝ๋(์ค๋ฅ ์ฒ๋ฆฌ)์ผ ๋ ์ ์ฉ
โข
์ด์์ฒด์ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ง์
overlays
โข
๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค ์ค ์ค์ ํ์ํ ์ ๋ณด๋ง ์ฌ๋ฆฌ๋ ๊ฒ
โข
ํ๋ก์ธ์ค์ ํฌ๊ธฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ํด ๋ ์ ์ฉ
โข
dynamic loading ๊ณผ ๋ค๋ฅธ ์ ์ ๊ธฐ์์ด ๋ค๋ฅด๋ค๋ ๊ฒ..
swapping
โข
ํ๋ก์ธ์ค๋ฅผ ์ผ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ swap area(backing store) ๋ก ์ซ์๋ด๋ ๊ฒ
โข
์ผ๋ฐ์ ์ผ๋ก ์ค๊ธฐ ์ค์ผ์ฅด๋ฌ์ ์ํด swap out ์ํฌ ํ๋ก์ธ์ค ์ ์
โข
priority-based CPU scheduling algorithm
โข
compile time ๋๋ load time binding ์์๋ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ก swap in
โข
execution time binding ์์๋ ์ถํ ๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ ์๋ฌด ๊ณณ์๋ swap in
dynamic linking
โข
linking ์ ์ฌ๋ฌ ๊ตฐ๋ฐ์ ์ปดํ์ผ๋ ์คํ ํ์ผ๋ค์ ํ๋๋ก ๋ชจ์ผ๋ ๊ฒ
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋จ ์คํ ํ์ผ ์ฝ๋์ ํฌํจ๋๋ฉด static linking
โฆ
๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ธฐ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ญ๋น๋๋ค(ex. printf)
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์คํ์ ์ฐ๊ฒฐ๋๋ค
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์์ผ๋ฉด ๊ทธ๋๋ก ์ฐ๊ณ ์์ผ๋ฉด ๋์คํฌ์์ ์ฝ์ด์ด
โข
OS ์ ๋์ ํ์
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
์ฌ์ฉ์ ํ๋ก์ธ์ค ์์ญ ํ ๋น
โข
์ฐ์ ํ ๋น
โฆ
๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ธ ๊ณต๊ฐ์ ์ ์ฌ๋๋ ๊ฒ
โฆ
fixed partition ํ ๋น
โช
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐ์ ๋ถํ ํ๊ณ ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋ง๊ฒ ํ ๋น
โช
B ๊ฐ ๋ถํ 2๋ณด๋ค ์ปค์ ๋ถํ 3์ ๋ค์ด๊ฐ
โช
๋ญ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ธ๋ถ ์กฐ๊ฐ๊ณผ ๋ด๋ถ ์กฐ๊ฐ์ผ๋ก ๋๋
โฆ
variable partition ํ ๋น
โช
์ฐจ๊ณก์ฐจ๊ณก ์์๋๋ก ์ฌ๋ฆผ
โช
๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ธ hole ์ด ์๊ธด๋ค
โช
first fit โ size ๊ฐ n ์ด์์ธ ๊ฒ ์ค ์ต์ด์ hole ์ ํ ๋น
โช
best fit โ size ๊ฐ n ์ด์์ธ ๊ฒ ์ค ๊ฐ์ฅ ์์ hole ์ ํ ๋น
โช
worst fit โ ๊ฐ์ฅ ํฐ hole ์ ํ ๋น
โช
first fit, best fit ์ด worst fit ๋ณด๋ค ์๋์ ๊ณต๊ฐ ์ด์ฉ๋ฅ ์ธก๋ฉด์์ ํจ๊ณผ์
โฆ
compaction
โช
hole ์ ํ ๊ณณ์ผ๋ก ๋ญ์นจ
โช
๋น์ฉ์ด ๋งค์ฐ ๋ง์ด ์๋ชจ๋จ
โข
๋ถ์ฐ์ ํ ๋น
โฆ
ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ๋ฌ ์์ญ์ ๋ถ์ฐ๋์ด ์ฌ๋ผ๊ฐ๋ ๊ฒ
โฆ
paging
โฆ
segmentation
โช
๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ฏธ ์๋ ๋จ์(code, data, stack ๋ฑ)๋ก ์๋ฅด๋ ๊ฒ
โฆ
paged segmentation
paging
โข
ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๋
ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ์ ํฌ๊ธฐ์ ํ์ด์ง๋ก ์๋ผ์ ๊ฐ๊ฐ์ ํ์ด์ง๋ณ๋ก ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ ๋นํ ์์น์ ๋ฃ๋ ๊ฒ
โข
๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ํด page table ์ ๊ทผ 1๋ฒ, data/instruction ์ ๊ทผ 1๋ฒ ์ด 2๋ฒ์ ์ฐ์ฐ์ด ํ์
โข
ํ๋ก์ธ์ค์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผํ ์ฌ์ด์ฆ์ page ๋จ์๋ก ๋๋
โข
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ด์ฉ์ด page ๋จ์๋ก noncontiguous ํ๊ฒ ์ ์ฅ
โข
์ผ๋ถ๋ backing storage, ์ผ๋ถ๋ physical memory ์ ์ ์ฅ
two level page table
โข
์ปดํจํฐ ํฅ์์ ๋ชฉํ๋ 2๊ฐ์ง: ์๋ ํฅ์, ๊ณต๊ฐ ์ต์ํ
โข
two level page table ์ page table ์ ๊ณต๊ฐ ์ต์ํ๊ฐ ๋ชฉ์
โข
์ฝ๊ฐ index ๋๋?
โข
๋
ผ๋ฆฌ ์ฃผ์(32bit machine ์ 4K page size)์ ๊ตฌ์ฑ
โฆ
20bit ์ page number
โฆ
12bit ์ page offset(2^12 ์ด๋ผ์)
โฆ
P1 ์ outer page table ์ index, P2 ๋ outer page table ์ page ์์์ ์์น
โข
1๋จ๊ณ page table ์ logical memory ์ ์ฌ์ฉ๋๋ ํฌ๊ธฐ๋งํผ page table ์ ์ฌ์ฉํด์ผ ํ๋ค. ์์ฐ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์๋ฐ ๋ถํ์ํ๊ฒ page table ์ ๋ฑ๋กํด์ผํ๋ค. entry ๋ฐฉ์์ด๊ธฐ๋๋ฌธ์ table ์๋ฃ ๊ตฌ์กฐ ํน์ฑ์ ๊ฐ๊ฐ์ index๊ฐ ํ์ํ๊ธฐ๋๋ฌธ
โข
2๋จ๊ณ page table ์ ์์ฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํด์ null ๋ก ํ๊ณ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ง ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
multi-level paging and performance
โข
address space ๊ฐ ๋ ์ปค์ง๋ฉด ๋ค๋จ๊ณ ํ์ด์ง ํ
์ด๋ธ ํ์
โข
๊ฐ ๋จ๊ณ์ ํ์ด์ง ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌ. ๊ทธ๋์ ๋
ผ๋ฆฌ์ ์ฃผ์์์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ณํํ ๋ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ํ์
โข
์บ์ฑ ๋ฉ๋ชจ๋ฆฌ(TLB)๋ก ์ ๊ทผ ์๊ฐ์ ์ค์ผ ์ ์์
memory protection
โข
page table ์ ๊ฐ entry ๋ง๋ค bit ๋ฅผ ๋๋ค.
โข
protection bit
โฆ
page ์ ๋ํ ์ ๊ทผ ๊ถํ(read, write, read-only)
โฆ
๋ณดํต code ๋ read-only, data์ stack ์ read, write
โข
valid-invalid bit
โฆ
valid ๋ ํด๋น ์ฃผ์์ frame ์ ๊ทธ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์ ํจํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค.
โฆ
invalid ๋ ํด๋น ์ฃผ์์ frame ์ ์ ํจํ ๋ด์ฉ์ด ์๋ค. ์ด ๊ฒฝ์ฐ๋ 1. ํ๋ก์ธ์ค๊ฐ ๊ทธ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ง ์๊ฑฐ๋, 2. ํด๋น ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์์ง ์๊ณ swap area ์ ์๋ ๊ฒฝ์ฐ์ด๋ค.
inverted page table
shared page
segmentation
โข
์๊ฒ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ํจ์ ํ๋ํ๋๋ฅผ segment
โข
ํฌ๊ฒ๋ ํ๋ก๊ทธ๋จ ์ ์ฒด๋ฅผ ํ๋์ segment
โข
๋ณดํต์ code, date, stack ๋ถ๋ถ์ด ๊ฐ๊ฐ segment
โข
์๋ฏธ๋จ์๋ก ์ชผ๊ฐ๊ธฐ๋๋ฌธ์ protection ์์ ์๋ฏธ ๋ถ์ฌ๊ฐ ์์ฐ์ค๋ฝ๋ค.
โข
ํ๋ก์ธ์ค๊ฐ sharing ํ ๋๋ ์๋ฏธ ๋จ์๋ก ํ๊ธฐ๋๋ฌธ์ ํ์ด์ง๋ณด๋ค ๋ ํจ๊ณผ์ ์ด๋ค.
paging vs segmentation
โข
ํ์ด์ง์ ํ์ด์ง ํฌ๊ธฐ๊ฐ ๊ท ์ผ ์คํ์
ํฌ๊ธฐ๊ฐ ํ์ด์ง ํฌ๊ธฐ์ ์ํด ๊ฒฐ์
โข
ํ์ด์ง์ ์์ ์ฃผ์, ์ธ๊ทธ๋ฉํ
์ด์
์ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ๊ฐ ๋ค ๋ฌ๋ผ์ ์ด๋์ ์์ํ๋์ง ์ ํํด์ผํ๋ค.
โข
์ธ๊ทธ๋จผํธ๋ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์๊ธฐ๋๋ฌธ์ ์ค๊ฐ์ค๊ฐ์ hole ์ด ์๊ธด๋ค.
paged segmentation
โข
segment ๋ฅผ page ๋ก ๋๋
๊ฒฐ๋ก
์ฃผ์ ๋ด์ฉ์ ์ฃผ์ ๋ณํ์ธ๋ฐ, ์ฃผ์ ๋ณํ์ ๋ชจ๋ ํ๋์จ์ด๊ฐ ํ๋ ์ผ!
โ ์ด์์ฒด์ ๊ฐ ํ๋ ์ผ์ ์๋ค!
โ CPU - ํ๋ก์ธ์ค - ๋ฉ๋ชจ๋ฆฌ ์์ ์ฃผ์ ๋ณํ์ด ํ์ํ๋ฐ, ์ด๋ ํ๋ก์ธ์ค - ์ด์์ฒด์ ๋ก ๋์ด๊ฐ๋ ๊ฒ์ ๋ง์ด ์๋๋ค. ์ด์ ์ฒด์ ๋ํ ํ๋์ ํ๋ก๊ทธ๋จ์ด๊ธฐ๋๋ฌธ์ CPU ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
โข
page table ์์ฒด๊ฐ ํฌ๊ธฐ๋ฅผ ๋ง์ด ์ฐจ์งํ๋ค.
๋์คํฌ(ํ์ผ ์์คํ
)์ ์คํ ํ์ผ๋ค์ด ์คํ์ด ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค ํํ๋ก ์ฌ๋ผ๊ฐ
๊ทธ๋ฐ๋ฐ ๋ฐ๋ก ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ง ์๊ณ ์์ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ธ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ ๋น์ฅ ํ์ํ ๋ถ๋ถ๋ง ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค. ์ธ์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค ์ฐจ๋ฉด ๋์คํฌ(์ค์ ์์ญ)์ผ๋ก ์ซ๊ฒจ๋๋ค.
ํ์ผ ์์คํ
๋์คํฌ๋ ์๊ตฌํ ์ ์ฅ ๊ฐ๋ฅ