Virtual address

// start 0x00~

공유메모리O // fork()
+ sparse (부족한) -> 동적 link lib
Demand Paging
Prgram(Disk) -> Virtual -> 실제 필요한(demand) 일부(page) -> Physical
ㄴ Physical에서..
if) 유효 X abort
if) 메모리에 X -> Swap
// Lazy swapper : 필요할때(page fault) 까지 swapX

Invaild bit : i -> Disk(Backing store)
ㄴ MMU 가 접근시 : page fault

1. 명령어가 in메모리 참조 -> logical -> MMU -> PageTable-> invaild bit : i(0)
> Page fault 발생! (trap)
2. OS)
if) Invaild in Disk : abort
if) vaild " : Swap
3. Free Frame을 찾아 넣어줌
4. PageTable -> vaild (bit : v(1)) 로 수정
5. 명령어 재실행
Free frame list : 부팅시 free frame: 0으로 초기화
ㄴ RAM) 휘발성 -> 부팅시 똥값 -> 0으로
Pure Demand Paging : 물리 Memory에 Any Page X -> Process 시작
ㄴ Multi Page fault
ㄴ locality로 해결
if) Pa -> page fault
ㄴ C/S -> Pa: wait
ㄴPb -> Page fault -> 처리 -> Pa 처리 할경우..
ㄴ 시간 낭비 심함
Page Fault Rate : 0 < p < 1
• if p = 0 : no page faults
• if p = 1, every reference is a fault
Effective Access Time (EAT)
EAT = (1 – p) x memory access + p x (page fault overhead + swap page in/out)
e.g.) Demand paging Time
Memory access time = 200 ns
// 이상적인 메모리접근 시간
Average page-fault service time = 8 ms = 8000000ns
// page fault overhead + swap page in/out
EAT = ((1 – p) x 200) + (p x 8,000,000) // [ns]
= 7,999,800 p + 200
if) p가 천번마다 한번 : p = 0.001
EAT = 8200 ns =8.2 ms
>>> 200 ns <> 8200 ns : 41배 느려짐!!
if want)
10% > 성능저하
// 10% 미만의 성능저하를 원한다면
= 220 > 200 + 7,999,800 x p
// 200의 10%성능저하 : 220
= 20 > 7,999,800 x p
ㄴ p < 0.0000025 = 1/400,000
>> 400,000번 마다 Fage Fault 발생하도록 해야함
Demand page optimization
1. (속도) swap space I/O > File system I/O
2. (주의)
if) 메모리O <> Yet No in File system
if) stack,heap (anonymous memory)
>> swap 공간이 필요할수있음 -> 최적화 X
3. Mobile system : RO
Copy on Write (COW)

child는 parent를 공유메모리처럼 쓰다가..
ㄴ 수정시 해당 page를 copy 후 free page에 분리해서 write함
if) many page를 COW..
ㄴ 각각의 process 마다 update -> 속도느림
>> vfork() : 메모리 공유 개념 X <> 진짜로 같이씀
ㄴ parent) suspend
ㄴ child ) 필요한 메모리를 받아옴
'전공 > 운영체제' 카테고리의 다른 글
| I/O systems (0) | 2025.06.05 |
|---|---|
| Virtual memory-2 (0) | 2025.05.23 |
| 메모리-4 (0) | 2025.05.11 |
| 메모리-3 (0) | 2025.05.10 |
| 메모리-2 (0) | 2025.05.09 |