Virtual Memory: Paging system
Paging System
โ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋ถํ (Pages)
โ Terminologies
- Page: ํ๋ก๊ทธ๋จ์ ๋ถํ ๋ block
- Page frame: ๋ฉ๋ชจ๋ฆฌ์ ๋ถํ ์์ญ(Page์ ๊ฐ์ ํฌ๊ธฐ๋ก ๋ถํ )
ํน์ง
โ ๋ ผ๋ฆฌ์ ๋ถํ ์ด ์๋(ํฌ๊ธฐ์ ๋ฐ๋ฅธ ๋ถํ )
- Page ๊ณต์ (sharing) ๋ฐ ๋ณดํธ(protection) ๊ณผ์ ์ด ๋น๊ต์ ๋ณต์ก
โ Simple and Efficient
- Segmentation ๋๋น
โ No external fragmentation
- Internal fragmentation ๋ฐ์ ๊ฐ๋ฅ
Address Mapping
โ Virtual address: v = (p, d)
- p: page number
- d: displacement(offset)
โ Address mapping
- PMT(Page Map Table)
โ Address mapping mechanism
- Direct mapping(์ง์ ์ฌ์)
- ASsociative mapping(์ฐ๊ด ์ฌ์)
- TLB(Translation Look-aside Buffer)
- Hybrid direct/associative mapping
Page Map Table(PMT)
โ secondary storage address: swap device ์์ ์ ์ฅ๋ ์์น
Direct Mapping
โ Block mapping๊ณผ ์ ์ฌ
โ ๊ฐ์
- PMT๋ฅผ ์ปค๋ ์์ ์ ์ฅ
- PMT entry size = entrySize
- Page size = pageSize
โ Residence bit = 0์ธ ๊ฒฝ์ฐ page fault ๋ฐ์ -> ํด๋น page ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ
Page Fault
โ swap device -> ๋ฉ๋ชจ๋ฆฌ ์ ์ฌ๋ ์ผ์ข ์ disk I/O๊ณผ์
โ I/O: running -> asleep/block -> ready
- Context switching ๋ฐ์
๋ฌธ์ ์ ๊ณผ ํด๊ฒฐ๋ฐฉ์
โ ๋ฌธ์ ์
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํ์๊ฐ 2๋ฐฐ (์ฑ๋ฅ ์ ํ)
- PMT๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ์
โ ํด๊ฒฐ๋ฐฉ์
- Associative mapping(TLB)
- PMT๋ฅผ ์ํ ์ ์ฉ ๊ธฐ์ต์ฅ์น(๊ณต๊ฐ) ์ฌ์ฉ
- Dedicated register of cache memory
- Hierarchical paging
- Hashed page table
- Inverted page table
Associatice Mapping
โ TLB(Translation Look-aside Buffer)์ PMT ์ ์ฌ
- Associative high-speed memory
โ PMT๋ฅผ ๋ณ๋ ฌ ํ์
โ Low overhead, high speed
โ Expensive hardware
- ํฐ PMT ๋ค๋ฃจ๊ธฐ ์ด๋ ค์
Hybrid Direct/Associative Mapping
โ ๋ ๊ธฐ๋ฒ์ ํผํฉํ์ฌ ์ฌ์ฉ
- HW ๋น์ฉ์ ์ค์ด๊ณ , Associative Mapping์ ์ฅ์ ํ์ฉ
โ ์์ ํฌ๊ธฐ์ TLB ์ฌ์ฉ
- PMT: ๋ฉ๋ชจ๋ฆฌ(์ปค๋ ๊ณต๊ฐ)์ ์ ์ฅ
- TLB: PMT์ ์ผ๋ถ entry๋ค์ ์ ์ฌ
- ์ต๊ทผ์ ์ฌ์ฉ๋ page๋ค์ ๋ํ ์ ์ฅ
โ Locality(์ง์ญ์ฑ) ํ์ฉ
์๋ ์๋ฆฌ
Memory Management
โ Page์ ๊ฐ์ ํฌ๊ธฐ๋ก ๋ฏธ๋ฆฌ ๋ถํ ํ์ฌ ๊ด๋ฆฌ/์ฌ์ฉ
- Page frame
- FPM ๊ธฐ๋ฒ๊ณผ ์ ์ฌ
Frame table
โ Page frame๋น ํ๋์ entry
โ ๊ตฌ์ฑ
- Allocated/available field
- PID field
- Link field: for free list(์ฌ์ฉ ๊ฐ๋ฅํ fp๋ค์ ์ฐ๊ฒฐ)
- AV: Free list header(free list์ ์์ ์ง์ )
โ ์ผ์ข ์ linked-list
Page Sharing
โ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ํน์ page๋ฅผ ๊ณต์ ๊ฐ๋ฅ
- Non-continuous allocation
โ ๊ณต์ ๊ฐ๋ฅ page
- Procedure pages
- Pure code (reenter code)
- Data page
- Read-only data
- Read-write data (๋ณํ์ฑ(concurrency) ์ ์ด ๊ธฐ๋ฒ ๊ด๋ฆฌ ํ์์๋ง ๊ฐ๋ฅ)
์์
โ Editor ํ๋ก๊ทธ๋จ์ 3๋ช ์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
โ editor program(code)๋ ํ๋์ page๋ง ์ฌ๋ ค๋๊ณ ๊ณต์
โ ์์ฑํ๋ data๋ง ๋ค๋ฅธ ๊ณณ์ ์ ์ฅ
Data Page Sharing
โ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ PMT์์ ๊ณต์ ํ๊ณ ์ ํ data์ ๋ํด ๊ฐ์ page frame number ํ์ฉ
Procedure Page Sharing(Problem)
โ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ ๊ณต๊ฐ์ ๋ค๋ฅธ page number๊ฐ ๊ฐ๋ฆฌํค๊ณ ์๋ค
solution
โ ํ๋ก์ธ์ค๋ค์ด shared page์ ๋ํ ์ ๋ณด๋ฅผ PMT์ ๊ฐ์ entry์ ์ ์ฅํ๋๋ก ํ๋ค (๊ฐ์ ์ด๋ฆ)
Page Protection
โ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ page๋ฅผ ๊ณต์ ํ ๋
- Protection bit ์ฌ์ฉ
- ํ๋ก์ธ์ค์ ์ ๊ทผ ๊ถํ์ bit๋ก ํํ
Summary
โ ํ๋ก๊ทธ๋จ์ ๊ณ ์ ๋ ํฌ๊ธฐ์ block์ผ๋ก ๋ถํ (page) / ๋ฉ๋ชจ๋ฆฌ๋ฅผ block size๋ก ๋ฏธ๋ฆฌ ๋ถํ (page frame)
- ์ธ๋ถ ๋จํธํ ๋ฌธ์ ์์
- ๋ฉ๋ชจ๋ฆฌ ํตํฉ / ์์ถ ๋ถํ์
- ํ๋ก๊ทธ๋จ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ ๊ณ ๋ ค x (page sharing/protection ๋ณต์ก)
โ ํ์ํ page๋ง page frame์ ์ ์ฌํ์ฌ ์ฌ์ฉ
- ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ํ์ฉ
โ Page mapping overhead
- ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ฐ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํ์
- ์ ์ฉ HW ํ์ฉ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅ(๋น์ฉ ๊ณ ๋ ค)
'โญ Group_Study > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[6์ฃผ์ฐจ] Virtual Memory: Hybrid Paging-Segmentation System (0) | 2023.01.13 |
---|---|
[6์ฃผ์ฐจ] Virtual Memory: Segmentation System (0) | 2023.01.12 |
[6์ฃผ์ฐจ] Virtual Memory: Non-continuous allocation (0) | 2023.01.08 |
[5์ฃผ์ฐจ] Memory Management - Variable Partition Multi-programming (0) | 2023.01.04 |
[5์ฃผ์ฐจ] Memory Management - Fixed Partition Multiprogramming (0) | 2023.01.03 |
๋๊ธ