Im Rahmen dieser Arbeit wurde das Java-Betriebssystem JX um eine
Unterstützung für Intel-Multiprozessorsysteme erweitert. Dabei
wurden drei Bereiche verändert:
Das Konzept sieht zwei Schedulingebenen vor. Eine Ebene teilt die Rechenzeit den Anwendungen zu, die zweite Ebene verteilt die Rechenzeit innerhalb der Anwendung. Dabei werden Schedulerobjekte eingesetzt, die vollkommen in Java implementiert sind, um eine leichte Veränderung der Schedulingstrategie zuzulassen. Um die Möglichkeiten des Konzepts zu zeigen, wurde exemplarisch ein Schedulingsystem auf Basis der Round-Robin-Strategie implementiert.
Um Interprozesskommunikation zu realisieren, werden in JX so genannte
Portale eingesetzt, mit deren Hilfe Methoden anderer Anwendungen aufgerufen
werden können. Da die Anwendungen voneinander isoliert sind, ist ein
Portalaufruf mit einer Threadumschaltung zum Anbieter verbunden. Im Laufe
dieser Arbeit wurde das Schedulingsystem in den Portalmechanismus integriert,
sodass sowohl der Anbieter eines Portals als auch der Nutzer mehr Kontrolle
über den Ablauf erhalten können.
The purpose and intent of this diploma-thesis was to extend the
Java operating system JX to enable support of Intel multiprocessor systems.
To accomplish this, three areas were considered:
This concept splits CPU scheduling into two levels. The first assigns the CPU to the applications while the second level distributes the computing time within an application. The scheduler objects are implemented entirely in Java as this allows for easy modification of the scheduling strategy. In order to demonstrate the functionality of this concept a simple round robin scheduling system was implemented.
JX uses so-called portals to effect inter-process communication. A portal
can be used to invoke methods of other applications. The isolation of the
different applications requires a context switch to the portal povider.
Therefore the Scheduler was integrated in the portal mechanism to allow
both, the provider of a portal and the user, to retain full control of
the CPU time and thread activation.