Topic
- Talk for the University of Hertfordshire, 2004-12-01
- Introduction
- who we are
- why we're here to talk
- what I'm going to talk about
- Background
- What we mean by MM
- Managing the memory of processes/programs
- What is static MM?
- What is manual MM?
- What is automatic MM?
- tri-colour marking
- can be highly efficient -- MLWorks
- What we don't mean
- hardware MM
- virtual memory
- Brief history of MM and GC
- In the past
- programs didn't live long
- they were simpler
- linker allocation
- These days
- complexity of software
- data-dependency
- high-level abstractions
- Why automatic MM/GC is important
- Java, Perl, Python, C# all require it
- Wasn't pervasive 5 years go.
- Most people used to deride GC!
- Why GC is necessary
- dynamic, non-stack-like behaviour
- structure sharing
- closures
- The MPS
- Brief history of the MPS
- Harlequin
- Diverse MM problems
- MLWorks, LispWorks, DylanWorks
- ScriptWorks
- The Lisp Machine at Symbolics
- MM Group
- ~6 years, ~6 members
- 30 years of effort
- The end of Harlequin
- Betting Dylan against Java
- The MPS at Ravenbrook
- open source
- commercial licensing
- dormancy
- but not very rusty!
- it's waking up!
- What's special about the MPS
- Attributes
- flexibility
- can meet many sets of requirements without modification
- wide variety of requirements
- adaptability
- can easily be modified to meet more (new) sets of requirements
- new pool classes easy to bolt on
- efficiency
- reliability
- developed very rigorously indeed
- Features
- memory pools for flexibility and adaptability
- manual and automatic MM in combination
- incremental GC for responsiveness
- in-line allocation for efficiency
- Examples of pool classes
- A
- AMC
- DL
- example of domain-specific pool class
- The future
- Our goals for the MPS
- disseminate the knowledge and experience that we built up in developing the MPS and see it re-used
- see the MPS re-used in new applications
- gain opportunities for rewarding and interesting work in the field of memory management
- Project review happening now
- Potential for collaboration
- Hidden good ideas
- Projects
- Measurement
- what measurements are appropriate
- current research consensus
- commercial requirements
- creating measurement system
- obtaining results for publication
- writing a paper!
- collaboration with visualization PhD?
- Language integrations
- Perl (Parrot), Python, Lua, Scheme, etc.
- C--
- Java?
- Objective C
- Other integrations
- General drop-in malloc replacement
- Kernel MM
- Dynamic mach pager
- Development
- Efficient non-moving automatic pool
- Exploit parallelism of modern architecture
- Video game system?
- Crossovers
- Research specialized hardware requirements
- Interaction with MM hardware architecture: cache, MMU, etc.
- Specialized dynamic VM pagers
- Interaction with VM OS architectures
- How to get involved
- Join mps-discussion
- Contact Colin Egan
- Funding???
- Where to find stuff
- Summary
- References
- The MPS Project <http://www.ravenbrook.com/project/mps/>.
- Document History
- 2004-12-01 RB Wrote outline for talk this afternoon.
- 2004-12-06 RB Added history, references, and licence.
- Copyright and Licence
- Copyright © 2004 Ravenbrook Limited.
- $Id: //info.ravenbrook.com/project/mps/doc/2004-12-01/herts-talk/index.html#1 $