Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- buddy_system
- vm_area_struct
- strex
- page
- Network
- devicedriver
- slowpath
- mm_struct
- slab
- memory
- kafka
- Android
- Apache
- BLOCK
- proc
- spinlock
- pmap
- commit
- blk-mq
- slub
- 카프카
- multiqueue
- vmalloc
- kmalloc
- lruvec
- Linux
- NDK
- Kernel
- fastpath
- allocator
Archives
- Today
- Total
목록buddy_system (1)
Art of Pr0gr4m
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cV5n5K/btqD7YqpVA5/LRvxyCEcakKZKDFW3W9mPk/img.jpg)
이번 포스트에서는 리눅스 커널의 메모리 할당 정책 중 버디 시스템에 대해 알아본다. 1. Basic Concept 이 전 NUMA와 Memory Zone 포스트에서 NUMA 노드마다 Zone들이 있고, Zone에는 free_area 배열이 있는 것을 보았다. Buddy System은 이 free_area를 이용하여 Zone 별로 구현한다. Buddy System은 메모리를 페이지 단위의 2의 승수로 나눠서 메모리 할당과 반환을 수행한다. free_area[0]은 전체 메모리를 4K(1 페이지)로 나눈 목록을 관리한다. free_area[1]은 마찬가지로 8K(2 페이지)로 나눈 목록을 관리하며, 마지막 원소인 free_area[MAX_ORDER - 1]은 4K * 2^(MAX_ORDER - 1)의 사이즈..
IT/Linux Kernel
2020. 5. 14. 07:16