-
Notifications
You must be signed in to change notification settings - Fork 11
Threading
Migrating threads implementation. Threads start living in kernel and make excursions to user tasks and above. Mach style - thread/activation duality with similar semantics to Mach's.
Separation between "kernel" and "glue code".
Tasks make "bindings" which declares which interfaces and calls they can perform. Security checks are performed when binding. Token revocation can happen during runtime as well at interface granularity level (?).
atomic-osdi99:
scheduler activations [2]
Quicksilver [17] and Nonstop [3] are transactional operating systems; in both of these systems, the kernel provides primitives for maintaining transactional semantics in a distributed system. In this way, transactional semantics are provided for high-level services such as file operations even though the basic kernel operations on which they are built may not be.
Atomic "stateless" IPC - no continuations. Purely atomic kernel API [Fluke, atomic-osdi99].
both process- and interrupt-models are possible for testing thanks to fluke architecture. (process-model improves preemptibility, interrupt-model improves memory usage)
- In terms of preemption latency, an interrupt-model kernel can perform as well as an equivalently configured process-model kernel, but a fully-preemptible process-model kernel provides the lowest latency.
from sel4: (seL4 is a single kernel-stack operating system)
process-fully-preemptible model is good for low-latency desktop. interrupt-partially-preemptible shall be fine for embedded/memory constrained devices and appliances.
For example, Mach’s average per-thread kernel memory overhead was reduced by 85% when the kernel was changed to use a partial interrupt model [10, 11].