Hi All, time to play catch up now exam marking etc is over. I apologise in advance if this has be pointed out in another thread.
Just a small, but important point relating to the statement below.
The L4 mapping database is NOT strictly a cache, but it can be used to implement cache-like behaviour which is usually what is done in most systems. Kernel mappings are a dynamic subset of things defined at user-level. However, in kernel mapping can be used to indirectly define an address space or region of an address space (if, for example, you what to avoid faults). I.e. it can equal or be a superset of what is defined at user-level. However, doing so requires carefully crafted and coordinated pager behaviour/protocol.
You can term it a (large) cache with mechanisms to control its population, but it is not exactly a "cache" in the terms usual sense of the word.
- Kevin
What you describe is one of the key differences between the L4 and EROS designs. As I am coming to understand L4 better, I'm coming to think that it is the only really *important* difference between the two architectures:
In EROS, a node tree DEFINES an address space. Since it is the ultimate defining data structure, it can be paged but not discarded (or at least, not without losing the mappings).
In L4, the mapping table is a cache of things defined at user level.
shap
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers