Memory Pool System¶
- Guide
- 1. Overview of the Memory Pool System
- 2. Building the Memory Pool System
- 3. Garbage collecting a language with the Memory Pool System
- 4. The stretchy vector problem
- 5. Debugging with the Memory Pool System
- 6. Tuning the Memory Pool System for performance
- 7. Advanced topics
- 8. Implementing malloc and free
- Reference
- 1. Interface conventions
- 2. Keyword arguments
- 3. Error handing
- 4. Arenas
- 5. Pools
- 6. Allocation
- 7. Object formats
- 8. Scanning
- 9. Threads
- 10. Roots
- 11. Garbage collection
- 12. Messages
- 13. Finalization
- 14. Location dependency
- 15. Segregated allocation caches
- 16. Allocation patterns
- 17. Allocation frames
- 18. Debugging pools
- 19. Telemetry
- 20. Weak references
- 21. Plinth
- 22. Platforms
- 23. Porting the MPS
- 24. Deprecated interfaces
- 25. Security issues
- Pool reference
- 1. Choosing a pool class
- 2. Pool class properties
- 3. Writing a new pool class
- 4. AMC (Automatic Mostly-Copying)
- 5. AMCZ (Automatic Mostly-Copying Zero-rank)
- 6. AMS (Automatic Mark and Sweep)
- 7. AWL (Automatic Weak Linked)
- 8. LO (Leaf Object)
- 9. MFS (Manual Fixed Small)
- 10. MV (Manual Variable)
- 11. MVFF (Manual Variable First Fit)
- 12. MVT (Manual Variable Temporal)
- 13. SNC (Stack No Checking)
- Design
- 1. Fixed-length queues
- 2. Generic modules
- 3. Bootstrapping
- 4. Coalescing block structures
- 5. Fast high-resolution clock
- 6. MPS Configuration
- 7. The critical path through the MPS
- 8. Execution environment
- 9. Fail-over allocator
- 10. Free list allocator
- 11. Transliterating the alphabet into hexadecimal
- 12. C Style – formatting
- 13. C Style – naming
- 14. Review checklist
- 15. C interface design
- 16. Keyword arguments in the MPS
- 17. Lands
- 18. Lock module
- 19. Nailboards for ambiguously referenced segments
- 20. Protection mutator context
- 21. Memory protection
- 22. Ranges of addresses
- 23. Ring data structure
- 24. Shield
- 25. Signatures in the MPS
- 26. Stack probe
- 27. Splay trees
- 28. Stack and register scanning
- 29. Multi-threaded testing
- 30. Thread manager
- 31. General MPS types
- 32. Virtual mapping
- 33. Write barrier
- 34. The WriteF function
- Old design
- 1. Allocation frame protocol
- 2. Arena
- 3. Virtual Memory Arena
- 4. Bit tables
- 5. Allocation buffers and allocation points
- 6. Checking
- 7. Pool class interface
- 8. Collection framework
- 9. Diagnostic feedback
- 10. Finalization
- 11. The generic fix function
- 12. I/O subsystem
- 13. Library interface
- 14. Locus manager
- 15. Client message protocol
- 16. GC messages
- 17. Debugging features for client objects
- 18. Pool and pool class mechanisms
- 19. AMC pool class
- 20. AMS pool class
- 21. AWL pool class
- 22. LO pool class
- 23. MFS pool class
- 24. MRG pool class
- 25. MV pool class
- 26. Manual Variable Temporal (MVT) pool design
- 27. MVFF pool class
- 28. Linux implementation of protection module
- 29. SunOS 4 protection module
- 30. Protocol inheritance
- 31. POSIX thread extensions
- 32. Root manager
- 33. The generic scanner
- 34. Segment data structure
- 35. Stack scanner for Digital Unix on Alpha
- 36. MPS Strategy
- 37. Telemetry
- 38. Tests
- 39. Thread safety in the MPS
- 40. Tracer
- 41. Library version mechanism
- 42. Software versions
- 43. VM for Digital Unix
- 44. VM for Solaris