-
Notifications
You must be signed in to change notification settings - Fork 4
Memory
- Kernel does not allocate any memory itself.
- Processes exist in a single address space.
- Kernel provides address space protection between domains.
sigma0 allocator, L4 style + userspace suballocators and pagers on top, Fluke style.
Second-level cache and TLB hit rates can be improved by using a special pager that allocates memory beneficially for cache hit rates. Not in the kernel. (See how linux does this instead). In practice first-level TLB handlers are usually in hardware or inside m-kernel.
(to self) read about TLB operation in cpu books. Also see L4's funky TLB-flush-cost-small-spaces address-space switcher. [Liedtke 1995]
process (task) - called "space" in L4
On microkernel construction - Appendix A: An Abstract Model of Address Spaces
Процесс в Mach - это, в первую очередь, адресное пространство и набор нитей, которые выполняются в этом адресном пространстве. Таким образом, выполнение связано с нитями, а процессы являются пассивными объектами и служат для сбора всех ресурсов, использующихся группой взаимосвязанных нитей, в удобные контейнеры.
A passive address space is a memory protection entity in which arbitrary threads may execute - a Protection Domain (PD). Minimal address space API is supported by the nucleus.
- map, grant, demap The actual memory address allocation is delegated to userspace memory manager.
http://www.cse.unsw.edu.au/~disy/Mungi.html
SASOS - all memory addresses are "physical" (i.e. addresses 1000 and 1000 in two different tasks point to the same physical memory address).
The basic abstractions provided by Mungi are:
- capability,
- object,
- task,
- thread,
- and protection domain.
Objects are the basic storage abstraction. They consist of a contiguous range of pages, with no further structure imposed by the system. Objects are protected by capabilities which are described below.
Threads are the basic execution abstraction. A task is a set of threads which share a protection domain. A protection domain consists of a set of capabilities. Capabilities are presented implicitly by storing them in a special data-structure known to the system. This reduces the need for most applications to deal with capabilities and thus makes protection transparent.
Grasshopper [RDH+96] is a system specifically designed to support persistence. Its basic storage abstraction is called a container, which essentially constitutes an address space. Containers, or parts thereof, can be mapped into other containers. Grasshopper presents a generalized model of address spaces, which can emulate a traditional model, such as UNIX, as well as the SASOS model [LRD95].
guarded page table (GPT) [Lie93,Lie96b].
