다른 명령
새 문서: 분류: ACM HotOS {{Paper|title=AVM: Application-Level Virtual Memory|author=Dawson R. Engler, Sandeep K. Gupta, M. Frans Kasshoek|conference=ACM HotOS|year=1995}} == 개요 == == Motvation & Importance == == Main Idea == == Design == == Evaluation == == Conclusion == |
편집 요약 없음 |
||
4번째 줄: | 4번째 줄: | ||
== 개요 == | == 개요 == | ||
Virtual memory management를 User-level에 구현하였다. | |||
== Motvation & Importance == | == Motvation & Importance == | ||
과거와는 다르게 점점 다양해지는 (ㅋㅋ) Application trend에 맞추어서, Static한 VM은 Application의 Cutomization에 문제가 되고 있다. 예를 들어서 다음과 같은 예시에서 AVM을 활용할 수 있다. | |||
# Fine-grained monitoring | |||
# Accurate "in core" information | |||
# Page replacement policy | |||
# Specific page allocation | |||
# Control of page-size (huge page) | |||
# DMA | |||
# Fine-grained control over virtual memory attributes | |||
# Fast exception propagation | |||
# Better static fualt-isolation techniques | |||
# More efficient dynamic fault-isolation | |||
== Main Idea == | == Main Idea == | ||
VM관리를 User-level library로 옮긴다. 커널에는 최소한의 기능만 남겨둔채, 유저레벨에 거의 모든 커널 기능을 옮긴 Exokernel아키텍쳐를 사용하여서 구현하였다. | |||
== Design == | == Design == | ||
AVM을 디자인 하기 위해선 다음의 요소를 고려해야 한다. | |||
# Allocation of physical memory | |||
# Bootstraping of virtual memory machinery (TLB miss code나 page-table 처리) | |||
# Efficient exception propagation | |||
# Secure modification of the mapping hardware (e.g., TLB) | |||
# Revocation of physical memory | |||
AVM은 위의 요소를 다음과 같이 처리하였다. | |||
# Allocation: Kernel은 현재 사용 가능한 physical frame에 대한 가용 정보를 bitmap 형태로 user-level과 공유한다. 할당된 frame은 해당 process에 종속되며, 그 process는 해당 capability를 update하거나 free할 권한을 가진다. | |||
# Page fault 처리: Page fault 처리는 userfaultfd와 유사한 방식으로 동작한다. 즉, fault가 발생하면 user-level로 제어가 위임되어, application이 적절한 frame을 매핑하도록 한다. | |||
# Revocation: Revocation은 swaptions(사용자 수준 스왑 제어)을 위한 로직을 따르며, kernel은 user-level로 revocation fault를 전송한다. 이때, application이 특정 frame들을 반환하면 해당 페이지들은 free되는 방식으로 처리된다. |
2025년 7월 28일 (월) 03:41 기준 최신판
AVM: Application-Level Virtual Memory | |
---|---|
Author | Dawson R. Engler, Sandeep K. Gupta, M. Frans Kasshoek |
Conference | ACM HotOS |
Year | 1995 |
개요
Virtual memory management를 User-level에 구현하였다.
Motvation & Importance
과거와는 다르게 점점 다양해지는 (ㅋㅋ) Application trend에 맞추어서, Static한 VM은 Application의 Cutomization에 문제가 되고 있다. 예를 들어서 다음과 같은 예시에서 AVM을 활용할 수 있다.
- Fine-grained monitoring
- Accurate "in core" information
- Page replacement policy
- Specific page allocation
- Control of page-size (huge page)
- DMA
- Fine-grained control over virtual memory attributes
- Fast exception propagation
- Better static fualt-isolation techniques
- More efficient dynamic fault-isolation
Main Idea
VM관리를 User-level library로 옮긴다. 커널에는 최소한의 기능만 남겨둔채, 유저레벨에 거의 모든 커널 기능을 옮긴 Exokernel아키텍쳐를 사용하여서 구현하였다.
Design
AVM을 디자인 하기 위해선 다음의 요소를 고려해야 한다.
- Allocation of physical memory
- Bootstraping of virtual memory machinery (TLB miss code나 page-table 처리)
- Efficient exception propagation
- Secure modification of the mapping hardware (e.g., TLB)
- Revocation of physical memory
AVM은 위의 요소를 다음과 같이 처리하였다.
- Allocation: Kernel은 현재 사용 가능한 physical frame에 대한 가용 정보를 bitmap 형태로 user-level과 공유한다. 할당된 frame은 해당 process에 종속되며, 그 process는 해당 capability를 update하거나 free할 권한을 가진다.
- Page fault 처리: Page fault 처리는 userfaultfd와 유사한 방식으로 동작한다. 즉, fault가 발생하면 user-level로 제어가 위임되어, application이 적절한 frame을 매핑하도록 한다.
- Revocation: Revocation은 swaptions(사용자 수준 스왑 제어)을 위한 로직을 따르며, kernel은 user-level로 revocation fault를 전송한다. 이때, application이 특정 frame들을 반환하면 해당 페이지들은 free되는 방식으로 처리된다.