The JX Operating System
Michael Golm
Meik Felser, Christian Wawersich, Jürgen Kleinöder
University of Erlangen-Nürnberg Department of Computer Science (Distributed Systems and Operating Systems) Martensstraße 1 91058 Erlangen, Germany golm@cs.fau.de
The JX Operating System Michael Golm Meik Felser, Christian - - PowerPoint PPT Presentation
The JX Operating System Michael Golm Meik Felser, Christian Wawersich, Jrgen Kleinder University of Erlangen-Nrnberg Department of Computer Science (Distributed Systems and Operating Systems) Martensstrae 1 91058 Erlangen, Germany
Meik Felser, Christian Wawersich, Jürgen Kleinöder
University of Erlangen-Nürnberg Department of Computer Science (Distributed Systems and Operating Systems) Martensstraße 1 91058 Erlangen, Germany golm@cs.fau.de
The JX Operating System
1
The JX Operating System
2
◆ Protection domains ◆ Communication mechanism ◆ The Microkernel
The JX Operating System
3
Motivation
portability productivity robustness portability productivity robustness
The JX Operating System
4
Motivation
portability productivity robustness portability productivity robustness ? ?
The JX Operating System
5
Motivation
The JX Operating System
6
Motivation
The JX Operating System
7
Motivation
File System Disk Driver System Call Interface Java Native Interface Hardware Interface File Descriptor File Object
The JX Operating System
8
Motivation
File System Disk Driver System Call Interface Java Native Interface Hardware Interface File Descriptor File Object
The JX Operating System
9
Motivation
File System Disk Driver System Call Interface Hardware Interface File Descriptor
File Object
Disk Driver File System
The JX Operating System
10
Motivation
File System Disk Driver System Call Interface Hardware Interface File Descriptor
File Object
Disk Driver File System
The JX Operating System
11
Motivation
File System Disk Driver Hardware Interface File Descriptor File Object
Disk Driver File System
The JX Operating System
12
Hardware Interface File Object
Disk Driver File System
The JX Operating System
13
Architecture
Hardware Interface File Object
Disk Driver File System
The JX Operating System
14
Architecture
Hardware Interface File Object
Disk Driver File System
The JX Operating System
15
Architecture
Hardware Interface
The JX Operating System
16
Architecture
Hardware Interface
Heap Components Classes Classes Threads
The JX Operating System
17
Architecture
Hardware Interface
Heap Threads Components Heap Threads Components
Service
The JX Operating System
18
Architecture
Hardware Interface
Heap Threads Components
Interface Implementation
Heap Threads Components
Service
The JX Operating System
19
Architecture
Hardware Interface
Heap Threads Components
Interface Implementation
Heap Threads Components
Service Service-Thread
The JX Operating System
20
Architecture
Hardware Interface
Heap Threads Components
Interface Implementation
Heap Threads Components
Portal Service Service-Thread
The JX Operating System
21
Architecture
Hardware Interface
Heap Threads Components
Interface Implementation
Heap Threads Components
Interface Portal Service Service-Thread
The JX Operating System
22
Architecture
Hardware Interface
Heap Threads Components
Interface Implementation
Heap Threads Components
Interface Portal Service Client-Thread Service-Thread
The JX Operating System
23
Architecture
◆ no shared objects ➔ no accounting problems (memory, GC time) ◆ no GC dependencies ➔ no scalability problems ◆ explicit application boundaries ➔ confinement
◆ no migrating threads ➔ no domain termination problems
◆ no trusted code ➔ improved security
The JX Operating System
24
Architecture
Hardware Interface
Java-level scheduler domain management garbage collector scheduler Naming DomainZero Portals Runtime System Memory Manager Domain Manager monitoring low-level CPU management copying garbage collector mark&sweep garbage collector portal invocation memory management component management Java-level collector preemptive round-robin scheduler non-preemptive round-robin scheduler garbage collector support framework
The JX Operating System
25
Architecture
Java-level scheduler domain management garbage collector scheduler Naming Portals Runtime System Memory Manager Domain Manager monitoring low-level CPU management copying garbage collector mark&sweep garbage collector portal invocation memory management component management Java-level collector preemptive round-robin scheduler non-preemptive round-robin scheduler garbage collector support framework
Domain Domain Domain Domain
The JX Operating System
26
◆ Protection domains ◆ Communication mechanism ◆ The Microkernel
The JX Operating System
27
Hardware Interface File Object
Disk Driver File System
The JX Operating System
28
◆ Management of large memory, registers, and on-device memory ◆ Interrupt handlers
The JX Operating System
29
◆ Management of large memory, registers, and on-device memory ◆ Interrupt handlers
◆ No changes to the language or bytecode instruction set
The JX Operating System
30
◆ disk blocks, network buffers, ...
◆ video memory, device registers, ...
◆ no explicit interface ◆ no specializations possible ◆ located on heap, can be moved (DMA!) ◆ can only be passed by copying
The JX Operating System
31
The JX Operating System
32
The JX Operating System
33
Client Domain DomainZero
heap
memoryManager.alloc(...)
The JX Operating System
34
Client Domain DomainZero
heap memory area
memoryManager.alloc(...) allocate memory
The JX Operating System
35
Client Domain DomainZero
heap mem size ... memory area
memoryManager.alloc(...) copy portal to client allocate memory
The JX Operating System
36
◆ must not run in endless loop ➔ verifier ◆ must not invoke portals except fast portals ◆ must synchronize with other threads without blocking ▲ AtomicVariable
➔ Single Producer / Single Consumer Queue
The JX Operating System
37
Heap
DRAM Registers, On-device memory
AtomicVariable Threads IRQ-Thread
The JX Operating System
38
Heap
DRAM Registers, On-device memory
AtomicVariable Threads IRQ-Thread
Heap
The JX Operating System
39
Heap
DRAM Registers, On-device memory
Memory AtomicVariable Threads IRQ-Thread
Heap Memory
The JX Operating System
40
Heap
DRAM Registers, On-device memory
Memory DeviceMemory AtomicVariable Threads IRQ-Thread
Heap Memory
The JX Operating System
41
◆ Protection domains ◆ Communication mechanism ◆ The Microkernel
◆ IOZONE ◆ NFS
The JX Operating System
42
Performance
80 160 240 320 400 480 560
filesize in KBytes throughput in MBytes/sec 4 8 16 32 64 128 256 512
80 160 240 320 400 480 560
filesize in KBytes throughput in MBytes/sec 4 8 16 32 64 128 256 512
4 8 16 32 64 128 256 512 record size in KBytes 4 8 16 32 64 128 256 512 record size in KBytes
Filesystem
FS ext2FS Buffer BlockIO
BlockProvider
BlockIO IDE
IOZone
FS iozone DomainZero
Linux JX
The JX Operating System
43
Performance
10 20 30 40 50 60 70 80 90 100 filesize in KBytes achieved throughput in percent 4 8 16 32 64 128 256 512
4 8 16 32 64 128 256 512 record size in KBytes
Filesystem
FS ext2FS Buffer BlockIO
BlockProvider
BlockIO IDE
IOZone
FS iozone DomainZero
JX vs. Linux %
The JX Operating System
44
Performance
10 20 30 40 50 60 70 80 90 100 filesize in KBytes achieved throughput in percent 4 8 16 32 64 128 256 512
4 8 16 32 64 128 256 512 record size in KBytes
Filesystem
FS ext2FS Buffer BlockIO
BlockProvider
BlockIO IDE
IOZone
FS iozone DomainZero
JX vs. Linux %
The JX Operating System
45
Performance
4 8 16 32 64 128 256 512 record size in KBytes
Filesystem
FS ext2FS Buffer BlockIO
BlockProvider
BlockIO IDE
IOZone
FS iozone DomainZero
Running without safety checks %
improvement in percent
The JX Operating System
46
Performance
1000 2000 3000 4000 5000 6000 7000 2 4 6 8 10 request/second Time in seconds JX Linux (kernel NFS) Linux (user NFS)
The JX Operating System
47
Performance
Idle 0.1 DomainZero:InitialThread 0.3 SVC-jx/zero/BootFS 0.4 SVC-jx/zero/ComponentManager 0.5 SVC-jx/zero/DebugSupport 0.6 SVC-jx/zero/DomainManager 0.7 SVC-jx/zero/DebugSupport 0.8 SVC-jx/zero/Naming 0.9 Init-main 1.2 GC 2.1 NFS-main 2.2 jx/devices/pci/PCIGod 2.3 timerpc/StartTimer 2.4 jx/net/StartNetDevice 2.5 jx/net/protocols/StartNetworkProtocols 2.6 test/fs/IDEDomain 2.7 FSDomain-Main 2.8 test/nfs/NFSDomain 2.9 SVC-jx/devices/pci/PCIAccess 2.10 TimerManager 2.11 IRQThread8 2.12 SVC-jx/timer/TimerManager 2.13 IRQThread11 2.14 IDE-2nd-IRQ ide0 2.15 IDE-2nd-IRQ ide1 2.16 IRQThread14 2.17 SVC-jx/devices/net/NetworkDevice 2.18 Etherpacket-Queue 2.19 SVC-jx/net/NetInit 2.20 RPC-Receiver 2.21 SVC-bioide/Partition 2.23 SVC-jx/fs/FS 2.24 SVC-jx/fs/FileSystem 2.25 MountProc 2.26 NFSProc 2.27 RPCBind 2.28
2 4 6 8 10 12 14 16 18 20 22 Time in Seconds
The JX Operating System
48
Performance
Idle 0.1 DomainZero:InitialThread 0.3 SVC-jx/zero/BootFS 0.4 SVC-jx/zero/ComponentManager 0.5 SVC-jx/zero/DebugSupport 0.6 SVC-jx/zero/DomainManager 0.7 SVC-jx/zero/DebugSupport 0.8 SVC-jx/zero/Naming 0.9 Init-main 1.2 GC 2.1 NFS-main 2.2 jx/devices/pci/PCIGod 2.3 timerpc/StartTimer 2.4 jx/net/StartNetDevice 2.5 jx/net/protocols/StartNetworkProtocols 2.6 test/fs/IDEDomain 2.7 FSDomain-Main 2.8 test/nfs/NFSDomain 2.9 SVC-jx/devices/pci/PCIAccess 2.10 TimerManager 2.11 IRQThread8 2.12 SVC-jx/timer/TimerManager 2.13 IRQThread11 2.14 IDE-2nd-IRQ ide0 2.15 IDE-2nd-IRQ ide1 2.16 IRQThread14 2.17 SVC-jx/devices/net/NetworkDevice 2.18 Etherpacket-Queue 2.19 SVC-jx/net/NetInit 2.20 RPC-Receiver 2.21 SVC-bioide/Partition 2.23 SVC-jx/fs/FS 2.24 SVC-jx/fs/FileSystem 2.25 MountProc 2.26 NFSProc 2.27 RPCBind 2.28
2 4 6 8 10 12 14 16 18 20 22 Time in Seconds
The JX Operating System
49
Performance
Idle 0.1 DomainZero:InitialThread 0.3 SVC-jx/zero/BootFS 0.4 SVC-jx/zero/ComponentManager 0.5 SVC-jx/zero/DebugSupport 0.6 SVC-jx/zero/DomainManager 0.7 SVC-jx/zero/DebugSupport 0.8 SVC-jx/zero/Naming 0.9 Init-main 1.2 GC 2.1 NFS-main 2.2 jx/devices/pci/PCIGod 2.3 timerpc/StartTimer 2.4 jx/net/StartNetDevice 2.5 jx/net/protocols/StartNetworkProtocols 2.6 test/fs/IDEDomain 2.7 FSDomain-Main 2.8 test/nfs/NFSDomain 2.9 SVC-jx/devices/pci/PCIAccess 2.10 TimerManager 2.11 IRQThread8 2.12 SVC-jx/timer/TimerManager 2.13 IRQThread11 2.14 IDE-2nd-IRQ ide0 2.15 IDE-2nd-IRQ ide1 2.16 IRQThread14 2.17 SVC-jx/devices/net/NetworkDevice 2.18 Etherpacket-Queue 2.19 SVC-jx/net/NetInit 2.20 RPC-Receiver 2.21 SVC-bioide/Partition 2.23 SVC-jx/fs/FS 2.24 SVC-jx/fs/FileSystem 2.25 MountProc 2.26 NFSProc 2.27 RPCBind 2.28
2 4 6 8 10 12 14 16 18 20 22 Time in Seconds
The JX Operating System
50
Performance
Idle 0.1 DomainZero:InitialThread 0.3 SVC-jx/zero/BootFS 0.4 SVC-jx/zero/ComponentManager 0.5 SVC-jx/zero/DebugSupport 0.6 SVC-jx/zero/DomainManager 0.7 SVC-jx/zero/DebugSupport 0.8 SVC-jx/zero/Naming 0.9 Init-main 1.2 GC 2.1 NFS-main 2.2 jx/devices/pci/PCIGod 2.3 timerpc/StartTimer 2.4 jx/net/StartNetDevice 2.5 jx/net/protocols/StartNetworkProtocols 2.6 test/fs/IDEDomain 2.7 FSDomain-Main 2.8 test/nfs/NFSDomain 2.9 SVC-jx/devices/pci/PCIAccess 2.10 TimerManager 2.11 IRQThread8 2.12 SVC-jx/timer/TimerManager 2.13 IRQThread11 2.14 IDE-2nd-IRQ ide0 2.15 IDE-2nd-IRQ ide1 2.16 IRQThread14 2.17 SVC-jx/devices/net/NetworkDevice 2.18 Etherpacket-Queue 2.19 SVC-jx/net/NetInit 2.20 RPC-Receiver 2.21 SVC-bioide/Partition 2.23 SVC-jx/fs/FS 2.24 SVC-jx/fs/FileSystem 2.25 MountProc 2.26 NFSProc 2.27 RPCBind 2.28
2 4 6 8 10 12 14 16 18 20 22 Time in Seconds
The JX Operating System
51
◆ Isolation of protection domains ◆ System-level programming without language extensions
◆ Increased robustness of system components ◆ Modular system ◆ Flexibility in system configuration ◆ Extensibility using domains