Kurzfassung


Im Rahmen dieser Arbeit wurde das Java-Betriebssystem JX um eine Unterstützung für Intel-Multiprozessorsysteme erweitert. Dabei wurden drei Bereiche verändert:

  1. Kritische Datenstrukturen wurden durch gegenseitigen Ausschluss vor gleichzeitiger Veränderung geschützt.
  2. Die Interruptverwaltung wurde an die Gegebenheiten eines Multiprozessorsystems angepasst.
  3. Die Verwaltung der Aktivitätsträger (Threads) wurde auf die Verwendung mehrerer Prozessoren ausgelegt.
Dem letzten Punkt wurde besondere Aufmerksamkeit geschenkt. So wurde ein flexibles Schedulingkonzept entwickelt und implementiert, welches nicht nur die Verwaltung mehrerer Prozessoren zulässt, sondern auch die Anforderung von JX erfüllt: den Anwendungen ein unabhängiges Scheduling zu ermöglichen. Der Schwerpunkt lag dabei auf der Definition von Schnittstellen, die nötig sind, um eine flexible Realisierung eines Schedulersystems zu ermöglichen.

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.
 
 

Abstract


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:

  1. Critical data structures were protected against simultaneous modification by means of mutal exclusion.
  2. Interrupt handling was adapted to satisfy the needs of a multiprocessor system.
  3. Administration of threads was re-designed to use the advantages of multiple processors.
Particular attention was given to the last area. A flexible scheduling concept was developed and  implemented to allow the administration of multiple processors. The main focus was to define necessary interfaces to enable a flexible implementation of the scheduling system.

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.