Interview_memory/ paging/ swapping
โ
Dynamic Relocation ๐ Dynamic Loading ๐ Dynamic Linking
- Dynamic Relocation: runtime์
logical address
์์physical address
๋กaddress binding
์ด ์ผ์ด๋๋ ๊ฒ - Dynamic Loading: ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ํต์งธ๋ก ๋ฉ๋ชจ๋ฆฌ์
load
๋๋ ๊ฒ์ด ์๋๋ผ, ๋น์ฅ ์คํ์ ํ์ํ ๋ถ๋ถ๋งload
๋๋ ๊ฒ - Dynamic Linking: ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ
link
๋์ด ์คํํ์ผ์ด ๋ง๋ค์ด์ง๋๋ฐ, ๋ฏธ๋ฆฌlink
๋์ด ์์ง ์๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํธ์ถ๋๋ฉด ๊ทธ ๋link
๋๋ ๊ฒ.stub
๋ผ๋ ์ฝ๋๊ฐ ์ด๋ฏธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋์ง ํ์ธํ์ฌ ๋์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ์ค๋ณต ์ ์ฌ๋ฅผ ๋ฐฉ์งํ๋ค๋ ์ฅ์ ์ด ์๋ค.
Dynamic Loading ๐ Overlays
- Dynamic Loading: ํ๋ก๊ทธ๋จ์ด ์ชผ๊ฐ์ ธ์ ํ์ฌ ์คํ์ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋ ๊ฒ
- Overlays: Dynamic Loading๊ณผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ์ ํ์ฌ ์คํ์ ํ์ํ ํ๋ก์ธ์ค ๋ถ๋ถ๋ง ์ฌ๋ผ๊ฐ๋ค๋ ์ ์์ ๋น์ทํ๋, ๋ชฉ์ ์ด ๋ค๋ฅด๋ค. ๊ณผ๊ฑฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ฌด ์์ ํ๋์ ํ๋ก์ธ์ค์กฐ์ฐจ ์ฌ๋ฆด ์๊ฐ ์์ ๋, ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ์ชผ๊ฐ์ด ํ์ฌ ํ์ํ ๋ถ๋ถ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณค ํ์์. ํ๋์๋ ์ฐ์ด์ง ์์.
โ Linking์ด๋?
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ์ฝ๋๋ฅผ
link
ํด ์คํํ์ผ์ ๋ง๋๋ ๊ณผ์ - Static Linking: ํ๋ก๊ทธ๋๋จธ๋ค ์์ฑํ ์ฝ๋ + ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฝ๋ ๋ชจ๋ ํฉ์ณ์ ์คํํ์ผ ์์ฑ
- ๐๐ป ๋์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ๋ฒ ์ ์ฌ, ๋นํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
- Dynamic Linking:
link
๋ฅผexecution time
๊น์ง ๋ฏธ๋ฃจ๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์คํ๋๋ฉด ๊ทธ์ ์์ผlink
stub
์ด๋ผ๋ ์ฝ๋๊ฐ ์์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ฏธ ์ ์ฌ๋์ด ์๋์ง ํ์ธ, ์์ผ๋ฉด ๋ถ๋ฌ์ด.- ๐๐ป ๋์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ์ ์ฌ
โ ์ ๋ ์ฃผ์ ์ง์ ๊ณผ ์๋์ฃผ์ ์ง์ ์ ์ฐจ์ด์ ์ ๋ญ๊น์?
- ์ ๋ ์ฃผ์ ์ง์ : ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ์ฃผ์๋ฅผ ํ ๋นํด์ฃผ๋ ๋ฐฉ๋ฒ
๋ฎ์ ์ฃผ์์
OS
๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ์์๋ ์ฌ์ฉ์ ํ๋ก์ธ์ค๋ค์ด ์ ์ฌ๋จ- ์๋์ฃผ์ ์ง์ : ํ๋ก์ธ์ค๋ง๋ค ๋
์์ ์ผ๋ก ๊ฐ์ง๋
logical address
๋ฅผ ํ ๋นํด์ฃผ๋ ๋ฐฉ๋ฒ - ํ๋ก์ธ์ค๋ง๋ค ๋ ์์ ์ผ๋ก ๊ฐ์ง๊ธฐ ๋๋ฌธ์ 0์์๋ถํฐ ์์
โ ๋ฉ๋ชจ๋ฆฌ ๋ถํ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ๋ฉ๋ชจ๋ฆฌ ๋ถํ ์
- ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋
multiprogramming
ํ๊ฒฝ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ ์ฌํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋๋๋ ๊ฒ
continuous allocation
:fixed-size partition allocation
,variable-size partition allocation
non-continuous allocation
:paging
,segmentation
,paged-segmentation
โ Dynamic storage allocation problem (๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต)์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- in variable size partition allocation
where to allocate memory in different sized partitions
- First fit: ๊ฐ์ฉ ๊ณต๊ฐ์ ์ดํด๋ณด๋ค ์ ์ฌ๋ ์ ์๋ ๊ณต๊ฐ์ด ์์ผ๋ฉด ์ฆ์
load
- Best fit: ๊ฐ์ฉ๊ณต๊ฐ์ ๋ชจ๋ ์ดํด๋ณด๊ณ ์ฌ์ด์ฆ์ ์ ์ผ ์ ์ฌํ ๊ณต๊ฐ์
load
- ๐๐ป ์ ์ผ ์ ์ฌํ ๊ณต๊ฐ ์ฌ์ด์ฆ
- ๐๐ป ์๊ฐ ์ค๋ ๊ฑธ๋ฆผ
๐๐ป ์์
hole
๋ค์ด ๋ง์ด ์๊ธธ ์ ์์- Worst fit: ๊ฐ์ฉ๊ณต๊ฐ์ ๋ชจ๋ ์ดํด๋ณด๊ณ ์ ์ผ ํฐ ๊ณต๊ฐ์
load
- ๐๐ป ์์
hole
๋ค์ด ๋ง์ด ์๊ฒจ ๋์ค์ ํฐ ์ฌ์ด์ฆ์ ํ๋ก์ธ์ค๊ฐ ์์ ๋ ๊ณต๊ฐ ์์
โ ์ธ๋ถ ๋จํธํ์ ๋ด๋ถ ๋จํธํ์ ์ฐจ์ด๊ฐ ๋ญ๊ฐ์?
- external fragmentation: ์๋ก ์จ ํ๋ก์ธ์ค์ ํฌ๊ธฐ๊ฐ ์ปค์ ์ฒ์ ๋น์ด์๋
hole
์ ๋ค์ด๊ฐ์ง ๋ชปํ๊ณ , ๋ค์ ์ฌ์ด์ฆ์hole
์ ๋ค์ด๊ฐ - ์ฒ์ ๋น์ด์๋
hole
์ ๋น์ด์๊ฒ ๋จ - internal fragmentation: ์๋ก ์จ ํ๋ก์ธ์ค์ ํฌ๊ธฐ๊ฐ ์์์
hole
์ด ์ชผ๊ฐ์ง
โ
external fragmentation
์ด ๋ฐ์ํ๋ ์ด์
frame
์ ํฌ๊ธฐ๊ฐ ๊ท ์ผํ์ง ์๊ธฐ ๋๋ฌธ- segmentation
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ์ค ํ๋์ธ colaescing(ํตํฉ)์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- external fragmentation์ ๋ณด์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก,
- ์ธ์ ํ ๋
hole
์ ํฉ์ณ ํฐhole
์ ๋ง๋ฌ - ๊ทธ๋์ ํฐ ํ๋ก์ธ์ค๊ฐ ๋ค์ด๊ฐ ์ ์๋๋ก ํจ
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ์ค ํ๋์ธ compaction(์์ถ)์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- colaescing๋ฅผ ํ๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ํ๋ก์ธ์ค๊ฐ ๋ค์ด๊ฐ์ง ๋ชปํ ๋
- ๋ชจ๋
hole
์ ํ์ชฝ์ผ๋ก ๋ชฐ๊ณ , ํ๋ก์ธ์ค๋ ๋ฐ๋์ชฝ์ผ๋ก ๋ชจ์ - ์์ฃผ ํฐ ํ๋์ ์ ๋ง๋ฌ
- ๐๐ป ๊ฑฐ์ ๋ชจ๋ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ์ ๋ฐ๊พธ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋ ๋น์ฉ์ด ํฌ๋ค
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ์ค ํ๋์ธ ๋ฒ๋ ์์คํ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
fixed-size partition allocation
์ ๋ด๋ถ ๋จํธํ,variable-size partition allocation
์ ์ธ๋ถ ๋จํธํ๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒbuddy
๋ผ๋ ๋ธ๋ก๋ค์ 2์ ์ ๊ณฑ ํฌ๊ธฐ๋ก ๋๋์๋ค, ํฉ์ณค๋ค ํ๋ฉด์ ์ ์ผ ๋น์ทํ ํฌ๊ธฐ์ ๋ธ๋ก์ ํ๋ก์ธ์ค ํ ๋น- ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ค ์ฐ์ด๊ณ ํด์ ๋๋ฉด ๊ณต๊ฐ ํฉ์น๊ธฐ ๊ฐ๋ฅ
โ ๊ฐ์ ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์(์ค์ฃผ์)์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
logical address
: ํ๋ก๊ทธ๋จ์ด ๋ ์์ ์ผ๋ก ๊ฐ์ง๋virtual memory
์ ์ฃผ์physical address
: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ load
๋ ์ฃผ์
โ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์(์ค์ฃผ์)๋ก ์ด๋ป๊ฒ ๋ณํํ ๊น์?
address binding
์ด๋ผ๊ณ ํจMMU
๋ผ๋ ํ๋์จ์ด๊ฐ ๋ด๋นMMU
๋base register(relocation register)
,limit register
์ ๊ฐ์ง๊ณ ์์limit register
์ ํตํดaddress binding
์์ฒญ์ด ๋ด ์ฃผ์๊ณต๊ฐ ๋ด์ ์๋ ์์ฒญ์ธ์ง ํ์ธ- ์ ํฉํ ์์ฒญ์ด๋ฉด
base register(relocation register)
์logical address
๋ฅผ ๋ํด์physical address
๋ฅผ ๊ตฌํ๋ค.
โ Types of address binding?
address binding
์์ ์ ๋ฐ๋ผ ๊ตฌ๋ถ- compile time: absolute code
- load time
- runtime(execution time):
swapping
,dynamic relocation
,compaction
โ address binding์ ๋๊ฐ ๋ด๋นํ๋์?
- ํ๋์จ์ด
MMU
- ์ด์์ฒด์ ๋
address binding
์ ๊ด์ฌํ์ง ์์
โ
MMU
์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ง๊ณ ์๋ register์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์
- Memory Management Unit
address binding
์ ๋ด๋นํ๋ ํ๋์จ์ดbase register(relocation register)
:physical memory
์์ ํ๋ก์ธ์ค๊ฐ ์์ํ๋ ์์นlimit register
: ํ๋ก์ธ์ค์ ํฌ๊ธฐ
โ
์ MMU
๋ limit register
๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ ๊น?
- ํ๋ก๊ทธ๋จ์ด ์๋ชป๋
address binding
์์ฒญ์ ํ๋ ๊ฒฝ์ฐ - (์์ ์ ์ฃผ์๊ณต๊ฐ์ ๋์ด์
address binding
์์ฒญ์ ํ๋ ๊ฒฝ์ฐ) - (๊ฐ ํ๋ก์ธ์ค๋ ์์ ์ ์ฃผ์๊ณต๊ฐ๋ง ์ ๊ทผํ ์ ์์)
- ์์ฒญ์ ์ฐจ๋จํ๊ธฐ ์ํด์
โ CPU๊ฐ ๋ฐ๋ผ๋ณด๊ณ ์คํํ๋ ์ฃผ์๋ ์ด๋ค ์ฃผ์์ผ๊น์?
logical address
- CPU๋
compile
๋ ๊ธฐ๊ณ์ด๋ฅผ ์คํ - ๊ทธ๋ฆฌ๊ณ
compile
ํ๋ฉดlogical address
๋ฅผ ์์ฑ
โ Swapping์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ค๊ธฐ scheduler์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ ์ฐจ๋ฉด
Multi Programming Degree
๋ฅผ ์ ์งํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ฅผbacking store/swap area
๋ก ์ซ์๋ - ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ ์ ์ฒด๋ฅผ ๋์คํฌ์ ์ค์ ์์ญ์ ์ผ์์ ์ผ๋ก ๋ด๋ ค๋์
- ๐๐ป ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค์ ์ ์กฐ์
โ Swapping์ ๊ณผ์ ์ ์ค๋ช ํด ์ฃผ์ธ์.
- ์ค๊ธฐ scheduler์ด ์ซ์๋ผ ํ๋ก์ธ์ค ์ ์
- ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํต์งธ๋ก
backing store/swap area
๋ก ์ซ์๋
- ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณต๊ฐ์ ํต์งธ๋ก
โ Swapping์ ์ฅ๋จ์ ์ ์ค๋ช ํด ์ฃผ์ธ์.
- ๐๐ป ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค์ ์ ์กฐ์
- ๐๐ป ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ๋ง์ ํ๋ก์ธ์ค๋ฅผ ์์ฉํ ์ ์๋๋ก ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๊ณผ ํ ๋น๋ ์ ์์
- ๐๐ป
backing store/swap area
๋DISK
๊ณต๊ฐ์ด๊ธฐ ๋๋ฌธ์I/O
๊ฐ ๋๋ฆฌ๋ค
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ์ค ํ๋์ธ ํ์ด์ง์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- noncontinuousํ๊ฒ ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ํฌ๊ธฐ์
page
์ ์ ์ฌ - ๋
ผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ, ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ผ ํฌ๊ธฐ์
page frame
์ผ๋ก ๋๋๊ณ page table
๋กaddress translation
- ๐๐ป
external fragmentation
๋ฐ์ํ์ง ์์ - ๐๐ป
internal fragmentation
๋ฐ์ - ๐๐ป ๋ฉ๋ชจ๋ฆฌ๋ฅผ 2๋ฒ ์ ๊ทผํด์ผ ํ๋ค
address translation
์ํด ๋ฉ๋ชจ๋ฆฌ์page table
์ ๊ทผ- ์ค์ ๋ฐ์ดํฐ ์ ๊ทผ
- ๐ ์๋ ํฅ์ ์ํด
TLB
โ
์ page table
์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ์๋์?
page table
์ ๊ฐ ํ๋ก์ธ์ค๋ง๋ค ๋ง๋ค์ด์ ธ์ผ ํ๊ณ ,32bit
ํ๊ฒฝ์์ ์ ์ฅํด์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค
โ
page table
์๋ ๋ฌด์์ด ์ ์ฅ๋์ด ์๋์?
- ํ์ด์ง ๋ฒํธ์
๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ช ๋ฒ์งธ ํ๋ ์์ ํ์ด์ง๊ฐ ๋ค์ด์๋์ง์ ๋ํ ์ ๋ณด
PTBR
: base register, ๋ฉ๋ชจ๋ฆฌ ๋ดpage table
์์นPTLR
: length register,page table
์ ํฌ๊ธฐ
โ
page table
์ ๊ธธ์ด๋ ์ ์๊ณ ์์ด์ผ ํ ๊น์?
- ๊ฐ ํ๋ก์ธ์ค๋ ์์ ์ ์ฃผ์๊ณต๊ฐ๋ง ์ ๊ทผ ๊ฐ๋ฅ
- ๋ด
page table
์ ๋์ด์๋ ์์ฒญํ๋ฉด โก๏ธ TRAP
โ ํ์ด์ง์์๋ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์(์ค์ฃผ์)๋ก ์ด๋ป๊ฒ ๋ณํํ ๊น์?
page table
์ฌ์ฉlogical address
์p
,d
๋ก ์ด๋ฃจ์ด์ ธ์๊ณp
: page ๋ฒํธd
: page๋ด์์ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง offset
page table
์์p
๋ฅผ ์ฐพ์f
๋ฅผ ์ป๊ณf
: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ํ์ด์ง ์์ ์์นf
์ ๋ฅผ ๋ํด์physical memory address
๋ฅผ ์ป๋๋ค
โ
TLB
์ ๋ชฉ์ ์?
- ํ์ด์ง ๊ธฐ๋ฒ์์
address translation
์ํดpage table
์ ์ ๊ทผํ๋๋ฐ ์๊ฐ ๊ฑธ๋ฆผ ๋ฐ๋ผ์ ์ผ์ข ์
cache
์ธTLB
์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ , ์๋ ํฅ์TLB
์๋p: page number
,f: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ํ์ด์ง ์์ ์์น
๊ฐ ์ ์ฅ๋์ด ์์- ๐๐ป
cache
์ด๊ธฐ ๋๋ฌธ์context switching
์ผ์ด๋ ํ๋ก์ธ์ค ๋ฐ๋๋ฉด ๋ค ๋ฐ๊พธ์ด์ผ ํจ - ๐๐ป
cache
์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฃผ์ ์ ์ฅ์ ๋ถ๊ฐ, index์์ด์ ๋ค ์ฐพ์๋ด์ผ ํจ ๐ associative register ์ฌ์ฉ: parallel search
TLB hit
์ผ ์๋กaddress translation time
ํจ์จ์
โ
Two level page table
๋ ๋ฌด์์ธ๊ฐ์?
page table
์ด ๋ฉ๋ชจ๋ฆฌ์์ ๋ง์ ๋ถ๋ถ์ ์ฐจ์งํ๊ณ , ์ฌ์ง์ดpage table
์ด ๋ค ์ฐ์ด๋ ๊ฒ๋ ์๋- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
page table
์page
๋ก ๋ง๋ ๋ค - ๋ ๊ฐ์
page table
์ ๋๊ณouter page table
,inner page table
์ฌ์ฉ๋์ง ์๋ ๊ฐ์ ๋ํด์๋
null
๊ฐ์ผ๋ก ์ค์ - ๐๐ป ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํจ์จ์ฑ
- ๐๐ป ์ฃผ์๋ณํ๊น์ง ํฌํจํด ๋ฉ๋ชจ๋ฆฌ 3๋ฒ ์ ๊ทผํด์ผ
โ
page table
์ valid, invalid bit
์ด๋?
valid
: ํ์ฌ ์์ฒญํ๋page
๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋คinvalid bit
: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ค OR ํ๋ก์ค๋จ์ด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ค
โ
Inverted page table
์ด๋?
- ๋ฌผ๋ฆฌ์ ์ฃผ์์ ๋ํด
page table
์ ๋ง๋ค์ด์ system-wide
ํ๊ฒpage table
์ด ํ๋๋ง ์กด์ฌ
โ
Shared Pages
๋?
- ํ๋ก์ธ์ค๋ค์ด ๊ณต์ ํ๋
code
๋ถ๋ถ์ ๋ํด์๋ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ์ ์ฌ - ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด์๋
- 1๏ธโฃ ๋ ผ๋ฆฌ์ ์ฃผ์๋ ๊ฐ์์ผ ํ๋ค
- 2๏ธโฃ
read-only
๋ง ๊ฐ๋ฅํด์ผ ํ๋ค
โ ๋ฉ๋ชจ๋ฆฌ ๋ฐฐ์น ๊ธฐ๋ฒ์ค ํ๋์ธ ์ธ๊ทธ๋ฉํ ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ํ๋ก์ธ์ค๋ฅผ ๋ถํ ํด์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋๋ฐ, ์๋ฏธ ๋จ์์ธ
segment
๋ก ๋ถํ code
,data
,stack
segment
์ ํฌ๊ธฐ๋ ๋ชจ๋ ๋ค๋ฅด๋คlogical address
=s
+d
s
: segment ๋ฒํธd
: segment๋ด์์ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง
segment table
์๋limit
,base
์ ์ฅlimit
: segment์ ๊ธธ์ดbase
: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ segment์์ ์์น
๋ฌผ๋ฆฌ์ ์ฃผ์:
base
+d
STBR
: base registerSTLR
: length registersegment table
์์๋ ์์ฒญ์ด ๋ค์ด์์ ๋ ๋ ๊ฐ์ง ํ์ธ- 1๏ธโฃ
d
๊ฐlimit
์ ๋์ด์์ง ์๋์ง 2๏ธโฃ
s
๊ฐ ๋ณด๋ค ์์์ง- ๐๐ป ์๋ฏธ ๋จ์๋ก ํ๋ก์ธ์ค๋ฅผ ๋๋๊ธฐ ๋๋ฌธ์ ํ์ด์ง๋ณด๋ค
Sharing
,Protection(read-write)
์ธก๋ฉด์์ ๊ด๋ฆฌ ํจ์จ - ๐๐ป allocation ๋ฌธ์ (first-fit, best-fit, worst-fit)
- ๐๐ป external fragmentation ๋ฌธ์ ๋ฐ์
โ Paged Segmentation์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
- ํ๋ก์ธ์ค๋ฅผ
segment
๋ก ๋๋๊ณ ์ดsegment
๋ฅผpage
๋ก ๋๋์ด ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ segment table
,page table
๋ชจ๋ ํ์- ๐๐ป
Sharing
,Protection(read-write)
์ธก๋ฉด์์ ๊ด๋ฆฌ ํจ์จ - ๐๐ป Allocation, external fragmentation ๋ฌธ์ ๋ฐ์ํ์ง ์์
โ
virtual memory
์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์.
- ํ๋ก์ธ์ค๊ฐ ์คํ๋์์ ๋ ๋ ์์ ์ผ๋ก ๊ฐ์ง๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ
- ํ๋ก์ธ์ค๋ง๋ค ๊ฐ์ ์ฃผ์ ํ ๋น
- 0์์ ์์
virtual memory
์ค ์ผ๋ถ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ, ์ผ๋ถ๋ ๋์คํฌswap area
์ ์ ์ฌ- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์ฅ ๊ณต๊ฐ์ผ๋ก
swap area
์ฌ์ฉ ๊ฐ๋ฅ - ๐๐ป ํ๋ก๊ทธ๋จ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ์ ์ฝ ๊ทน๋ณต
โ
Demand Paging
์ด๋?
- demand๊ฐ ์์ผ๋ฉด ๊ทธ ํ์ด์ง๋ฅผ paging, ์ฆ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋ค
โ
page replacement
์ ๋ํด์ ์ค๋ช
ํด์ฃผ์ธ์.
page fault
๊ฐ ๋ฐ์ํ์ฌ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๋นframe
์ ๋์คํฌ์์ ์ฝ์ด์จ ๊ฐ์ ์ ์ฅํ๋ ค๊ณ ํ๋๋ฐ- ๋น
frame
์ด ์์ ๋ - ๊ธฐ์กด
frame
์ ์ซ์๋ด์ด ๋น ๊ณต๊ฐ ๋ง๋ จ
โ
page fault
๋?
- CPU๊ฐ ์ฐธ์กฐํ๋ ค๋
page
๊ฐ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์์ง ์์ ์ํฉ - ๋์คํฌ์์ ๊ฐ์ ์ฝ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ๋น
frame
์ ์ ์ฅํด์ผ ํจ
โ
page fault
๋ฅผ ์ต์ํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
temporal locality
: ์ต๊ทผ ์ฐธ์กฐ๋page
๋ ๋ ์ฐธ์กฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋คLocality of reference
: ์ฐธ์กฐ๋๋page
์ ์ผ์ข ์ ์์๊ฐ๋ฅ์ฑ์ด ์๋ค- ์ด๋ฐ๊ฒ๋ค์ ๊ณ ๋ คํด ์ด๋ค ํ์ด์ง๋ฅผ
replace
ํ ์ง ์ ์๊ฐํด์ผํจ FIFO
,LFU
,LRU
,clock algorithm
`
โ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ FIFO์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ฅ ๋จผ์ ์ฌ๋ผ์จ
page
๋ฅผreplace
โ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ LRU์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ์ฐธ์กฐ ์๊ฐ์ด ๊ฐ์ฅ ์ค๋๋
page
๋ฅผreplace
temporal locality
๋ฐ์linked list
๋ก ๊ตฌํ,O(1)
โ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ LFU์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ์ฐธ์กฐ ํ์๊ฐ ๊ฐ์ฅ ์ ์
page
๋ฅผreplace
heap
์ผ๋ก ๊ตฌํ,O(logN)
In-cache LFU
: ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์๊ฐ๋ถํฐ ์ฐธ์กฐ ํ์ countPerfect LFU
:page
์ ๊ณผ๊ฑฐ ์ด ์ฐธ์กฐํ์ count
โ ์ paging system์์๋ LRU, LFU๊ฐ ๋ถ๊ฐ๋ฅํ๊ฐ?
- OS๋
page fault
๊ฐ ๋ ๋๋ง ๊ด์ฌ, ์ฐธ์กฐ ํ์/์ฐธ์กฐ ์๊ฐ ์ ์ ์์ address translation
์๋MMU ํ๋์จ์ด
๊ฐ ๋ด๋น, OS๋ ๋ชจ๋ฆ- ๋ฐ๋ผ์
page fault
๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด OS๋ ์ฐธ์กฐ ํ์/์ฐธ์กฐ ์๊ฐ ์ ์ ์์ - ๋ฐ๋ผ์ OS๋ ์ ํํ ์ฐธ์กฐ ํ์/์ฐธ์กฐ ์๊ฐ์ ์ ์ ์๊ธฐ ๋๋ฌธ์ LRU, LFU๊ฐ ๋ถ๊ฐ๋ฅ
โ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ clock ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- Second Chance algorithm(์๊ณ ๋ฐ๋์ด ๋ค์ ์ฌ๋์ ์ฐธ์กฐ๋์ด์ผ ํจ)
Not Recently Used
LRU
๋ฅผ ๊ทผ์ฌ์ํจ ์๊ณ ๋ฆฌ์ฆ- ํน์ ์๊ฐ๋์ ์ฐธ์กฐ๋์ง ์์
page
๋ฅผreplace
page
๋ฅผ ์ํ์ผ๋ก ๋ฐฐ์นํ๊ณ- ํ๋ก์ธ์ค๊ฐ ์ฐธ์กฐ๋๋ฉด ์ฐธ์กฐ ๋นํธ 1
- OS๋ฐ๋์ ์ฐธ์กฐ๋นํธ๊ฐ 1์ด๋ฉด 0์ผ๋ก ๋ฐ๊พธ๊ณ ์ง๋๊ฐ๊ณ
- ์ฐธ์กฐ๋นํธ๊ฐ 0์ด๋ฉด
replace
- OS๋ฐ๋์ด ํ ๋ฐํด ๋๋ ๋์ ์ฐธ์กฐ๋์ง ์์
page
๋ฅผreplace
โ clock ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ๋ฐฉ๋ฒ?
- reference bit(access bit)์ธ์๋
- modified bit(dirty bit)์ ๋์ด ์๋ก ๋ฐ๋ ๊ฐ์ ์ ์ฅํ๊ณ
replace
โ Page Frame Allocation์ด๋? ํ์์ฑ์?
- ํ๋ก์ธ์ค๋ณ๋ก ๋ค๋ฅด๊ฒ
frame
์ ํ ๋น ํ๋ก์ธ์ค ์ํ์ ํ์ํ ์ต์ํ์
frame
์ด ์๊ธฐ ๋๋ฌธ- equal allocation
- priority allocation
- proportional allocation: ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋ฐ๋ผ
frame
์ ๋ค๋ฅด๊ฒ ํ ๋น
โ Two types of replacement methods in allocation?
- Global Replacement: ํ๋ก์ธ์ค๊ฐ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ๊ฒฝ์, ๋ค๋ฅธ ํ๋ก์ธ์ค์
frame
๋นผ์์ ์ ์์ - Local Replacement: ๊ฐ ํ๋ก์ธ์ค์๊ฒ ์ผ์
frame
์ ํ ๋น, ํ๋ก์ธ์ค ๋ด๋ถ์์ ๊ฒฝ์
โ Thrashing์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํด ์ต์
frame
์ ์๋ฅผ ํ ๋น๋ฐ์ง ๋ชปํด - memory์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ผ๊ฐ
pafe fault
๊ฐ ์ง๋์น๊ฒ ๋ง์ด ๋ฐ์ํ์ฌcpu utilization
์ด ๊ฐ์ํ๋ ๊ฒcpu utilization
์ด ๋ฎ์ผ๋ฉด, OS๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค๋ฅผ ๋ ๋ง์ด ์ ์ฌ- ํ๋ก์ธ์ค๋ ์ํ์ ์ํด ์ผ์ ์ ์ด์์ ์ด
frame
์ด ํ์ํ๋ฐ - ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ์์ด
frame
์ ํ ๋น๋ฐ์ง ๋ชปํจ page fault
๊ณ์ ๋ฐ์cpu utilization
๊ฐ์
โ ์ํน ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
Thrashing
์ ๋ณด์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก- ํ๋ก๊ทธ๋จ ์คํ์ ํ์ํ ์ต์
frame
์working set
์ผ๋ก ๋ง๋ค๊ณ - ์ด
working set
์ด ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ๋๋ ๊ฒ์ ๋ณด์ฅํด์ค๋ค working set
์ด ํ๊บผ๋ฒ์ ์ฌ๋ผ๊ฐ ๋งํผ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ์์ผ๋ฉด ์์ ์ ์ฌํ์ง ์์working set window
๋ ๊ฐ๋ณ์
โ ํ์ด์ง ๋ถ์ฌ ๋น๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
page fault rate
์ ์ํ๊ฐ, ํํ๊ฐ์ ๋๊ณ- ์ํ๊ฐ์ ๋์ด์๋ฉด
frame
์ ๋ ๋ง์ด ํ ๋น - ํํ๊ฐ๋ณด๋ค ๋จ์ด์ง๋ฉด
frame
์ ๋นผ์์
์ ๋ ์ฃผ์ ์ง์ ๊ณผ ์๋์ฃผ์ ์ง์ ์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น์ ์ ๋์ฃผ์์ง์ ์ ์ฃผ๋ก ์ด๋์์ ์ฌ์ฉ๋ ๊น์? ์๋์ฃผ์๊ฐ ์ ๋์ฃผ์๋ก ๋ณํ๋๋ ๊ณผ์ ? Address binding. Mum ๋ผ๋ ํ๋์จ์ด. 2๊ฐ์ง์ ๋ ์ง์คํฐ. ํ๋ก์ธ์ค๊ฐ ์ด๋์์ ์์ํ๋์ง base ๋ ์ง์คํฐ๋ฅผ ๊ฐ๊ณ ์๊ณ . Limit ๊ฐ์ ๊ฐ๊ณ ์์. ๋ ผ๋ฆฌ์ ์ฃผ์์ p์ d ๊ฐ์ ๊ฐ๊ณ ์๋๋ฐ, P ๋ ํ์ด์ง๋ฒํธ, d ๋ ํ์ด์ง์์ ์ผ๋ง๋ ๋จ์ด์ ธ์๋์ง์ offset. ๋ฒ๋ ์์คํ ๊ณ ์ ๋ถํ ๊ณผ ๋ณ๋๋ถํ ๋ฐฉ์์ ๋ณด์ํ๊ธฐ์ํด ๋์์. ํ๋์ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ 2^n ์ผ๋ก ๋๋๊ณ , ํ๋ํ๋๋ฅผ ๋ฒ๋๋ผ๊ณ ๋ถ๋ฅด๊ณ ์์. ์ฅ์ ์ ์ธ๋ถ๋จํธํ, ๋ด๋ถ๋จํธํ๋ฅผ ์ค์ผ์์๋ค. ๋ด๋ถ๋จํธํ๋ ์ด๋จ๋ ๋ฐ์ํ๋์? -> ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋น๊ณต๊ฐ์ ๋ค์ด๊ฐ๋ คํ ๋, ์ด ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋ ์ปค์ ์กฐ๊ฐ์ด ์ชผ๊ฐ์ง๋ ๋จ์๊ณต๊ฐ. ์ธ๋ถ๋จํธํ๋ ์ด๋จ๋ ๋ฐ์ํ๋์? -> ์ธ๋ถ๋จํธํ๋ ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ค๊ฐ ๋๊ฐ์๋ ๋น์ด์๋๊ณณ์ ๋ค์ด๊ฐ๋ คํ๋๋ฐ, ๊ฑฐ๊ธฐ๋ณด๋ค ์์์ ๋ ํฐ๊ณต๊ฐ์ ๋ค์ด๊ฐ์ผํ ๋ ํ์ด์ง๊ณผ ์ธ๊ทธ๋ฉํ ์ด์ ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์ ํ์ด์ง์ page ๋ผ๋ ๋์ผํฌ๊ธฐ์ ๋ถํ ์กฐ๊ฐ. ์ธ๊ทธ๋ฉํ ์ด์ ์ ์ด๋ค ์๋ฏธ๋จ์์ธ ์ธ๊ทธ๋จผํธ๋ก ๋๋๋๊ฒ. ํฌ๊ธฐ๊ฐ ๋์ผํ์ง์๋ค ๋ผ๋ ํน์ง. ์ด๋ค ์๋ฏธ๋จ์๋ผ๋๊ฒ์? ์ฝ๋, ๋ฐ์ดํฐ, ์คํ ๋ฑ, ํ์์์ํ ํจ์๊ฐ๋ ์๋์๊ณ , ๊ณต๊ฐ์ ์ฒด๊ฐ ๋ ์๋์๋ค. ์ธ๊ทธ๋ฉํ ์ด์ ์์ ๋ฐ์ํ๋ ์ธ๋ถ๋จํธํ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ ์์์๊น์? ํตํฉ์ด๋ ์์ถ์ ๊ฐ๋ ์ฐจ์ด? ์ด๋ค ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ ค๊ณ ํ ๋ ์ธ์ ํ ํ์ ํฉ์ณ์ ๋ ํฐ ํ์ ํฉ์น๋๊ฒ. ๋ ํฌ๊ธฐ๊ฐ ํฐ๊ฒ๋ ์ ์ฌ๋ ์์์. Compaction ์์ถ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ ค๊ณ ํ๋ ํ๋ก์ธ์ค์ ํฌ๊ธฐ๊ฐ ๋ง๋ค์ด์ง ํ๋ณด๋ค ์ปค์ ๋ ํฐ ํ์ด ํ์ํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ์ชฝ์ผ๋ก๋ ๋ชจ๋ ํ๋ก ๋ชฐ๊ณ , ๋ค๋ฅธํ๋ก๋ ํ๋ก์ธ์ค๋ฅผ ๋ชฐ์์ ํฐ ํ์ ๋ง๋๋๊ฒ. ์๋ฐ์ gc ๋ ์ด๋ป๊ฒ๋์ํ๋๊ฐ? Gc ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๋ฒ์ฉ ์ฌ์ฉ๋์ง์๋ ๋ฐ์ดํฐ๋ค์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์์ ํ ํ์์์ด, ํ๋ฒ์ฉ ์ ๋ฆฌํด์ค๋ค. ํ๋ฒ์ฉ ์ฒญ์ํ๋๊ฒ๊ณผ ๋ถ๋ถ์ ์ผ๋ก ์ ๋ฆฌํจ
๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ์? ์ค์ ๋ก ์กด์ฌํ์ง์์ง๋ง, ํ๋ก๊ทธ๋จ์ด ๋ ์์ ์ผ๋ก ๊ฐ์ง๋ ๊ณต๊ฐ. ์ฅ์ ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ํ๊ณ๋ฅผ ๋์ด์์ ํ๋ก์ธ์ค์ ํ ๋นํ ์์๋ค. ๋ผ๋ ์ฅ์ ์ด์๋ค. ๋จ์ ์ ์ด๋ค๊ฒ์์๊น์? Process ๊ฐ ์คํ๋์๋ ์๊ธฐ๋ง์์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ฐ๊ฟ์ผํ๊ธฐ๋๋ฌธ์ ๊ณผ์ ์ด ์ถ๊ฐ๋๊ธฐ๋๋ฌธ์ ํจ์จ์ ์ด์ง์๋ค. ํ์ด์ง์ ํ๋ ์์ ๊ฐ๋ ์ฐจ์ด๋ฅผ ์๊ณ ์๋์? ํ์ด์ง๋ ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ์ชผ๊ฐ ๊ฒ. ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์์ ๋์ผํ ํฌ๊ธฐ๋ก ๋ถํ ํด๋์๊ฒ์ ํ๋ ์์ด๋ผ๊ณ ํจ. ํ์ด์ง๊ณผ ํ๋ ์์ ํฌ๊ธฐ๊ฐ ๊ฐ์์ 1:1 ๋งคํํจ. ํ์ด์ง ๊ต์ฒด๋ Page ๊ต์ฒด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋ฆฌ๋ ค๋๋ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ์ฐจ์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ซ์๋ด๊ณ , ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฆฌ๋๊ฒ. ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ค๊ฒ๋ค์ด ์์๊น์? Opt ?? Fifo, LRU, LFU, clock ์๊ณ ๋ฆฌ์ฆ LRU LFU ๋ ์ด๋ป๊ฒ ์ฐจ์ด๊ฐ์๋์? LRU ๊ฐ์ฅ ์ค๋์ ์ ์ฐธ์กฐ๋๊ฒ. LFU ๋ ?? LRU ๋ linked list, LFU ๋ ์ด๋ค๊ฑธ๋ก heap ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. LRU ์ clock ์๊ณ ๋ฆฌ์ฆ์ ์ฐจ์ด๋ ๋ง์ํด์ฃผ์ธ์ ๊ฐ์ฅ ์ค๋์ ์ ์ฐธ์กฐ๋ ํ์ด์ง, clock ์ ์ต๊ทผ์ ์ฐธ์กฐ๋์ง์์ ํ์ด์ง๋ฅผ ๊ต์ฒดํ๋๊ฒ.
์ฐ๋ ์ฑ์ด๋? CPU ์ฌ์ฉ์จ์ด ๋ฎ์ผ๋ฉด, os ๋ ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค๊ฐ ์๋ค ๋ผ๊ณ ์๊ฐํจ. ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค๋ฅผ ๊ณ์ ์ฌ๋ฆฌ๊ฒ๋จ ์ฐ๋ ์ฑ์ ์ด๋ป๊ฒ ๋ฐฉ์งํ ์์๋์? Work set ๋ฐฉ์ -> ๋ก์ปฌ๋ฆฌํฐ. ํ๋ก์ธ์ค๊ฐ ํ๋ฒ์ ์ฐธ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ์ ์งํฉ. Worksheet window ๋ผ๋๊ฒ. ์ด ์๋์ฐ๊ฐ ์ฌ๋ผ๊ฐ๋๊ฒ์ ๋ณด์ฅํ๋ ๋ฐฉ์. ๊ณต๊ฐ์ด ํ๋ณด๋์ง์์ผ๋ฉด work set ์ ์ฌ๋ฆฌ์ง์์. ๊ณ์ํด์ ๊ณต๊ฐ์ด ํ๋ณด๋์ง์์ผ๋ฉด ํ๋ก์ธ์ค๋ ์์ํ ์คํ์๋๋์? Os ๋ ์ด๋ป๊ฒ ํด๊ฒฐํ ์์์๊น์? Page fault trace ๋ฐฉ์ -> ํ์ด์ง ๋ถ์ฌ๊ฐ ๋ฐ์ํ๋ ํํ์ ๊ณผ ์ํ์ ์ ์ ํจ. ํ์ด์งํด๋๊ฐ ์ํ์ ์ ๋์ผ๋ฉด ํ๋ ์์ ํ ๋นํด์ฃผ๊ณ , ํํ์ ์ ๋์ผ๋ฉด ํ๋ ์์ ๋บ๋๋ค Swapping ์ ๊ฐ๋ ๊ณผ ์ฅ๋จ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฝ์ฐผ์๋ ์ค์์์ญ์ผ๋ก ์ซ์๋ด๋๊ฒ. ์ค๊ธฐ์ค์ผ์ค๋ฌ๊ฐ ๋ด๋นํจ. ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํด์ ์ ์ซ์๋ด์ผํจ. ์ค์ํ์ ํ์๋ ์ฅ์ ์ ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋์ด์ ํ ๋นํ ์์๊ณ , ๋จ์ ์ผ๋ก๋ swap out ์ด ๋์๋, Swap in ํด์ผํ๋ ๊ด๋ฆฌํฌ์ธํธ๊ฐ ์๊น. ์ค์์์ญ์ด๋๊ฑด ์ด๋ค ์์ญ์๋งํ๋์? ๋ฐฑ์ ๊ณต๊ฐ?? ๋์คํฌ์ ์๋๊ณต๊ฐ์ ๋งํ๋ค. ๋์คํฌ์ ์๋ ํ์ด์ง๋ฅผ ํ์ํด์ผํ๋๋ฐ ์ด๋ ํ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ค๊ฒ ์์๊น์?
์ด๋ ฅ์๋ ๊ฐ๋จํ๊ฒ ์ฐ๋, ํฌํธํด๋ฆฌ์ค์์ ์์ธํ๊ฒ ์ ์ (์ด๋ ฅ์๋ ๋ณดํต ์ธ์ฌํ์์ ๋ณด๋๊ฒฝ์ฐ๊ฐ๋ง์) ์๊ท๋ชจ ํ์ฌ์๋ ์ด๋ ฅ์๋จ๊ณ๋ถํฐ ์์ธํ๊ฒ ์ฐ ์งํํ๋ค ํ๋ก์ ํธ์ ์;์คํ ์ํคํ ์ฒ๋ฅผ ๊ทธ๋ฆด์์์์ ๋๋ก ๊ณต๋ถํด์ผํ๊ณ ์ํคํ ์ฒ๋ง๋ค ๊ฐ ํน์ง์ ์ ์์๋์ ์ผํจ (route53, ec2, alb, rds ์ด๋ฐ ๊ฐ component ๋ค ์. ใ ใ ๋ถํด์ผํ๊ณ ) ํ์ฌ ์ํคํ ์ฒ์ ๋ฌธ์ ์ ์ด๋, ๊ฐ์ ํ ์ JPA ๋ฅผ ์ฐ์ จ์ผ๋๊น, JPA ์ ํน์ง์ ๋ํด ์์ธํ๊ฒ ๊ณต๋ถ + ๋ค๋ฅธ ORM ๊ณผ์ ์ฐจ์ด์ ์ค๋ฌด์์๋ join ์ ์ ํ์ง์๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ธ์ด์์ ์ฒ๋ฆฌํ๊ฑฐ๋, ํ ์ด๋ธ์ ์ญ์ ๊ทํ ํ๋ ๊ฒฝ์ฐ๋ ์๋ค. ์ฌ๋ฌํ ์ด๋ธ์ join ํด์ ๊ฐ์ ธ์ค๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง์์์๊ฑฐใ ใ ์๋ฐ, ์ด๋ฐ๊ฑด ์ด๋ป๊ฒ ๋๋นํ๊ณ ์ฒ๋ฆฌํ๋์ง
ํ๋ก์ ํธ์ ๋ํด ํด๊ฒฐํ๊ณ ์ํ๋ ๋ฌธ์ ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง,MVP ๋ ๋ฌด์์ธ์ง์ ๋ํด ์์ธํ๊ฒ ์ ๊ธฐ. ๊ตฌํํ ํ๋ก์ ํธ์ ์์คํ ์ํคํ ์ฒ์ ๋ํด ์์ธํ๊ฒ ๊ณต๋ถํ๊ธฐ