Virtual Memory 2
Last updated
Last updated
caching ๊ธฐ๋ฒ
ํ์ ๋ ๋น ๋ฅธ ๊ณต๊ฐ (=์บ์)์ ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด๋์๋ค๊ฐ ํ์ ์์ฒญ์ ์บ์ฌ๋ก๋ถํฐ ์ง์ ์๋น์ค ํ๋ ๋ฐฉ์
paging system ์ธ์๋ cache memory, buffer caching, web caching ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ค.
cache ์ด์ ์๊ฐ ์ ์ฝ
๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์์ ์ญ์ ํ ํญ๋ชฉ์ ๊ฒฐ์ ํ๋ ์ผ์ ์ง๋์น๊ฒ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ, ์ค์ ์์คํ ์์ ์ฌ์ฉํ ์ ์๋ค.
buffer caching ์ด๋ web caching ์ ๊ฒฝ์ฐ, O(1) ~ O(log n) ์ ๋ ๊น์ง๋ง ํ์ฉ๋๋ค.
paging system ์ ๊ฒฝ์ฐ
page fault ์ธ ๊ฒฝ์ฐ์๋ง OS ๊ฐ ๊ด์ฌํ๋ค.
ํ์ด์ง๊ฐ ์ด๋ฏธ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ฐธ์กฐ์๊ฐ ๋ฑ์ ์ ๋ณด๋ฅผ OS ๊ฐ ์ ์ ์๋ค.
O(1) LRU ์ list ์กฐ์ ์กฐ์ฐจ ๋ถ๊ฐ๋ฅํ๋ค.
LRU ์ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ
์ฌ๋ฌ ๋ช ์นญ์ผ๋ก ๋ถ๋ฆฌ๊ณ ์๋ค.
second change algorithm
NUR(Not Used Recently) or NRU(Not Recently Used)
๋์๋ฐฉ์
reference bit ์ ์ฌ์ฉํด์ ๊ต์ฒด ๋์ ํ์ด์ง๋ฅผ ์ ์ ํ๋ค. โ circular list
CPU๊ฐ ํ์ด์ง๋ฅผ ์ฝ์ด๋ค์ฌ ์ฐธ์กฐํ๊ฒ ๋๋ฉด ํ๋์จ์ด๋ reference bit ์ 1๋ก ๋ฐ๊พผ๋ค.
์ด์์ฒด์ ๋ circular list ์ ๋๋ฉด์ reference bit ์ด 0์ธ ๊ฒ์ ์ฐพ์ ๋๊น์ง ํฌ์ธํฐ๋ฅผ ํ๋์ฉ ์์ผ๋ก ์ด๋ํ๋ค.
ํฌ์ธํฐ๋ ์ด๋ํ๋ฉด์ reference bit 1 โ 0์ผ๋ก ๋ฐ๊พผ๋ค.
reference bit = 0 ์ธ ๊ฒ์ ์ฐพ์ผ๋ฉด ๊ทธ ํ์ด์ง๋ฅผ ๋ด๋ณด๋ธ๋ค (๊ต์ฒดํ๋ค)
ํ ๋ฐ๋ ๋๋์์์๋ (=second chance) reference bit ๊ฐ ์ฌ์ ํ 0์ด๋ฉด, ๊ทธ๋๋ replace ๋นํ๋ค.
์์ฃผ ์ฌ์ฉ๋๋ ํ์ด์ง๋ผ๋ฉด second chance ๊ฐ ์ฌ ๋ 1๋ก ๋ฐ๋์ด์์ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ reference bit = 1 ์ ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง์์ ๋ปํ๋ค.
์ด ๋ฐฉ๋ฒ์ผ๋ก ์ด๋์ ๋ LRU ์ ๋น์ทํ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค.
๊ฐ์ ๋ฐฉ๋ฒ
reference bit ๊ณผ modified bit (dirty bit)์ ํจ๊ป ์ฌ์ฉํ๋ค.
reference bit = 1 : ์ต๊ทผ์ ์ฐธ์กฐ๋ ํ์ด์ง
modified bit = 1 : ์ต๊ทผ์ ๋ณ๊ฒฝ๋ ํ์ด์ง (I/O๋ฅผ ๋๋ฐํ๋ ํ์ด์ง) / write ๋ ํ์ด์ง
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ์ด์ ๋ก ์ ์ด๋ CPU ์์ ํ๋ฒ์ ์์ ์ด ๊ฐํด์ง ์ํ์ด๋ค.
์ด ํ์ด์ง๊ฐ replace ๋์์ด ๋ ๊ฒฝ์ฐ, ๊ทธ๋ฅ ๋ฉ๋ชจ๋ฆฌ์์ ๋ด์ซ๋ ๊ฒ์ด ์๋๋ผ backing store ์ ์ ์ฅ์ ํ ํ, ๋ด์ซ์์ผํ๋ค.
๊ฐ ํ๋ก์ธ์ค์ ์ผ๋งํผ์ ํ์ด์ง ํ๋ ์์ ํ ๋นํ ๊ฒ์ธ๊ฐ? ๋ผ๋ ์ง๋ฌธ์์ ์ถ๋ฐํ๋ค.
allocation ์ ํ์์ฑ
๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ ๋ช ๋ น์ด ์ํ์, ๋ช ๋ น์ด, ๋ฐ์ดํฐ ๋ฑ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๋์์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ
๋ช ๋ น์ด ์ํ์ ์ํด์ ์ต์ํ ํ ๋น๋์ด์ผํ๋ frame ์ ์๊ฐ ์๋ค.
loop ๋ฅผ ๊ตฌ์ฑํ๋ ํ์ด์ง๋ค์ ํ๊บผ๋ฒ์ allocate ๋๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.
์ต์ํ์ allocation ์ด ์์ผ๋ฉด ๋งค loop ๋ง๋ค page fault ๊ฐ ๋๊ฒ ๋๋ค.
allocation scheme
equal allocation : ๋ชจ๋ ํ๋ก์ธ์ค์ ๋๊ฐ์ ๊ฐ์๋ฅผ ํ ๋นํ๋ค.
proportional allocation : ํ๋ก์ธ์ค ํฌ๊ธฐ์ ๋น๋กํ์ฌ ํ ๋นํ๋ค.
priority allocation : ํ๋ก์ธ์ค์ priority ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ ๋นํ๋ค.
gloval replacement
replace ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ํ๋ ์์ ๋นผ์์ ์ฌ ์ ์๋ค.
ํ๋ก์ธ์ค๋ณ๋ก ํ ๋น๋์ ์กฐ์ ํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ๋๋ค.
FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ global replacement ๋ก ์ฌ์ฉ์์ ํด๋นํ๋ค.
ํ ๋น ํจ๊ณผ๊ฐ ์๋ working set
, PFF
์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
local replacement
์์ ์๊ฒ ํ ๋น๋ frame ๋ด์์๋ง replacement ๋ฅผ ํ๋ค.
FIFO, LRU, LFU ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ์ process ๋ณ๋ก ์ด์ํ ๋ ์ฌ์ฉํ๋ค.
ํ๋ก์ธ์ค์ ์ํํ ์ํ์ ํ์ํ ์ต์ํ์ page frame ์๋ฅผ ํ ๋น๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค.
๋ฐ์๊ณผ์
multiprogramming ์ ๋๋ฅผ ๊ณ์ ๋์ด ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๊ณ์ ์ฆ๊ฐํ๋ฏ๋ก, page fault rate ์ด ๋งค์ฐ ๋์์ง๋ค.
๊ทธ๋ ๊ฒ ๋๋ฉด CPU๋ ๋ฑํ ํ ์ผ์ด ์์ด์ ๊ทธ ์ฌ์ฉ๋ฅ ์ด ๋งค์ฐ ๋ฎ์์ง๊ฒ ๋๊ณ ,
CPU ๊ฐ ๋๊ณ ์๋ ๊ฒ์ ๋ณธ ์ด์์ฒด์ OS ๋ ๋ค์ multi programming degree MPD ๋ฅผ ๋์ฌ์ผํ๋ค๊ณ ํ๋จํ๊ฒ ๋๋ค.
๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์คํ ์ ์ถ๊ฐ๋๋ฉด multi-programming degree MPD ๊ฐ ๋ ๋์์ง๊ณ
ํ๋ก์ธ์ค๋น ํ ๋น๋ frame ์๊ฐ ๋์ฑ ๊ฐ์ํ๊ฒ ๋๋ฉด์
ํ๋ก์ธ์ค๋ page์ swap in / swap out ์ผ๋ก ๋งค์ฐ ๋ฐ์๊ฒ ๋๋ค.
๋๋ถ๋ถ์ ์๊ฐ์ CPU๋ ํ๊ฐํ๊ฒ ๋๋ค.
low throughtput
์๋ฐฉํ๋ ๋ฐฉ๋ฒ
multi-programmind degree ๋ฅผ ์กฐ์ ํด์ฃผ์ด์ผ ํ๋ค.
์ด๋ฅผ ์ํด working-set, PFF ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
locality of reference
ํ๋ก์ธ์ค๋ ํน์ ์๊ฐ๋์ ์ผ์ ์ฅ์๋ง์ ์ง์ค์ ์ผ๋ก ์ฐธ์กฐํ๋ค.
์ง์ค์ ์ผ๋ก ์ฐธ์กฐ๋๋ ๋์ page ๋ค์ ์งํฉ์ locality set ์ด๋ผ๊ณ ํ๋ค.
working-set model
locality ์ ๊ธฐ๋ฐํ์ฌ ํ๋ก์ธ์ค๊ฐ ์ผ์ ์๊ฐ๋์ ์ํํ๊ฒ ์ํ๋๊ธฐ ์ํด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ํ๋ page ๋ค์ ์งํฉ์ working set
์ด๋ผ๊ณ ์ ์ํ๋ค.
working set ๋ชจ๋ธ์์๋ process ์ working set ์ ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ด์ผ ์ํ๋๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ, ๋ชจ๋ frame ์ ๋ฐ๋ฉํ ํ swap out (suspend)
์ด ๋ชจ๋ธ์ ํตํด์thrashing ์ ๋ฐฉ์งํ ์ ์๊ณ
multi-programming degree ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
working set window ๋ฅผ ํตํด์ ์์๋ธ๋ค.
working set ๋จ์๋ฅผ ์ ํ๋ค. A ๋ผ๊ณ ๊ฐ์ ํด๋ณด์์ ๋,
์๊ฐ t์์์ working set WS(t) ๋
time inverval [t-A, t] ์ฌ์ด์ ์ฐธ์กฐ๋ ์๋ก ๋ค๋ฅธ ํ์ด์ง๋ค์ ์งํฉ์ด ๋๋ค.
working set ์ ์ํ page ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ๊ณ , ์ํ์ง ์๋ ๊ฒ์ ๋ฐ๋ก ๋ฒ๋ฆฐ๋ค.
๋ค์ ๋งํ์๋ฉด, ์ฐธ์กฐ๋ ํ A๋งํผ์ ์๊ฐ๋์ ํด๋น page ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํ ํ ๋ฒ๋ฆฌ๊ฒ ๋๋ค.
process ๋ค์ working set size ์ ํฉ์ด page frame ๋ณด๋ค ํฐ ๊ฒฝ์ฐ,
์ผ๋ถ ํ๋ก์ธ์ค๋ค์ swap out ์ํค๊ณ ๋จ์ process ์ working set์ ์ฐ์ ์ ์ผ๋ก ์ถฉ์กฑ์์ผ ์ค๋ค. โ MPD ๋ฅผ ์ค์ธ๋ค.
working set ์ ๋ค ํ ๋นํ๊ณ ๋ page frame ์ด ๋จ๋ ๊ฒฝ์ฐ๋ผ๋ฉด
swap out ๋์๋ ํ๋ก์ธ์ค์๊ฒ working set ์ ํ ๋นํ๋ค. MPD ๋ฅผ ํค์ด๋ค.
window size A
working set ์ ์ ๋๋ก ํ์งํ๊ธฐ ์ํด์๋ window size ๋ฅผ ์ ๊ฒฐ์ ํด์ผํ๋ค.
A๊ฐ์ด ๋๋ฌด ์์ผ๋ฉด locality set ์ ๋ชจ๋ ์์ฉํ์ง ๋ชปํ ์ฐ๋ ค๊ฐ ์๊ณ
๋๋ฌด ํฌ๋ฉด ์ฌ๋ฌ ๊ท๋ชจ์ locality set ์ ์์ฉํ๊ฒ ๋๋ค.
A ๊ฐ์ด ๋ฌดํ๋๋ฉด, ์ ์ฒด ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ page ๋ฅผ working set ์ผ๋ก ๊ฐ์ฃผํ๊ฒ ๋๋ค.
page-fault rate ์ ์ํ๊ฐ๊ณผ ํํ๊ฐ์ ๋๋ค.
page fault rate ์ด ์ํ๊ฐ์ ๋์ผ๋ฉด frame ์ ๋ ํ ๋นํ๋ค.
page fault rate ์ด ํํ๊ฐ ์ดํ์ด๋ฉด ํ ๋น frame ์๋ฅผ ์ค์ธ๋ค.
๋น frame ์ด ์์ผ๋ฉด ์ผ๋ถ ํ๋ก์ธ์ค๋ฅผ swap out ํ๋ค.
ํ์ด์ง ์์คํ ์์๋ ๋์ผํ ํฌ๊ธฐ๋ก virtual, physical memory ๋ฅผ ์๋ฅธ๋ค.
page size ๋ฅผ ๊ฐ์์ํค๋ฉด
ํ์ด์ง์ ์๊ฐ ์ฆ๊ฐํ ๊ฒ์ด๊ณ
ํ์ด์ง ํ ์ด๋ธ์ ํฌ๊ธฐ ์ญ์ ์ฆ๊ฐํ ๊ฒ์ด๋ค.
ํ์ง๋ง ๋ด๋ถ์ ๋จ๋ ๋น ๊ณต๊ฐ์ธ internal fragmentation ๋ ๊ฐ์ํ ๊ฒ์ด๋ฉฐ
disk transfer ์ ํจ์จ์ฑ ์ญ์ ๊ฐ์ํ ๊ฒ์ด๋ค.
seek/rotation vs. transfer
ํ์ํ ์ ๋ณด๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ์ด์ฉ์ด ํจ์จ์ ์ด๊ฒ ๋ ๊ฒ์ด๋ค.
locality ํ์ฉ ์ธก๋ฉด์์๋ ์ข์ง ์๋ค.
trend
larger page size