Next: Linux process external environment
Up: K42
Previous: K42 structure
To achieve the above mentioned goals, we have incorporated many
technologies into K42. We have written several white papers (available on
our web site) describing these technologies in greater detail. This
section provides an overview of the key technologies used in K42. At the
beginning of this section we highlighted the ones impacting our Linux API
implementation.
- Object-oriented technology has been applied to the entire system.
This has been used to achieve good performance through customization, to
achieve good MP performance by increasing locality, to increase
maintainability by isolating modifications, and to perform autonomic
functions by allowing components to be hot swapped[24].
- Much traditional kernel functionality is implemented in libraries in
the application's own address space, providing a large degree of
customizability and reducing overhead by avoiding crossing address space
boundaries to invoke system services.
- A structure that permits machine specific features such as the
PowerPC inverted page table and the MIPS software-controlled TLB to be
exploited in an isolated manner without compromising portability.
- System functionality implemented in user-level servers with good
performance maintained via efficient IPCs similar to L4[20].
- The use of processor-specific memory (the same virtual address on
different processors maps to different physical addresses) to achieve good
scalable NUMA performance. This technology, combined with avoiding global
data, global code paths, and global locks, allows K42's design to scale to
thousands of processors.
- A K42 specific object-oriented structure, clustered
objects[12], which provide an infrastructure to implement
scalable services with the degree of distribution transparent to the
client. This also facilitates autonomic multiprocessor
computing[4] as K42 can dynamically swap between uniprocessor
and multiprocessor clustered objects.
- K42 is designed to run on 64-bit architectures and we have taken
advantage of 64 bits to make performance gains by, for example, using large
virtually sparse arrays rather than hash tables.
- K42 is fully preemptable and most of the kernel data is pageable.
- K42 is designed to support a simultaneous mix of time-shared,
real-time, and fine-grained gang-scheduled applications.
- K42 has developed deferred object deletion [12] similar to
RCU [22] allowing objects to release their locks before
calling other objects. This efficient programming model is crucial for
multiprocessor performance and is similar to type-safe
memory [16].
Next: Linux process external environment
Up: K42
Previous: K42 structure
2003-04-08