Printer-Friendly
Version
|
Next: Case in Point: LLinux [Härtig
Up: 05-uk
Previous: A Critique of the
Subsections
- Minimality:
- If it doesn't have to be in the kernel, it
shouldn't be in the kernel
- Appropriate abstractions
- which can be made fast
and allow efficient implementation of services
- Well written:
- It pays to shave a few cycles off
TLB refill
handler or the IPC path
- Unportable:
- must be targeted to specific hardware
- $.$
- no problem if it's small, and higher layers are portable
- $.$
- Example: Liedtke reports significant rewrite of memory
management when porting from 486 to Pentium
==>
- ``abstract hardware layer'' is too costly
- $.$
- Size and associativity of TLB
- $.$
- Size and organisation of cache (larger line size - restructured IPC)
- $.$
- Segment regs in Pentium used to simulate tagged TLB
==>
- different trade-offs
- Virtual memory/address spaces
- threads,
- fast IPC,
- unique identifiers (for IPC addressing).
- file system
- use user-level server (as in Mach)
- device drivers
- user-level driver invoked via interrupt (= IPC)
- page-fault handler
- Appropriate system calls to reduce number of kernel invocations
- e.g., reply & receive next
- Rich message structure
- value and reference parameters in message
- Copy message only once (i.e. not
userkerneluser)
- Short messages in registers
- As many syscall parameters in registers as possible
- One kernel stack (for interrupt handling) per thread (in TCB)
System |
CPU |
MHz |
RPC |
s | cyc/IPC |
semantics |
L4 |
R4600 |
100 |
1.7 |
s | 100 |
full |
L4 |
Alpha |
433 |
0.2 |
s | 45 |
full |
L4 |
Pentium |
166 |
1.5 |
s | 121 |
full |
L4 |
486 |
50 |
10 |
s | 250 |
full |
QNX |
486 |
33 |
76 |
s | 1254 |
full |
Mach |
R2000 |
16.7 |
190 |
s | 1584 |
full |
SCR RPC |
CVAX |
12.5 |
464 |
s | 2900 |
full |
Mach |
486 |
50 |
230 |
s | 5750 |
full |
Amoeba |
68020 |
15 |
800 |
s | 6000 |
full |
Spin |
Alpha 21064 |
133 |
102 |
s | 6783 |
full |
Mach |
Alpha 21064 |
133 |
104 |
s | 6916 |
full |
Exo-tlrpc |
R2000 |
116.7 |
6 |
s | 53 |
restricted |
Spring |
SparcV8 |
40 |
11 |
s | 220 |
restricted |
DP-Mach |
486 |
66 |
16 |
s | 528 |
restricted |
LRPC |
CVAX |
12.5 |
157 |
s | 981 |
restricted |
Next: Case in Point: LLinux [Härtig
Up: 05-uk
Previous: A Critique of the
Gernot Heiser
2002-08-28
|