Microkernel - Extended Discussion

Extended Discussion

Jochen Liedtke gave a talk about his newest, fastest IPC performance numbers. Pentium RPC is down to .73us (paper was wrong) and R4600 is down to 0.91us. Really optimized Alpha is at .10us.

Most of the overhead on the Pentium was for entering the kernel. AMD K6 has a special instruction for making it faster.

Bershad inquired as to whether register spill times were included in the benchmarks. Liedtke said no and small argument ensued over methodology. Consensus seemed to be that register spilling was a compiler, not RPC problem.

He then compared the costs of his IPC vs. a system call in Vino (an operating system with grafting) and showed a huge difference. This caused an uproar, with Margo Seltzer pointing out that Vino was totally unoptimized (and Bershad agreeing). Bershad argued that there are good examples of grafting like packet filter. Kaashoek pointed to dynamic code generation as a method of generating really fast grafts.


Discussion


Ballestres argues that both extensibility and distribution over a network are good properties for an operating system. He described his DAMN (Distributed Adaptable Microkernel ) which he describes as an extension of the exokernel philosophy. Each node in the dsitributed system is viewed a cache of the entire system. Three low-level abstractions aid in dealing with remote resources: shuttles, portals and D-TLBs. Shuttles are distributed, extensible hw contexts; portals provide a distributed interrupt service (the basis for control transfers and event notification); D-TLB are a distributed software TLB (for distributed shared memory). The users provide the protocols for transport, location, and cache coherence in the system. He provides network-wide physical names protected by capabilities.


Discussion