In most of the current operating systems memory protection is based on hardware, which is generally believed to have a better run time behavior than its software based alternative. However, software based memory protection provides a much more flexible way of allocating system resources. Therefore it can more than compare with traditional operating systems, provided a comparable effort in program and system optimization is made.

JX is an operating system whose major parts are implemented in the Java programming language. It simply uses the memory protection design of Java as a software based memory protection. This thesis introduces two tools, which were contributed to the JX project: the first tool supports the programmer in improving a Java program, the second tool improves the performance of the execution of the Java byte-code.

In order to compose faster code, it is necessary for the programmer to identify the most time consuming parts. These so called "hot spots of execution" often indicate poor code or bottle necks and can be found by the use of profilers. This thesis illustrates the iplementation of such a profiler for the JX system measuring the execution time of each method invocation.

The time logging is realized by counting each clock cycle of the CPU, using the time stamp counter of the computer's Pentium processor. The time data is separately collected for each thread and can either be recorded to a file or examined via a terminal connection.

A common technique to decrease the execution time of applications is the translation of the Java byte-code into native code. For this task a translator was developed for the JX operating system. In contrast to conventional just-in-time (JIT) compilers, which aim at fast translation, the JX translator was designed to generate faster native code. Therefore it uses more expansive optimization techniques.

In exhaustive tests with the hardware based profiler it proved capable of depicting the most time consuming parts in an implementation of the Extended Two (ext2) filesystem, which is used by the JX operating system. Although the test results where no sufficient to achieve the same performance as with traditional operating systems, future work in this field will certainly lead to more promising results.