Background
ํ๋ก๊ทธ๋จ์ด ์์ฃผ ๋ง์ Instruction์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๋ค Load ํ๋ ๊ฒ์ด ํ์ํ๊ฐ?
์ค์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ๋ชจ๋ ์์ญ์ด ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋๋ค. ์๋ฅผ ๋ค์ด Error handling code๋ค์ error ๋ฐ์ ์ด์ ๊น์ง ์ฌ์ฉ๋์ง ์๋๋ค. ํ์ํ ๋ถ๋ถ๋ง์ load ํ์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋ค.
Background
ํ์ํ ๋ถ๋ถ๋ง์ loadํ๋ฉด ์ฌ๋ฌ๊ฐ์ง ์ฅ์ ์ด ์๊ธด๋ค. ์ฒซ ๋ฒ์งธ๋ก ์๋นํ ํฐ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค๋ ๊ฒ์ด๋ค. physical memory์ ์์ด ๋ฐ๋์ ํ์ํ ๋ถ๋ถ๋ง ์ฌ๋ฆด ์ ์๋ค๋ฉด ์คํํ ์ ์๊ฒ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋์ผํ ํฌ๊ธฐ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ค๊ณ ํ๋๋ผ๋ ๋ ๋ง์ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค. ๋ค์์ผ๋ก Swaping์ ํ ๋ I/O Overhead๊ฐ ํฌ๊ฒ ์ค์ด๋ ๋ค๋ ๊ฒ์ด๋ค.
Virtual Memory
Logical ๋ฉ๋ชจ๋ฆฌ์ Physical ๊ณต๊ฐ์ ๋ถ๋ฆฌํ๋ค. Virtual memory๋ผ๋ ๊ฐ๋ ์ด logical memory์ ๊ฑฐ์ ๋น์ทํ ๊ฐ๋ ์ด๋ค. ์ค์ ์์คํ ์ ์กด์ฌํ๋ Physical memory์์ mapping์ Page table์ ์ํด์ ์ด๋ฃจ์ด์ง๋ค. Page๋ผ๋ Technique๊ณผ ๋น์ทํ๋ค. ์ผ์ชฝ์ virtual memory ๊ณต๊ฐ์ logical address space๋ผ๋ ๊ฐ๋ ๊ณผ ์์ํ๋ค. ํ๋ก์ธ์ค๋ ๊ฐ์ ์๊ธฐ ์์ ์ virtual address space๋ฅผ ๊ฐ์ง๋ค. Paging ๊ณผ ๋ค๋ฅธ ์ ์ Vitual Memory์ Physical Memory์ ํฌ๊ธฐ ์ฐจ์ด์ด๋ค. ์ผ๋ฐ์ ์ธ page์ logial address space๊ฐ physical address page๋ณด๋ค ์๋ค. ๊ณต์ ํ๋ฉด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ Physical Memory ๊ณต๊ฐ๋ณด๋ค ์์ ์ ๋ฐ์ ์์๋ค. ํ์ง๋ง Virtual์ ๊ฒฝ์ฐ๋ Virtual Memory๊ฐ ๋ ํด ์๋ ์๋ค. ์ค๋ฅธ์ชฝ ์๊ธฐ๋ฅ์ Disk์ ํด๋นํ๋ค. Swaping ์ ํด๋นํ๋ ๊ทธ๋ฆผ์ด๋ผ๊ณ ํ ์ ์๋ค. ๋น์ฅ ์ฌ์ฉํ์ง ์๋ Content๋ Disk๋ก Save๋ฅผ ํด์ ๋น ๊ณต๊ฐ์ ์ํ๋ ํ๋ก์ธ์คํํ ์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ค์ ์ด๋ค ํ๋ก์ธ์ค๊ฐ Virtual Memory์ Content๋ฅผ ์๊ตฌํ๋ค๊ณ ํ๋ฉด ์ค์ Physical Memory์ ๊ฐ์ ์กด์ฌํ๋์ง ํ์ธ์ ํ๊ฒ ๋๋ค. ๋ง์ฝ ์กด์ฌํ๋ฉด ๋ฐ๋ก ์คํํ๋ฉด ๋์ง๋ง ์์ผ๋ฉด Disk์ ์๋ ๋ด์ฉ์ Physical memory๋ก ์ฝ์ด์ค๋ ๊ณผ์ ์ด ํ์ํ๋ค. Physical Memory๋ ๊ถ๊ทน์ ์ผ๋ก Cache์ ์ญํ ์ ํ๋ค๊ณ ํ ์ ์๋ค. ํ์ํ ๋งํผ๋ง Physical Memory์ loadํด์ ์ฌ์ฉํ๊ฒ ๋๋ค. Disk์ ๊ฒฝ์ฐ Physical Memory๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค๊ฐ ์์ฃผ ๋์ Virtual Memory๋ฅผ ์๊ตฌํ๋๋ผ๋ Coverํ ์ ์๋ ์ ์ฌ๋ ฅ์ด ์๋ค. ํ์ฌ ์กด์ฌํ์ง ์๋ Content๋ผ๊ณ ํ๋๋ผ๋ Disk์์ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค. Virtual Memory์ ํฌ๊ธฐ๊ฐ Physical Memory๋ณด๋ค ํด ์ ์๋ค๋ ๊ฒ.
Virtual Memory
๋ชจ๋ ํ๋ก๊ทธ๋จ์ด load ๋ ํ์๊ฐ ์๊ฒ ๋ง๋ค์ด์ค๋ค. physical address space๋ณด๋ค ํจ์ฌ ํฐ Address space๋ฅผ ์ ๊ณตํ ์ ์๋ค. ๋์ผํ Address space๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. Page table์ ๋์ผํ frame number๋ฅผ ๋ฃ์ด์ฃผ๋ฉด share๊ฐ ๊ฐ๋ฅํ๋ค๊ณ ํ์๋ค. Paging์ด ์๋ ๊ฐ์ง๊ณ ์์๋ shared page๋ผ๋ ๊ฐ๋ ์ ๋ฌผ๋ ค๋ฐ์ ์ฌ์ฉํ ์๊ฐ ์๋ค. Page๋ฅผ shareํ ์ ์๊ธฐ ๋๋ฌธ์ Process Creation์ด ๋ ํจ์จ์ ์ด๊ฒ ๋๋ค. 3์ฅ์์ fork๋ก ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๋ Parent๋ฅผ ๊ทธ๋๋ก ๋ณต์ ํ๋ ๊ฒ์ ๊ธฐ์ตํด๋ณด์. parent์ child๊ฐ ๊ฐ๋ค๊ณ ํ๋ฉด Parent์ content๊ฐ child์๊ฒ ๋ฐ๋ก ๊ณต์ ๋ ์ ์๋ค๋ ์ ์ด ์๋ค. ๋ ๋ง์ ํ๋ก๊ทธ๋จ์ด concurrentํ๊ฒ ์คํ๋ ์ ์๋ค. swap์ ํ ๋ I/O Data์ ์์ด ๊ธ๊ฒฉํ๊ฒ ๊ฐ์ํ๊ฒ ๋๋ค. Virtual Memory๋ฅผ ์ฌ์ฉํด์ ์ผ๋ถ๋ง์ swap in swap out์ ํ๋ค๋ฉด overhead๋ ๋ง์ด ์ค์ผ ์ ์๊ฒ ๋๋ค.
Virtual Address Space
๊ฐ ํ๋ก์ธ์ค๋ ์๊ธฐ๊ฐ ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ค๋ ์ฐฉ๊ฐ ์์์ ์คํํ๊ฒ ๋๋ค. ๊ทธ๋ฐ ๊ฒ์ Virtual Memory๊ฐ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ ํ๋ก์ธ์ค๋ 0๋ถํฐ ์์ํ๋ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. 64bit๋ก ํํํ ์ ์๋ address space๋ ์ด๋งํ๊ฒ ํฌ๋ค. physical memory๋ page frame์ด๋ผ๋ ๋จ์๋ก ๊ตฌ์ฑ๋๋ค. page๋ก๋ถํฐ ๋ด๋ ค์ค๋ ๋์ผํ ์ฑ์ง์ด๋ผ๊ณ ํ ์ ์๋ค. MMU๊ฐ logical๊ณผ physical mapping์ ๋ด๋นํ๋ค. ๋ฌด์๋ณด๋ค Virtual Memory์ ์ข์ ์ ์ Swapping, Address Translation์ Application์ด ์ ํ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค๋ ์ ์ด๋ค. Virtual Address Space๋ sparceํ ์ ์๋ค๋ ๊ฒ์ด๋ค. Address Space์ ์ต๋ ํฌ๊ธฐ๋ ํฌ์ง๋ง ์ค์ ์ฌ์ฉ๋๋ ํฌ๊ธฐ๋ ์ผ๋ถ์ ๋ถ๊ณผํ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ค ํ๋ก๊ทธ๋จ์ด 4GB๋ผ๊ณ ํ์. ์ค์ ๋ก ๊ทธ ํ๋ก๊ทธ๋จ์ 500MB๋ฐ์ ์ฌ์ฉ๋์ง ์๋๋ค๊ณ ํ์. ์ด์ ๊ฐ์ด ์ค์ ๋ก ์กด์ฌํ์ง ์์ง๋ง Address Hole๋ค์ด ๋ง์ด ์กด์ฌํ๊ณ ์ด๊ฒ์ Sparce๋ผ๊ณ ํ ์ ์๋ค. ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ Virtual Address Space๋ผ๊ณ ํ์. ๋งจ ์๋์ code๊ฐ ์ ์ฅ๋๊ณ local variable์ด ์ ์ฅ๋๋ data์ function call์ด ์ด๋ฃจ์ด์ง๋ stack์ ๊ณต๊ฐ์ด ์๋ค. stack์ ์์์ ์๋๋ก ๋ด๋ ค์ค๋ฉด์ ์ปค์ง๋๋ก ๋์ด์๊ณ heap์ ๊ทธ ๋ฐ๋์ด๋ค. ํ๋์ ์ค๊ฐ์ ๊ฒฝ์ฐ function call๊ณผ dynamic allocation~~
Shared Library Using Virtual Memory
2๊ฐ์ process๊ฐ ๊ฐ๊ฐ์ Address Space๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ๋ฌผ๋ก ์ด๋ Virtual Address Space์ด๋ค. Shared Page๋ฅผ ์ด์ฉํ๋ฉด Physicalํ ๊ณต๊ฐ์๋ Library๊ฐ ํ๋๋ฐ์ ์๋๋ฐ๋ ์์ชฝ์ ์๋ Address space์ Mappingํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
Implementation Techniques
Demand paging์ paging๊ณผ swapping์ ๊ฒฐํฉํ ๋ฐฉ์์ด๋ค. Demand Segmentation ๋ฐฉ๋ฒ์ Segmentation์ swapping์ ๊ฒฐํฉํ ๋ฐฉ๋ฒ์ด๋ค
Demand Paging
paging + Swaping. ์ผ๋ฐ์ ์ธ Swapper๊ฐ Process๋จ์๋ก ์ํํ๋ ๋ฐ ๋ฐํด Demand paging์ ๊ฒฝ์ฐ Page์ ๋จ์๋ก Swap in๊ณผ Swap out์ ์งํํ๋ค. ๋ชจ๋ page๋ฅผ loadํ๋ ๊ฒ์ด ์๋๋ผ ์ ํ์ ์ธ Load๋ฅผ ํ๊ฒ ๋๋ค. Lazy Swapper๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ผญ ํ์ํ ๋งํผ๋ง ์ต์ํ์ผ๋ก Swap์ ํ๋ฉด์ I/O ์ฐ์ฐ์ ์ค์ด๊ณ ํจ์จ์ ๋์๋ค๋ ๊ธ์ ์ ์ธ ์๋ฏธ์ด๋ค. Swapping์ ๊ธฐ๋ณธ ๋จ์๊ฐ Page์ด๊ธฐ ๋๋ฌธ์ pager๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
Demand Paging
์๊ตฌ๋๋ page๋ง ๋ก๋ํ๋ ๊ฒ์ด ํต์ฌ ์์ด๋์ด. hardware์ Support๊ฐ ํ์ํ๋ค. ํ๋ก์ธ์ค๊ฐ ํ๋ ์๊ณ ์ด๋ logical memory๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๊ถ๊ทน์ ์ผ๋ก Disk์ ์กด์ฌํ๊ณ ์๋๋ฐ ๋น์ฅ ํ์ํ Page๋ฅผ Loadํ๋ค๋ ๊ฒ์ด๋ค. ์ผ๋ถ๋ Memory์ ์กด์ฌํ๊ณ ์ผ๋ถ๋ memory์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทธ๋์ Memory์ ์๋์ง Disk์ ์๋์ง๋ฅผ ํ์ธํด์ผ ํ๋ฏ๋ก HardWare์ Support๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ์ํด Valid- invalid table์ ์ด์ฉํ๋ค.
page Table with Valid/inValid Bit
Page Table์ ๊ฐ Entry๋ง๋ค ํด๋นํ๋ bit๊ฐ ์๋ค. 2๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์๋ง ํํ๋ค. page ์์ฒด๊ฐ ์ ์ ํ Address์ฌ์ผ ํ๋ค๋ ๊ฒ. Virtual Memory์์๋ ๊ฐ Process์๊ฒ ์์ฃผ ๋์ Virtual Address Space๋ฅผ ์ ๊ณตํ๋ค. ํ์ง๋ง sparceํ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ์ฌ๋ฐ๋ฅธ ์์ญ์ ์กด์ฌํ์ง ์๋ค๋ฉด ๊ทธ ์์ฒด๋ก invalidํ๋ค๋ ๊ฒ์ด ๋๋ค. Page์ Content๊ฐ Physical Memory์ load๋์ด ์์ด์ ๋น์ฅ ์ฌ์ฉํ ์ ์๋ ์ํ์ฌ์ผ ํ๋ค๋ ๊ฒ. Valid๋ผ๋ ๊ฒ์ ์๋ฏธ๋ Page๊ฐ ์ค์ ์กด์ฌํ๊ณ Load๊ฐ ๋์ด ์์ด์ผ ํ๋ค๋ And ์กฐ๊ฑด์ ์๋ฏธํ๋ค. inValid๋ ๋ ์กฐ๊ฑด ์ค ์ ์ด๋ ํ๋๊ฐ ๋ง์กฑ๋์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. Page-fault Trap์ด ๋ฐ์ํ์ ๋ ์ ์ ํ ์ฒ๋ฆฌํ ์ ์๋ Hardware support๊ฐ ํ์ํ๋ค๋ ๊ฒ์ด๋ค. ํ๋ก์ธ์ค๊ฐ ํน์ ํ ์์น๋ฅผ Accessํ๋ ค๊ณ ํ๋๋ฐ i์ฌ์ ์ค์ Accessํ ์ ์๋ ์ํฉ์ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. Page - fault๊ฐ ๋ฐ์ํ๋ฉด OS๊ฐ ์ผ์ ํด์ผ ํ๋ค. ๋ฌด์์ธ๊ฐ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค. ๊ทธ ๊ณผ์ ์ Page Fault Handler๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Basic Concepts
Valid inValid bit์ด i ๊ฐ์ ๊ฐ๊ฒ ๋๋ค. ํ๋๋ page ์์ฒด๊ฐ ์๋ชป๋์๊ฑฐ๋ page๋ ์กด์ฌํ์ง๋ง Load๋์ง ์์๋ค๊ณ ํด์ํ ์ ์๋ค. ์ ์ผ ๋จผ์ ํด์ผ ํ๋ ๊ฒ์ ๋ ๊ฐ์ง ์ค ์ด๋์ ์ํ๋ ์ง ๋ฅผ ํ๋จํด์ผ ํ๋ค. page Table์ Page์ Content๊ฐ ์ด๋์ ์กด์ฌํ๋์ง ์๋ ค์ฃผ๋ table์ ๊ฐ์ง๊ณ ์๋ค. Disk์ ์์ผ๋ฉด Disk์ Block ๋ฒํธ ๋๋ File์ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ ํ๋ฅผ ํด๋นํ๋ฉด Page๊ฐ ์ค์ ๋ก ์กด์ฌํ๋ ๊ฒ์ธ์ง๋ฅผ ํ์ธํ ์ ์๋ค. ์ฆ, ์กด์ฌํ์ง ์๋ page๋ฅผ Accessํ๋ ค๊ณ ํ์๋ค๋ฉด ์ด๊ฒ์ ์๋ชป๋ ๊ฒ์ด๋ค. Bug๋ Hacking ์๋๋ก ํด์ํ ์ ์๋ค. ๋ ๊ฐ์ง ๋ชจ๋ ๋ค๋ฅธ ์์คํ ํํ ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ฒ ๊ฐ์ ์ข ๋ฃ๋ฅผ ์ํค๊ฒ ๋๋ค. Page๋ ์กด์ฌํ๋ ํ์ด์ง ์ด์ง๋ง ์์ง load๋์ง ์์ ๊ฒฝ์ฐ, Load๋ฅผ ํ๊ธฐ ์ํด์ ๋น ๊ณต๊ฐ์ด ํ์ํ๋ค. ์์ฒญ๋ page๋ฅผ table์ updateํด์ผ ํ๋ค. ํด๋น page์ valid์ ๊ฐ์ V๋ก ๋ฐ๊ฟ์ฃผ๊ณ ์กฐ๊ธ ์ ์ load๋ frame number๋ฅผ page table์ ๋ฃ์ด์ค์ผ ํ๋ค๋ ๊ฒ.
Handling Page-Fault
ํน์ ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ Accessํ๋ค. ์ฃผ์๋ฅผ ์์ฑํ๊ณ ๊ทธ ์ฃผ์๋ Virtual address๊ฐ ๋๋ค. page number๋ฅผ ๊ฐ์ ธ๋ค๊ฐ page table์ ์ ๊ทผ์ ํ๋ค. ๊ทธ ์์น๋ก ๊ฐ์ ์ ์ผ ๋จผ์ valid in valid๋ฅผ ์ฒดํฌํ๊ณ invalid์ ๊ฒฝ์ฐ trap์ด ๋ฐ์ํe๋ค. Interrupt Handler๊ฐ page Fault๋ฅผ ์ธ์งํ๊ณ Page Fault Handler๋ฅผ ์๋ํ๋ค. ๋ง์ฝ disk์ ์กด์ฌํ๋ค๋ฉด Disk์ ๊ฐ์ Memory๋ก swapํ๊ฒ ๋๋ค. ์ฌ๋ฆฌ๊ฒ ๋๋ฉด Valid bit๋ฅผ ๋ฐ๊พธ๊ฒ ๋๊ณ ์๋ ์คํํ๋ ค๊ณ ํ๋ Instruction ๋ถํฐ ์์ํ๊ฒ ๋๋ค.
Basic Concepts
Page fault๊ฐ ๋ฐ์ํ๋ฉด Performance๊ฐ down๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ ์๊ฐ ์ ๊น ๋ฉ์ถ๊ณ Disk๋ก ์ด๋์ ํ๊ฒ ๋๊ณ Page๋ฅผ updateํ๊ธฐ ๊น์ง ์ฌ๋ฌ Handler์ Disk Access๋ฅผ ํด์ผ ํ๋ค. ์คํ ์๋๊ฐ ๊ธ๊ฒฉํ๊ฒ ์ ํ๋๋ค. ์ผ๋ง๋ ์์ฃผ Page Fault๊ฐ ๋ฐ์ํ๋๊ฐ? ์ด๋ก ์ ์ผ๋ก page fault๊ฐ ์์ฒญ๋๊ฒ ๋ง์ด ๋ฐ์ํ ์ ์๋ค. Instruction ์์ฒด๊ฐ ํ ํ์ด์ง์ ์กด์ฌํ๊ณ ๊ฐ์ ์ฝ์ด์ค๋ page์ ๊ฐ์ ์ฐ๋ ค๋Page๊ฐ ์์ ๊ฒ์ด๋ค. Instruction ํ๋๊ฐ 3๊ฐ์ page fault๋ฅผ ๋ฐ์์ํค๋ ๊ฒฝ์ฐ๋ ๋ฐ์ํ ์ ์๋ค. ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์น๋ฅผ Access๋ฅผ ํ๋ค๋ฉด ๋ค์ Memory ์์น๋ ๊ทธ ์ฃผ๋ณ์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. H/W Support๋ page table์์ valid-invalid bit ์ ๊ณต์ด๊ณ , Disk์ฒ๋ผ Virtual Memory์ Content๋ฅผ ์ ์ฅํ ์ ์๋ Swap space๊ฐ ํ์ํ๋ค.
Performance of Demand paging
ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ Accessํ๋ฉด์ ์คํํ๋ ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค. ma๋ main Memory์ ์ ๊ทผ ์๊ฐ์ด๋ค.
p๋ page fault์ ํ๋ฅ ์ด๋ค.
Performance of Demand Paging
๋ฉ๋ชจ๋ฆฌ Access time์ 200 nano๋ผ๊ณ ๊ฐ์ ํ๊ณ page fault๋ฅผ 8 msec์ด๋ผ๊ณ ํ์. page fault๊ฐ ๋ํ๋ฌ์ ๋๋ ์์ ๋๋ณด๋ค 40๋ฐฐ ์ ๋ ์ปค์ง๊ฒ ๋๋ค.
Execution of Program in File System
File์ ๋ณต์ฌํ๋ Overhead๊ฐ ๋ฐ์ํ๋ค. swap space๋ main memory์ content๋ฅผ ๋ํผํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. File system์ ์๋ ์คํํ์ผ ์์ฒด๋ฅผ Content๋ก ๋ณด๊ณ page์ ๋ฐ๋ก mapping ์ํค๋ ๊ฒ. ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ page์ file system์ ์คํํ์ผํ๊ณ mapping์ ์์ผ๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ demand paging์ ๊ฐ๋ํ๋ฉด page fault๊ฐ ๋ฐ์ํ๊ณ , ์คํํ์ผ์ ํด๋น ๋ธ๋ญ์์ ์ฝ์ด์ค๊ณ ์คํํ๊ฒ ๋๋ค. 2 ๋ฒ์งธ option์ ์ฑ๋ฅ์ด ๋ ๋น ๋ฅด๋ค.!
Copy-on-Write
Process๋ฅผ Createํ ๋ ์ฑ๋ฅ ๊ฐ์
์ ํ๊ฒ ํด์ค๋ค. fork๋ฅผ ํธ์ถํ๋ฉด parent๋ฅผ ๋ณต์ฌํด์ child๋ฅผ ๋ง๋ค์ด๋ด๊ฒ ๋๋ค. ๊ทธ ์๊ฐ child์ ํํ๋ parent์ ๋์ผํ๊ฒ ๋๋ค. ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ดค์ ๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ content๋ฅผ ๋ณต์ฌํ ํ์๊ฐ ์์ด์ง๋ค. Creation Time์ด ์งง์์ง๋ค. ๋ณต์ฌํ ํ์์์ด Sharingํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ฃผ ๋น ๋ฅด๊ฒ ์งํํ ์ ์๊ฒ ๋๋ค. Process๊ฐ ์๋ก ๋ง๋ค์ด์ง๋ฉด ๋
๋ฆฝ์ฑ์ ๊ฐ์ง ์ ์์ด์ผ ํ๋ค. ํ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ๋ ์ ์๋ ๋
๋ฆฝ์ ์ด์ด์ผ ํจ์ ๋ฐฐ์ ๋ค. ๋
ผ๋ฆฌ์ ์ธ ์ํฉ์์๋ ๋ถ๋ฆฌ๋์ด ์์ง๋ง ๋ฌผ๋ฆฌ์ ์ธ ์ํฉ์์๋ ๊ณต์ ๋์ด ์๋ค.
Copy-on-Write
๋
ผ๋ฆฌ์ ์ธ ๋ฉ๋ชจ๋ฆฌ Content๊ฐ ์ผ์นํ๋ค. Physicalํ๊ฒ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ frame number๋ฅผ ๋์ผํ๊ฒ ํด์ฃผ๋ ๊ฒ์ด๋ค. parent์ page C์ writeํ๋ค๊ณ ํด๋ณด์. ๊ทธ ํ์ด์ง์ ํด๋นํ๋ ๋ด์ฉ์ด CHild์๊ฒ ์ํฅ์ ์ค์๋ ์๋๋ค. ์๋ํ๋ฉด ๋
๋ฆฝ์ ์ธ Process์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ์ํฉ์ ๊ฒฝ์ฐ ์์ ํ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ Frame์ด ๋๋ค. Physical Memory์์์ Copyํ๋ ์์ ์ต์ํํ ์ ์๊ฒ ํด์ค๋ค.