Diplomarbeit. Implementierung eines Schedulings mit dynamischer Lastverteilung für die SHAP-Mehrkernarchitektur

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Implementierung eines Schedulings mit dynamischer Lastverteilung für die SHAP-Mehrkernarchitektur"

Transkript

1 Implementierung eines Schedulings mit dynamischer Lastverteilung für die SHAP-Mehrkernarchitektur Diplomarbeit an der FAKULTÄT INFORMATIK DER TECHNISCHEN UNIVERSITÄT DRESDEN eingereicht am: INSTITUT FÜR TECHNISCHE INFORMATIK PROFESSUR FÜR VLSI-ENTWURFSSYSTEME, DIAGNOSTIK UND ARCHITEKTUR von: Peter Ebert geboren am 19. Sep in Dresden Matrikel-Nr.: Bearbeitungszeitraum: vom bis Betr. HSL: Betreuer: Prof. Dr.-Ing. habil. Rainer G. Spallek Dr.-Ing. Martin Zabel Dresden, 15. Januar 2013

2

3 Ehrenwörtliche Erklärung Ehrenwörtliche Erklärung Hiermit erkläre ich, dass ich die vorliegende Arbeit selbständig und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt sowie die aus fremden Quellen direkt oder indirekt übernommenen Gedanken als solche kenntlich gemacht habe. Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht. Peter Ebert, Dresden, 15. Januar 2013

4

5 Inhaltsverzeichnis I. Inhaltsverzeichnis I. Inhaltsverzeichnis... i II. Tabellenverzeichnis... iii III. Abbildungsverzeichnis... v IV. Abkürzungsverzeichnis... vii 1 Einleitung Die SHAP-Mehrkernarchitektur Zielsetzung Arbeitsumgebung Struktur der Arbeit Grundlagen Überblick: Load-Balancing Überblick: Thread-Scheduling Terminologie und Charakteristika Klassische Scheduling-Strategien Scheduling in Java Scheduling auf Mehrkernprozessoren Scheduling von Threadgruppen Distributed Weighted Round-Robin Relevante Organisation des SHAP-Mehrkernprozessors Architektur des SHAP-Mehrkernprozessors Scheduling auf dem SHAP Mehrkernprozessor Entwurf Ambitionen Fortführung des aktuellen Ansatzes Auswahl des Algorithmus Klassische Algorithmen Gang Scheduling Distributed Weighted Round-Robin Hardwarearchitektur der Lastmigration Basisentscheidung Kommunikationskonzept i

6 Inhaltsverzeichnis 4 Implementierung Der Scheduler Beginn der Migration Migration- und Yield-Lock Garbage-Collector-Lock Kern- und Thread-Auswahl Dialog der Kerne GC-parallele Buskommunikation Anrede des Lastkerns Vorbereitung der Stackübertragung Stackübertragung Abschluss der Stackübertragung Nachbehandlung Rückkehr in den Java-Code Umtragen des migrierten Threads Aufhebung der Locks Evaluation Funktionalität Ressourcen Leistungsbewertung Benchmarkbasis Test des ungünstigsten Falls Test des günstigsten Falls Abschlussbetrachtung Ausbaumöglichkeiten und Ausblick Transparente Migration Wichtige Nachbesserungen Weitere Nachbesserungen Zusammenfassung und Fazit V. Literaturverzeichnis VI. Anhang ii

7 Tabellenverzeichnis II. Tabellenverzeichnis Tab. 2-1: Klassifikation dynamischer Lastverteilungsverfahren nach Pollak... 4 Tab. 5-1: Tab. 5-2: Tab. 5-3: Überblick über die wichtigsten Änderungen im absol. und relat. Hardware- Verbrauch LUT-Verbrauch ausgewählter veränderter bzw. neu erstellter VHDL- Komponenten Vergleich des Speed-Ups der alten Version mit dem maximalen theoretischen und dem durch Migration erreichten Speed-Up iii

8 iv

9 Abbildungsverzeichnis III. Abbildungsverzeichnis Abb. 2-1: Klassifikation von Lastbalancierungsverfahren nach Casavant und Kuhl... 5 Abb. 2-2: Architektur des SHAP auf dem Virtex-5 LXT ML505 FPGA Abb. 2-3: Architektur eines SHAP-Prozessorkerns unter bes. Berücksichtigung des Stacks Abb. 3-1: Threadverteilung nach aktuellem Ansatz (a) und nach Rundenlänge (b) Abb. 3-2: Gang Scheduling mit optimalem Packen vor (a) und nach (b) der Terminierung von Programm B und je einem Thread der Programme A und C. Quantum = 1 ms Abb. 3-3: Benchmark-Ergebnisse zur Anzahl von Migrationen pro Runde verschiedener Varianten des abgewandelten DWRR-Algorithmus Abb. 3-4: Diagramm des Kommunikationsablaufs einer erfolgreichen Migration Abb. 3-5: Verkettung der Stackblöcke bei Migration von Thread Abb. 4-1: Ablaufdiagramm des Schedulers im Mikrocode Abb. 4-2: Ablauf der Kommunikation über den GC-Bus und der zur Migration wichtige Ausschnitt des GC-Bus-Protokolls Abb. 4-3: Aufbau eines Datenregisters bei dessen Migration Abb. 4-4: Zustandsabfolge während der Stackübertragung Abb. 4-5: Architektur des neuen SHAP-Prozessorkerns mit Lastmigration (rote Linien: Änderung; rote Bezeichnungen: Neuerstellung) Abb. 4-6: Zeitlicher Kommunikationsablauf einer erfolgreichen Thread-Migration über die Programmierungsebenen Java-Code, Mikrocode und Hardware Abb. 5-1: Vergleich des Ressourcenverbrauchs im Mikrocode zwischen der ursprünglichen (Original) und der neuen, migrationsfähigen Version (Migration) v

10 Abbildungsverzeichnis Abb. 5-2: Vergleich des relativen Hardware-Verbrauchs zwischen der ursprünglichen und der neuen, migrationsfähigen Version Abb. 5-3: Vergleich der Berechnungszeiten von Crypt zwischen alter (Original) und neuer Version (Migration) im Fall der günstigsten Bedingungen für die alte Version Abb. 5-4: Vergleich der Berechnungszeiten von SparseMatmult zwischen alter (Original) und neuer Version (Migration) im Fall der günstigsten Bedingungen für die alte Version Abb. 5-5: Vergleich der Berechnungszeiten von Crypt zwischen alter (Original) und neuer Version (Migration) im Fall der günstigsten Bedingungen für die neue Version Abb. 5-6: Vergleich der Berechnungszeiten von SparseMatmult zwischen alter (Original) und neuer Version (Migration) im Fall der günstigsten Bedingungen für die neue Version vi

11 Abkürzungsverzeichnis IV. Abkürzungsverzeichnis API ASIC CPU CVS CWB DMA DMS DPRR DWRR EDF EWB FCFS FFD FIFO FPGA GC GCB HRRN IDEA IWB JDK JRE JVM JVM-CP LCD LED LLF LUT MC MLFBQ Application Programming Interface Anwendungsspezifische Integrierte Schaltungen Central Processing Unit Concurrent Versions System Core-Wishbone-Bus Direct Memory Access Deadline Monotonic Scheduling Dynamic Priority Round-Robin Distributed Weighted Round-Robin Earliest Deadline First Externer Wishbone-Bus First Come First Serve First Fit Decreasing First In First Out Field Programmable Gate Arrays Garbage Collector Garbage-Collector-Bus Highest Response Ratio Next International Data Encryption Algorithm Interner Wishbone-Bus Java Development Kit Java Runtime Environment Java-Virtual-Machine JVM Constant Pool Liquid Crystal Display Leuchtdiode Least Laxity First Lookup-Tabelle Mikrocode Multilevel Feedback Queue Scheduling vii

12 Abkürzungsverzeichnis MLQ MMU NOS RAM RMS RR SHAP SJF SMP SPF SPT SRTF TLB TOS UART UMA VHDL VLSI VRR Wichtg. WRR verbl. Qu. ZPU Multilevel Queue Scheduling Memory Management Unit Next on Stack Random Access Memory Rate Monotonic Scheduling Round-Robin Secure Hardware Agent Platform Shortest Job First Symmetric Multi-Processing Shortest Process First Shortest Processing Time Shortest Remaining Time First Translation Look-Aside Buffer Top of Stack Universal Asynchronous Receiver Transmitter Uniform Memory Access Very High Speed Integrated Circuit Hardware Description Language Very-Large-Scale Integration Virtual Round-Robin Wichtung Weighted Round-Robin verbleibende Quanten Zylin CPU viii

13 Einleitung 1 Einleitung 1.1 Die SHAP-Mehrkernarchitektur SHAP ist ein Projekt des Lehrstuhls VLSI-Entwurfssysteme, Diagnostik und Architektur der Technischen Universität Dresden, das 2006 ins Leben gerufen wurde und bedeutet: Secure Hardware Agent Platform. Bereits im Namen stehen die drei wesentlichen Aspekte von SHAP. Ziel des Projekts ist die Entwicklung einer Agenten-Plattform, welche komplexe Aufgaben verteilt lösen soll. Dazu wird die Programmiersprache Java genutzt. Sie bietet neben Plattformunabhängigkeit auch wichtige Sicherheitsmerkmale. Um echtzeitfähig zu sein, wird SHAP direkt in Hardware implementiert und ersetzt somit die originale Java-Virtual-Machine (JVM), die gewöhnlich auf einem Betriebssystem aufsetzt. Anwendungsspezifische Integrierte Schaltungen (ASICs) können diese Hardware stellen. Aus Forschungsgründen werden aktuell programmierbare Schaltkreise, um genau zu sein Field Programmable Gate Arrays (FPGAs), verwendet. Bei der Prozessorentwicklung geht der Trend zur Steigerung der Leistung in den letzten Jahren weg von der Erhöhung der Taktfrequenz hin zur Erhöhung der Kernanzahl. Analog zu konkurrierenden Java-Prozessor-Ansätzen verfolgte auch das SHAP-Projekt seit 2007 das Ziel mehrere Prozessorkerne zu verwenden. Die Dissertation von Martin Zabel aus dem Jahr 2011 mit dem Titel Effiziente Mehrkernarchitektur für eingebettete Java-Bytecode-Prozessoren [Zab11] beschreibt ausführlich den Werdegang dieser Entwicklung, die Unterschiede zum Einkernprozessor von 2006 und eine umfassende Leistungsbewertung. 1.2 Zielsetzung Die Motivation dieser Arbeit im großen Kontext ist die Verbesserung der SHAP- Mehrkernarchitektur. Die oben erwähnte Doktorarbeit selbst formuliert dafür bereits Ansatzpunkte. Einer dieser Vorschläge ist die Einbindung einer Lastverteilung durch eine dynamische Umverteilung der Threads auf den Kernen. Zusätzlich dazu muss auch eine Anpassung der Thread-Scheduling-Strategie in Betracht gezogen werden, da Scheduling und Load-Balancing auf Mehrkernprozessoren eng miteinander zusammenhängen. Allerdings wurde während dem Literaturstudium ersichtlich, dass zumindest in einigen Quellen die Begriffe Load-Balancing und Load-Migration disjunkte Bedeutungen 1

14 Einleitung besitzen, und das Ziel dieser Arbeit laut den persönlichen Absprachen mit Load- Migration besser beschrieben ist. Die Realisierung einer Lastmigration ist im Folgenden daher das primäre Vorhaben. 1.3 Arbeitsumgebung Im Rahmen dieser Diplomarbeit wird die aktuelle SHAP-Version, vom lehrstuhlinternen CVS-Server, vom 12. Juni 2012 auf einem Virtex-5 LXT ML505 FPGA der Firma Xilinx genutzt und erweitert. Inbegriffen sind darin sämtliche für die Arbeit relevanten und zu modifizierenden Komponenten, wie die VHDL-Beschreibungen (Very High Speed Integrated Circuit Hardware Description Language), die aktuellen Byte- und Mikrocodes und die Klassenbibliothek. Der Arbeitsplatzrechner besitzt einen 64 Bit Intel Core 2 Duo E8400 Prozessor und wurde mit Microsoft Windows 7 Professional 64 Bit + Service Pack 1 ausgestattet. Jede Kommunikation mit dem Board wird über die serielle UART-Schnittstelle (Universal Asynchronous Receiver Transmitter) bewältigt, wobei das Programm HTerm 0.8.1beta zum Einsatz kam. Java Runtime Environment (JRE) und Java Development Kit (JDK) sind in der Version 1.7.0_03 installiert und als Entwicklungsumgebung wird Eclipse 4.2 (Juno) verwendet. Zur Programmierung des Virtex-5 Boards wird Xilinx ISE Design Suite 13.4 benutzt. 1.4 Struktur der Arbeit Zunächst sollen in Kapitel 2 die theoretischen Grundlagen geklärt werden. Dazu gehören die Auseinandersetzung mit dem gegenwärtigen Stand des SHAP-Projekts sowie ein umfangreiches Studium zur Theorie von Scheduling- und Lastverteilungsstrategien, aber auch bereits bestehender konkreter Algorithmen. Anschließend wird in Kapitel 3 der Weg der Entscheidungsfindung beschrieben, wie und aus welchen Gründen heraus die gestellte Aufgabe gelöst werden soll. Mit der tatsächlichen Implementierung dieser Lösung in die SHAP-Plattform beschäftigt sich Kapitel 4. Kapitel 5 stellt die Ergebnisse der Leistungstests der entstandenen Modifikation dar und vergleicht diese mit der Ausgangsversion. Abschließend wird in Kapitel 6 die gesamte Arbeit auf ihre wichtigsten Bestandteile und Erkenntnisse zusammengefasst und ferner auch durchaus kritisch über etwaige verbesserungsfähige und verbesserungsbedürftige Punkte gesprochen. 2

15 Grundlagen 2 Grundlagen Zum Verständnis, welchen Möglichkeiten, aber auch Grenzen man bei der Arbeit an einem Scheduling-Algorithmus begegnet, sollen zunächst etablierte Begriffe und Kategorisierungen vorgestellt werden. Eine Vollständigkeit der Angaben wird dabei nicht beansprucht. Zumal die Vollzähligkeit in Anbetracht der gebräuchlichen Bezeichnungen und Einordnungen und der Menge verschiedener Lösungen gar nicht möglich ist. Abschließend wird die Architektur der Mehrkernversion des SHAP-Bytecode-Prozessors vorgestellt, in der der neue Scheduler mit Lastverteilung integriert werden soll. 2.1 Überblick: Load-Balancing Lastverteilung wird im allgemeinen Sinn in sehr vielen Bereichen angewendet. Zur Lösung der Aufgabenstellung interessiert speziell die Verteilung der Rechenlast auf Recheneinheiten. Die Weiterentwicklung des SHAP-Einkernprozessors hin zum Mehrkernprozessor schuf die Notwendigkeit für ein Verteilungsverfahren der Threads. Zum Thema Lastverteilung soll vorerst die geläufige Theorie geklärt und zusammengefasst werden. Dabei sollen asymmetrische Systeme vernachlässigt und nur UMA- (Uniform Memory Access) und gleichzeitig SMP-Architekturen (Symmetric Multi Processing) betrachtet werden, auf denen Threads auf allen Kernen gleichartig ausgeführt werden und auf den Hauptspeicher gleich zugreifen können, wie es auch bei der SHAP- Mehrkernarchitektur der Fall ist. Verfahren zur dynamischen Lastbalancierung müssen folgende fünf Teilentscheidungen treffen [Pol99]. Informationsbasis: Aufgrund welcher Informationen wird die Entscheidung getroffen, Last umzuverteilen? 1 Transferentscheidung: Wann und von wem wird entschieden, ob der Ausgleich stattfindet? Migrationsraum: Gibt es abgegrenzte Bereiche, wohin Last verschoben werden darf oder wohin nicht? Lokationsentscheidung: Zwischen welchen Knoten wird die Last übergeben? Auswahlentscheidung: Wie viel Last und welcher Teil davon wird abgegeben? 11 Das Kapitel 3 der Dissertation von Pollak beschäftigt sich intensiv mit der Beantwortung dieser Frage und stellt dazu ein theoretisches Konzept der Informationsebenen auf. [Pol99] 3

16 Grundlagen Aufbauend auf den Möglichkeiten und Variationen diese Fragen zu beantworten, entstehen verschiedene Strategien. Um sie einzuordnen, wurden mehrere Klassifikationsschemata entwickelt, von denen nun zwei vorgestellt werden sollen. Die von Rainer Pollak in seiner Dissertation [Pol99] verwendete Taxonomie setzt kongruent auf den fünf oben erwähnten Teilentscheidungen auf und ist in Tabelle 2-1 schematisch mit den jeweils möglichen Ausprägungen dargestellt. Tab. 2-1: Klassifikation dynamischer Lastverteilungsverfahren nach Pollak Informationsbasis Transferentschei- Migrationsraum Lokationsent- Auswahlentschei- dung scheidung dung lokal zentral bereichsbe- zentral zentral bereichsbe- dezentral schränkt dezentral dezentral schränkt global global Die wohl meist verbreitete [Pol99] alternative Klassifikation wurde 1988 von Casavant und Kuhl aufgestellt [CK88] und mit den Jahren erweitert [Pol99]. Sie betrachtet alle Lastbalancierungsverfahren. Gewöhnlich bezieht man sich dabei aber nur auf den in Abbildung 2-1 dargestellten konsistenten, hierarchischen Teil der Gliederung. Für die vorliegende Arbeit ist deren Teilbaum der dynamischen Lastbalancierungsverfahren wichtig. Dabei werden dezentrale Verfahren, bei welchen Knoten ohne Lastinformationen anderer Knoten entscheiden, als autonom bezeichnet. Im Gegensatz dazu nutzen kooperative Verfahren diese Informationen für ihre Entscheidung. Auf der untersten Ebene werden approximative Methoden abgegrenzt. Sie basieren auf einem vollständigen Modell, das in der Lage ist eine optimale Lösung zu generieren, geben sich aber mit einer akzeptabel guten Lösung zufrieden, um sich Zeit für die Suche zu sparen. Die weiteren Unterkategorien sollten bekannt bzw. selbsterklärend sein. 4

17 Grundlagen Lastverteilung lokal global statisch dynamisch optimal suboptimal zentral dezentral approximativ heuristisch empfängerinitiiert senderinitiiert hybrid kooperativ autonom verschiedene Modelle optimal suboptimal approximativ heuristisch Abb. 2-1: Klassifikation von Lastbalancierungsverfahren nach Casavant und Kuhl Als dynamisches Load-Balancing wird in Anbetracht einer geradezu babylonische[n] Sprachverwirrung [Pol99] eigentlich die Verteilung bei Entstehung von Threads bezeichnet. Im Gegensatz dazu bedeutet Lastmigration die Umverteilung nach Änderung des Lastgleichgewichts. Wenn auch eine gute initiale Zuweisung von hohem Wert ist, ist besonders die komplexere Lastmigration interessant und wesentlich, um auf Dauer hohe Performance zu erreichen. Migriert werden muss lediglich in Systemen mit privaten Thread-Warteschlangen ( ready -Queues) pro Kern. Gibt es eine gemeinsame Warteschlange für das ganze System, nimmt sich ein unbenutzter Kern einfach den ersten Thread aus der Schlange. Private ready -Queues werden jedoch gerade in modernen SMP-Systemen fast ausschließlich genutzt [SGG05]. In einem solchen Umfeld kann Lastmigration auf zwei Arten erfolgen. Entweder überwacht ein einziger, globaler Thread das Gleichgewicht und entscheidet zentral über den empfangenden Kern (push-migration) oder eben dieser Kern sucht sich im Leerlauf eigenständig einen wartenden Thread eines ausgelasteten Kerns (pull-migration). Diese Betrachtungsweise deckt sich nicht ganz mit der Taxonomie von Casavant und Kuhl. Zwar entspricht die empfängerinitiierte Kategorie der pullmigration, die meisten Quellen ordnen jedoch push-migration als dessen Komplement ein, also eine übergeordnete Entscheidungsstelle und nicht die senderinitiierte Kategorie. Pull- und push-migration können auch nebeneinander (hybrid) eingesetzt werden. Es ist allerdings darauf zu achten, dass sogenanntes Thrashing (engl.: das Flattern, das Zittern) vermieden wird, bei dem Kerne überwiegend damit beschäftigt 5

18 Grundlagen sind Last abzustoßen, weil zum Beispiel alle Kerne überlastet sind [Web01]. Der Schwellwert einer Migration sollte sorgfältig festgelegt werden, da die Last im Allgemeinen immer ein wenig ungleich verteilt ist und dabei schnell schwankt. Außerdem beschränken sich die Kosten der Überführung eines Threads nicht nur auf die benötigte Zeit des Datentransfers. Besonders eventuell auftretende Cache- und TLB-Misses auf dem neuen Kern und die Verzögerung beim Nachladen der Daten aus einem Speicher tieferer Hierarchieebene schlagen sich negativ auf die Gesamtleistung nieder. Um Cache-Misses zu vermeiden, werden sogenannte Prozessor-Affinitys (engl.: affinity = Vorliebe, Zugehörigkeit) verwendet [TMu03]. Threads werden dabei bestimmten Kernen zugeteilt, die sie bei harten Affinitäten nicht mehr, oder bei weichen Affinitäten nur im Extremfall verlassen. Load-Migration kann den Affinitäten allerdings entgegenwirken, was noch ein Grund ist, die Migrationsschwelle mit Vorsicht festzulegen. Der Ablauf einer Thread-Migration hat wesentlichen Einfluss auf die benötigte Zeit und damit auf die Gesamtleistung. Hierbei müssen einige Bedingungen eingehalten werden, um eine exaktes Abbild zu erzeugen. Zuerst muss der Speicherinhalt übertragen werden, was die meiste Zeit beansprucht [DG97], und im Folgenden auch der Zustand des Threads. Gleichzeitig müssen seine Kommunikationsbeziehungen aufrechterhalten werden. Nachfolgend werden drei allgemeine Migrationsabläufe vorgeschlagen, die jeweils mit der Migrationsentscheidung beginnen [Web00]. Intuitiv: Es wird ein günstiger Zeitpunkt für das Einfrieren des Threads abgewartet. Anschließend wird der Threadspeicher und der Threadstatus kopiert. Bevor der originale Thread entfernt wird, werden alle bis dato gesammelten Nachrichten zum Duplikat übertragen und die Kommunikationskanäle umgeleitet. Erst dann kann die Kopie aktiviert werden. Pre-Copying: Im Vergleich zur intuitiven Methode gibt es nur einen Unterschied. Das Ziel ist hierbei die Verkürzung der Totzeit. Noch vor dem Einfrieren des Threads wird sein Speicherinhalt kopiert, weshalb bearbeitete Seiten zwar nach dem Anhalten noch aktualisiert werden müssen. Dies kostet alles in allem aber weniger Zeit als im gestoppten Zustand. Post-Copying/Copy-on-Reference: Zunächst werden alle Speicherseitenzugriffe gesperrt. Beim nächsten auftretenden Seitenfehler wird der Thread gestoppt und diese Seite samt Threadstatus zum Zielknoten kopiert. Dort wird der Thread sofort aktiviert. Bei weiteren Seitenfehlern werden diese vom Quellknoten nachgeladen, sodass ein minimaler neuer Threadspeicher entsteht. 6

19 Grundlagen 2.2 Überblick: Thread-Scheduling Terminologie und Charakteristika Unter Scheduling (engl.: schedule = Ablaufplan; to schedule = einteilen) wird das Erstellen eines Ablaufplans verstanden, der eine begrenzte Ressource zuweist. Im Falle des Thread-Scheduling (oft auch Prozess-Scheduling) wird die Rechenzeit eines Prozessors unter mehreren Programm-Threads verteilt. Der Scheduler ist allerdings nur für die Auswahl des zu bearbeitenden Threads zuständig. Die Umschaltung zwischen dem laufenden und dem vom Scheduler ausgewählten Thread übernimmt der Dispatcher. Threads können auf drei zeitliche Arten geplant werden. Die langfristige Planung entscheidet, ob ein Thread überhaupt in den Pool der auszuführenden Threads aufgenommen wird. Mittelfristig wird entschieden, ob diese Threads in den Hauptspeicher geschrieben werden, und die kurzfristige Planung verteilt die Rechenzeit des Prozessors [Ola12]. Für diese Arbeit an SHAP ist nur das kurzfristige Scheduling zu betrachten, da die oberste Stufe der Speicherhierarchie der Hauptspeicher ist und somit keine Daten je ausgelagert sind. Man unterscheidet dabei im Wesentlichen sechs Kriterien, die gute Thread-Scheduling-Algorithmen anvisieren [Bra03]. Es sind Fairness: Dabei soll kein Thread gegenüber anderen Threads unverhältnismäßig lange warten. Eine einheitliche, messbare Definition des schwammigen Fairness- Begriffs wird allerdings nicht vorgeschlagen und somit sind auch Vergleiche verschiedener Scheduling Strategien und Algorithmen dahingehend nur bedingt möglich. Zumeist bedeutet Fairness die im Mittel gleiche Prozessorzeit pro Thread. In Anbetracht deutlich unterschiedlicher Mengen an Arbeit, die ein Thread bearbeiten soll, und möglicher zusätzlicher Prioritäten, überzeugt diese Interpretation von Fairness allerdings nicht, um komplexe Verhältnisse gerecht zu verwalten. Effizienz: Jeder Prozessor ist stets vollständig ausgelastet. Im Kontext realer Programme und damit der Nutzung der Peripherie im PC bzw. auf dem FPGA sollten weitere Ressourcen betrachtet werden. Die ineffiziente Zuteilung der Peripherie kann dazu führen, dass wartende Threads die Ausführung anderer Threads durch die Reservierung anderer Ressourcen als die CPU blockieren und somit der Prozessor nicht ausgelastet wird. Antwortzeit: Die mittlere Wartezeit für Benutzer oder andere Systeme soll minimiert werden. Hintergrundthreads, die keine Interaktion erfordern, werden dabei benachteiligt. 7

20 Grundlagen Wartezeit: Ziel ist die Minimierung der Zeit, in der ein Thread in Warteschlangen verbringt, sei es im ausführungsbereiten oder blockierten Zustand [Ola12]. Scheduling-Strategien können im Wesentlichen nur die Wartezeit direkt beeinflussen [Bra03]. Verweil-/Ausführungs-/Durchlaufzeit: Wartezeit + Bearbeitungszeit (Bedienzeit). Die Zeit, bis ein gestarteter Thread abgearbeitet ist, soll minimiert werden. Durchsatz: Die Anzahl abgearbeiteter Threads pro Zeiteinheit soll maximiert werden. Allerdings muss in Anbetracht der häufig anzutreffenden Theorie einer konstanten Bedienzeit die Frage gestellt werden, ob und wie sich die Maximierung des Durchsatzes, die Minimierung der Verweilzeit und die Minimierung der Wartezeit unterscheiden und wie sinnvoll diese Abgrenzung ist, selbst wenn die Bedienzeit leicht schwanken würde. Als weiteres Kriterium kann der Overhead, also die Zeit für die Scheduling-Entscheidung und den Kontextwechsel, angesehen werden. Denn je nach Implementierung ist der Scheduler dabei selbst als Thread realisiert und verbraucht entsprechend Rechenzeit [Esp11]. Alle Kriterien lassen sich in zwei Dimensionen einteilen. Erstens benutzer- oder systemorientiert und zweitens leistungs- oder qualitätsorientiert [Kai10]. Für den Entwurf eines Thread-Schedulers sind diese Kategorien allerdings zweitrangig. Die Auswahl einer Scheduling-Strategie kommt einer Gratwanderung gleich [Ola12] und ist stets ein Kompromiss [Hel]. Da es nicht möglich ist, einen idealen Scheduler zu erstellen, der nach allen Kriterien optimiert [Bra03], muss für den speziellen Algorithmus der Anwendungsfall die zu optimierenden Kriterien bestimmen. Nach Tanenbaum werden drei Einsatzgebiete gegeneinander abgegrenzt: der Echtzeitbetrieb, Interaktive Systeme (Dialogsysteme) und Stapel- bzw. Batchverarbeitung [Tan02]. Die daraus folgenden Ziele sind Allgemein: Fairness, Einhaltung von Systemregeln, Balance (gleichmäßige Auslastung aller Systemkomponenten) Echtzeit: Vorhersagbarkeit, Einhaltung von Deadlines Interaktive Systeme: Antwortzeit, Proportionalität (Erfüllung der Erwartung des Benutzers) Stapelverarbeitung: Effizienz, Durchsatz, Verweilzeit Ähnlich den verwendeten Systemen können auch die auf ihnen laufenden Threads charakterisiert werden. Threads bestehen typischerweise aus CPU-intensiven (CPUburst) und I/O-intensiven Phasen (I/O-burst). Dabei wird traditionell zwischen rechenintensiven Jobs (CPU-bound), die besonders den Prozessor belasten, und I/O-intensiven 8

21 Grundlagen Jobs (I/O-bound) unterschieden [New]. Ähnliche Threads behindern sich dabei gegenseitig, während Threads verschiedener Art das Gesamtsystem besser auslasten können. Ein Scheduler hat noch weitere Eigenschaften. Zunächst ist er entweder unterbrechend (präemptiv), dann wird er dem aktuell laufenden Thread den Prozessor nach einer bestimmten Zeit wegnehmen, um andere Threads arbeiten zu lassen, oder er ist kooperativ (bzw. nicht präemptiv). Dabei laufen Threads bis sie beendet sind, blockieren oder von selbst ihre Rechenzeit abgeben in Java mittels der Methode yield(). Als nächstes ist ein Scheduling-Algorithmus deterministisch, wenn die Informationsbasis, über welche entschieden wird, feststeht und damit eine Optimierungslösung berechenbar ist. Propabilistische Scheduler arbeiten mit Wahrscheinlichkeiten. Informationen über Anzahl, Ankunftszeit, I/O-Verhalten etc. sind nicht oder nur durch ihre Wahrscheinlichkeitsverteilung bekannt. Hier werden Heuristiken verwendet, um den Overhead klein zu halten [Kre04]. Weiterhin werden Scheduler danach unterteilt, zu welcher Laufzeit sie entscheiden [Sta09]. Offline-Algorithmen planen alle Aufgaben für die gesamte Lebenszeit vor dem Start des Systems. Daher benötigen sie sämtliche Informationen im Voraus, sind also deterministisch. Vorteile dieser Variante sind die Vorhersagbarkeit und der geringe Overhead, denn der Dispatcher braucht lediglich das nächste Element einer Tabelle oder Liste laden. Dagegen muss im Vorfeld ein sehr hoher Aufwand betrieben werden. Auch sind offline-scheduler unflexibel und in den allermeisten Systemen nicht anwendbar [Foh05]. Verbreiteter sind daher online-scheduler. Sie sind im Gegensatz zu zeitgetriggerten offline-varianten meist ereignisgetriggert. Informationen können dabei zur Laufzeit bekannt werden, erfordern dann aber großen Verarbeitungsoverhead. Deswegen sind die meisten online-scheduler propabilistisch und benutzen simple Heuristiken. Wichtig in Bezug auf Scheduling allgemein ist die Frage, wann der Algorithmus bzw. Dispatcher aktiviert wird. Gehen wir von online-scheduling aus, so ist die Antwort darauf eng damit verbunden, ob der Scheduler unterbrechend ist oder nicht [Hel06]. Im nicht präemptiven Fall geschieht die Aktivierung ereignisgetriggert, sobald der aktuell laufende Thread blockiert, terminiert oder sich freiwillig schlafen legt. In präemptiven Systemen können Threads verdrängt werden. Dies passiert, wenn beispielsweise seine Zeitscheibe abgelaufen ist, sich Prioritäten ändern, beim Auftreten von Interrupts oder wenn favorisierte Threads in den Zustand ready übergehen. Alternativ zu der Unterteilung nach Unterbrechbarkeit kann auch zwischen Zeit- und Ereignissteuerung unterschieden werden [Kai10]. 9

22 Grundlagen Klassische Scheduling-Strategien Es existieren einige bekannte und weit verbreitete Strategien, die noch für Einkernprozessoren entwickelt wurden und dort die meisten Anwendungsfälle [Hel] bedienen. Auch die aktuelle Version von SHAP implementiert mit Round-Robin [Zab11] eine dieser klassischen Strategien. Die meisten modernen, komplexeren Algorithmen beruhen in irgendeiner Art auf ihnen, weshalb sie im Folgenden vorgestellt werden sollen. Die einfachste aller Strategien ist First In First Out (FIFO), auch als First Come First Serve (FCFS) bekannt. Alle Threads werden nach ihrer Ankunftszeit bzw. Wartezeit abgearbeitet und dabei nicht unterbrochen, sodass der Overhead minimiert wird. Typischerweise wird dies durch eine Warteschlange realisiert. FIFO wird häufig nur in stapelverarbeitenden Systemen verwendet, da hohe Antwortzeiten und geringer I/O-Durchsatz auftreten können, wenn Threads mit kurzen CPU-Bursts auf solche mit langen Bursts folgen. Dieses, als Konvoi-Effekt bekannte Verhalten, ist für interaktive und Echtzeit-Systeme ineffizient. Effizient kann das Verfahren sein, wenn vor allem langlebige Threads kooperativ programmiert werden, sich also freiwillig schlafen legen. Davon kann im Allgemeinen aber nicht ausgegangen werden. Ein vorhersagebasiertes Verfahren, das die Antwortzeit minimiert, ist Shortest Job First (SJF), auch als Shortest Process First (SPN) oder Shortest Processing Time (SPT) bekannt. Diese Strategie ist nicht unterbrechend. Wie ihr Name sagt, wird der kürzeste Thread ausgeführt, der bereit ist. Dazu müssen die Laufzeiten der Threads allerdings bekannt sein, was nur selten der Fall ist. Teilweise wird versucht über das vergangene CPU-Burst-Verhalten zu approximieren [Esp11]. Wird dieser Algorithmus unterbrechend implementiert, so wird er als Shortest Remaining Time First (SRTF) bezeichnet und ist durch das ständige Abgleichen recht aufwendig. Das große Defizit dieser Verfahren ist die Benachteiligung langer Threads, die sogar deren Verhungern möglich macht. Highest Response Ratio Next (HRRN) beruht ebenfalls auf Vorhersage, lässt im Gegensatz zu den zwei oben genannten Strategien gleichwohl langlebige Threads nicht verhungern. Durch sogenanntes Aging wird die Priorität eines Threads mit der Zeit erhöht. Dazu wird lediglich das Verhältnis von Wartezeit zu Bedienzeit gebildet die sogenannte response ratio. HRRN ist folglich nicht präemptiv und sollte bei kooperativ programmierter Software verwendet werden. Da die response ratio kurzer Threads mit der Zeit stärker wächst, werden diese immer noch bevorzugt. Der älteste, (meist verwendete [Esp11],) einfachste und fairste Algorithmus [Irr12] ist das zeitscheibenbasierte Round-Robin (RR). Dabei werden alle Threads in einer Warteschlange gehalten, aus der je der erste Thread für eine 10

Systeme 1. Kapitel 5. Scheduling

Systeme 1. Kapitel 5. Scheduling Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf

Mehr

CPU-Scheduling - Grundkonzepte

CPU-Scheduling - Grundkonzepte CPU-Scheduling - Grundkonzepte Sommersemester 2015 Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze 4. Interruptverarbeitung in Betriebssystemen

Mehr

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 7 Scheduling Maren Bennewitz Version 23.01.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 Scheduling Prozess-Ablaufplanung Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012 Scheduler Der Scheduler ist ein besonders wichtiges Programmteil jedes Betriebssystems. Prozesse P 1 P

Mehr

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse) 5 CPU-Scheduling Im folgenden wird von Threads gesprochen. Bei Systemen, die keine Threads unterstützen, ist der einzige "Thread" eines Prozesses gemeint. Früher wurde dieser Thread synonym mit dem Begriff

Mehr

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Betriebssysteme I WS 2013/2014 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 16. Januar 2014 Betriebssysteme / verteilte Systeme Betriebssysteme

Mehr

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Sven Kerschbaum 1. Einführung Bei einem eingebetteten

Mehr

Betriebssysteme (BTS)

Betriebssysteme (BTS) 9.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 10.5.2007 Exkursion Die Exkursion wird am Freitag, den 18.5.2007

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

5) Realzeitscheduling

5) Realzeitscheduling Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1 Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung

Mehr

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Echtzeitsysteme Eine verspätete Antwort ist

Mehr

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozessverwaltung Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet. Prozesse sind Abfolgen von Aktionen, die unter Kontrolle

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

8. Vorlesung Betriebssysteme

8. Vorlesung Betriebssysteme Dr. Christian Baun 8. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/69 8. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian

Mehr

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen - 54 - 5.1.1 CPU Burst / I/O Burst

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen - 54 - 5.1.1 CPU Burst / I/O Burst FH Regensburg BT/SS04 5 CPU Scheduling 5.1 Grundlagen 5.1.1 CPU Burst / I/O Burst Beobachtung: Programme rechnen typischerweise etwas, dann tätigen sie Ein/Ausgabe: CPU-Burst: das Programm rechnet eine

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS geschrieben von Oliver Botschkowski 1 Offene Systeme und deren Schnittstelle für die Elektronik im Kraftfahrzeug 1 Oliver Botschkowski - OSEK-OS

Mehr

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene Andi Drebes Fachbereich Informatik Universität Hamburg Gliederung Notwendigkeit des Schedulings Einführung: Begriff des Multitaskings

Mehr

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1

B.5 Prozessverwaltung B.5. Prozessverwaltung. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozessverwaltung Prozessverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Prozesse Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) ) von einem Rechner abgearbeitet.

Mehr

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling 1 termini technici Der englische Fachausdruck scheduler wurde eingedeutscht : Der Scheduler Für scheduling ist im Deutschen auch zu verwenden: Ablaufplanung

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4.

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4. Gliederung 1. Einführung und Übersicht 2. Prozesse und Threads 3. Interrupts 4. 5. Synchronisation 6. Interprozesskommunikation 7. Speicherverwaltung Cl. Schnörr / HM 1 Gliederung Cl. Schnörr / HM 2 Was

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Vorbereitung zur Prüfung Echtzeitbetriebssysteme Vorbereitung zur Prüfung Echtzeitbetriebssysteme Zugelassene Hilfsmittel: Taschenrechner Bitte verwenden Sie keinen roten Farbstift! 1. Echtzeitbetriebssysteme - Allgemein (15 Punkte) 1.1. Warum setzen

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

TIMI: Technische Informatik für Medieninformatiker

TIMI: Technische Informatik für Medieninformatiker TIMI: Technische Informatik für Medieninformatiker Bachelor-Studiengang Digitale Medien Medieninformatik SS 2004 Niels Pollem Arbeitsgruppe Rechnernetze (Prof. Dr.-Ing. Ute Bormann) Scheduling:

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr

BP 2 Prozessorvergabe - Multiprozessoren: Kern-Fäden. besten, wenn der Zusatzaufwand für Kontextumschaltungen gering ist.

BP 2 Prozessorvergabe - Multiprozessoren: Kern-Fäden. besten, wenn der Zusatzaufwand für Kontextumschaltungen gering ist. BP 2 Prozessorvergabe - Multiprozessoren: Kern-Fäden 5.2 Prozessorvergabe für Kern-Fäden Scheduler-Struktur Struktur der Warteschlangen Parallele Bearbeitung von Warteschlangen Strategien Statische oder

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

Mehr

Übung zu Grundlagen der Betriebssysteme. 8. Übung 04.12.2012

Übung zu Grundlagen der Betriebssysteme. 8. Übung 04.12.2012 Übung zu Grundlagen der Betriebssysteme 8. Übung 04.12.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

OSEKtime - Time-Triggered OSEK/OS

OSEKtime - Time-Triggered OSEK/OS OSEKtime - Time-Triggered OSEK/OS Gregor Kaleta gregor.kaleta@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung OSEKtime Task-Zustandsmodell, Scheduling-Verfahren Interrupt-Verarbeitung

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

Mehr

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Betriebssysteme. CPU-Scheduling - Fallbeispiele. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1. CPU-Scheduling - Fallbeispiele Sommersemester 2014 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung

Mehr

TECHNISCHE PRODUKTINFORMATION CARUSO

TECHNISCHE PRODUKTINFORMATION CARUSO 1111 TECHNISCHE PRODUKTINFORMATION CARUSO TECHNISCHE PRODUKTINFORMATION Seite 0/7 Inhalt 1 Systemdefinition............2 2 Technische Details für den Betrieb von CARUSO......2 2.1 Webserver... 2 2.2 Java

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 3: Input / Output Hinweis: Weitere Aufgaben zu diesem Thema finden sie in den Begleitbüchern zur Vorlesung. Aufgabe

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Zeit- und ereignisgesteuerte Echtzeitsysteme

Zeit- und ereignisgesteuerte Echtzeitsysteme Zeit- und ereignisgesteuerte Echtzeitsysteme Stephan Braun Stephan.Braun.Hagen@t-online.de PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Echtzeitsystemmodell Einführung Ereignis- und zeitgesteuerte

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Redwood Cronacle und REALTECH theguard! Integration

Redwood Cronacle und REALTECH theguard! Integration Redwood Cronacle und REALTECH theguard! Integration Einleitung Redwood Software und REALTECH haben gemeinsam eine Lösung entwickelt, die die Systemverfügbarkeit von SAP und mysap Systemen signifikant erhöht.

Mehr

Quantitative Methoden. Betriebssysteme

Quantitative Methoden. Betriebssysteme Quantitative Methoden Betriebssysteme Problem und Gegenstand Problem Erfüllen von QoS-Anforderungen mit zeit- bzw. größenbeschränkten Ressourcen Gegenstand Scheduling basierend auf deterministischen Modellen

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

(Prüfungs-)Aufgaben zum Thema Scheduling (Prüfungs-)Aufgaben zum Thema Scheduling 1) Geben Sie die beiden wichtigsten Kriterien bei der Wahl der Größe des Quantums beim Round-Robin-Scheduling an. 2) In welchen Situationen und von welchen (Betriebssystem-)Routinen

Mehr

*DE102007042999A120090312*

*DE102007042999A120090312* *DE102007042999A120090312* (19) Bundesrepublik Deutschland Deutsches Patent- und Markenamt (10) DE 10 2007 042 999 A1 2009.03.12 (12) Offenlegungsschrift (21) Aktenzeichen: 10 2007 042 999.3 (22) Anmeldetag:

Mehr

Befragung und empirische Einschätzung der Praxisrelevanz

Befragung und empirische Einschätzung der Praxisrelevanz Befragung und empirische Einschätzung der Praxisrelevanz eines Vorgehensmodells zur Auswahl von CRM-Systemen D I P L O M A R B E I T zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP). Produktbeschreibung Februar 2014 RTX RTOS-Plattform Mit der RTX-Echtzeitsoftware von IntervalZero wird aus Microsoft Windows ein Echtzeitbetriebssystem (RTOS). RTX64 von IntervalZero unterstützt 64-Bit-Betriebssysteme

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Hybride Apps DPR und Android auf dem Xilinx ZYNQ. Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm

Hybride Apps DPR und Android auf dem Xilinx ZYNQ. Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm Hybride Apps DPR und Android auf dem Xilinx ZYNQ Endric Schubert, Missing Link Electronics Fabian Zentner, Univ. Ulm Konvergenz der Rechenplattformen Processing System Memory Interfaces 7 Series Programmable

Mehr

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen?

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen? Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen? Umgebung Getestet wurde auf einem Linux-System mit voller invis-server Installation, auf dem eine virtuelle Maschine

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Anleitung zum Applet Schiefer Wurf

Anleitung zum Applet Schiefer Wurf Anleitung zum Applet: Schiefer Wurf 1 Anleitung zum Applet Schiefer Wurf Bearbeitung von: Mathias Hartner SS 2009 Studiengang: Elektronik und Informationstechnik Betreuung durch: Prof. Dr. Wilhelm Kleppmann

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

CPU (Prozessor), Festplatte, Grafikkarte, Soundkarte, diverse Schnittstelle (USB, COM, SERIELL), Arbeitsspeicher (RAM), ROM, CD/DVD-Laufwerk

CPU (Prozessor), Festplatte, Grafikkarte, Soundkarte, diverse Schnittstelle (USB, COM, SERIELL), Arbeitsspeicher (RAM), ROM, CD/DVD-Laufwerk FRAGEKATALOG Informatik BAKIP HARDWARE Frage 01: Im inneren eines Computergehäuses befindet sich unter anderem das Mainboard. Welche Komponenten sind an diesem Mutterbrett angeschlossen bzw. verbaut? Nenne

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

dsmisi Storage Lars Henningsen General Storage

dsmisi Storage Lars Henningsen General Storage dsmisi Storage dsmisi MAGS Lars Henningsen General Storage dsmisi Storage Netzwerk Zugang C Zugang B Zugang A Scale-Out File System dsmisi Storage Netzwerk Zugang C Zugang B Zugang A benötigt NFS oder

Mehr

SmartExporter 2013 R1

SmartExporter 2013 R1 Die aktuelle Version wartet mit zahlreichen neuen Features und umfangreichen Erweiterungen auf. So können mit SmartExporter 2013 R1 nun auch archivierte Daten extrahiert und das Herunterladen der Daten

Mehr

2 Echtzeitbetriebssysteme

2 Echtzeitbetriebssysteme 35 2 Echtzeitbetriebssysteme In den letzten Jahren hat sich die Automobilindustrie zu einem der wesentlichen Anwender von Echtzeitbetriebssystemen für eingebettete Systeme entwickelt. Relativ zeitig erkannten

Mehr

Scheduling-Verfahren für Mehrbenutzer-Systeme. Klaus Kusche, Juni 2012

Scheduling-Verfahren für Mehrbenutzer-Systeme. Klaus Kusche, Juni 2012 Scheduling-Verfahren für Mehrbenutzer-Systeme Klaus Kusche, Juni 2012 Inhalt Einleitung & Begriffe Ziele & Voraussetzungen Das Round-Robin-Verfahren...... und seine Probleme Die Scheduler in Windows und

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

Mehr

Reaktive Systeme und synchrones Paradigma

Reaktive Systeme und synchrones Paradigma Sascha Kretzschmann Freie Universität Berlin Reaktive Systeme und synchrones Paradigma Einführung in das Seminar über synchrone Programmiersprachen Worum geht es? INHALT 2 Inhalt 1. Einleitung - Wo befinden

Mehr

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit

Dipl.-Inf. J. Richling Wintersemester 2003/2004. Weiche Echtzeit Dipl.-Inf. J. Richling Wintersemester 2003/2004 Weiche Echtzeit Wiederholung - Resultat/Wert-Funktion "harte" Echtzeit Wert Zeit Wert Zeit Wert Deadline Zeit "weiche" Echtzeit Wert Deadline Zeit Deadline

Mehr

Prozesseinplanung. Kurzfristige Einplanung. Mittelfristige Einplanung. Abfertigungszustände

Prozesseinplanung. Kurzfristige Einplanung. Mittelfristige Einplanung. Abfertigungszustände Prozesseinplanung Kurzfristige Einplanung Systemaufrufe Programmverwaltung Zugriffskontrolle Dateiverwaltung Ein /Auslagerung Vernetzung Ein /Ausgabe Fadenverwaltung Koordination Prozesseinplanung Prozessabfertigung

Mehr

Hardware- und Software-Anforderungen IBeeS.ERP

Hardware- und Software-Anforderungen IBeeS.ERP Hardware- und Software-Anforderungen IBeeS.ERP IBeeS GmbH Stand 08.2015 www.ibees.de Seite 1 von 8 Inhalt 1 Hardware-Anforderungen für eine IBeeS.ERP - Applikation... 3 1.1 Server... 3 1.1.1 Allgemeines

Mehr

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise A-Plan 12.0 Zeiterfassung 2.0 Ausgabe 1.1 Copyright Copyright 1996-2014 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf mechanischem

Mehr

VMware. Rainer Sennwitz.

VMware. Rainer Sennwitz. <Rainer.Sennwitz@andariel.informatik.uni-erlangen.de> VMware Rainer Sennwitz Lehrstuhl für Informatik IV Friedrich-Alexander-Universität Erlangen-Nürnberg 4. Juli 2007 Rainer Sennwitz VMware Inhalt Inhalt

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

RAC auf Sun Cluster 3.0

RAC auf Sun Cluster 3.0 RAC auf Sun Cluster 3.0 Schlüsselworte RAC, OPS, Sun Cluster, Performance, Availability Zusammenfassung Oracle hat mit dem Real Application Cluster (RAC) aus einer Hochverfügbarkeitslösung eine Höchstverfügbarkeitslösung

Mehr

Einblick in die VMware Infrastruktur

Einblick in die VMware Infrastruktur Einblick in die VMware Infrastruktur Rainer Sennwitz Lehrstuhl für Informatik IV Friedrich-Alexander-Universität Erlangen-Nürnberg 4. Juli 2007 Rainer

Mehr

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010 Symmetric Multiprocessing mit einer FPGA basierten MPSoC Plattform Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010 Inhalt Motivation Vorarbeiten Ziele für die Masterarbeit Vorgehensweise

Mehr

sedex-client Varianten für den Betrieb in einer hoch verfügbaren

sedex-client Varianten für den Betrieb in einer hoch verfügbaren Département fédéral de l'intérieur DFI Office fédéral de la statistique OFS Division Registres Team sedex 29.07.2014, version 1.0 sedex-client Varianten für den Betrieb in einer hoch verfügbaren Umgebung

Mehr

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests Masterarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Masterstudiengang Wirtschaftswissenschaft

Mehr

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

Verteilte Systeme. Geteilte Last ist halbe Last. 7. Lastverteilung

Verteilte Systeme. Geteilte Last ist halbe Last. 7. Lastverteilung Verteilte Systeme 7. Lastverteilung Geteilte Last ist halbe Last Potential an Parallelarbeit im Rechnernetz optimal ausnutzen Kreative Lastverteilung Verteilte Programmierung Mechanische Lastverteilung

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz Hochverfügbar und Skalierung mit und ohne RAC Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC Alexander Scholz Copyright its-people Alexander Scholz 1 Einleitung Hochverfügbarkeit

Mehr

Lastenheft. Zielbestimmungen. Produkteinsatz. swp11-4. 3. Mai 2011. Franz Teichmann, Robert Röÿling swp11-4 3. Mai 2011

Lastenheft. Zielbestimmungen. Produkteinsatz. swp11-4. 3. Mai 2011. Franz Teichmann, Robert Röÿling swp11-4 3. Mai 2011 Lastenheft swp11-4 3. Mai 2011 Zielbestimmungen In der heutigen Geschäftswelt stehen mittelständische Unternehmen vor dem Dilemma, einerseits interne und externe Kommunikation in angemessener Weise gewährleisten

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO

High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO High Performance Computing Cluster-Lösung mit MOSIX im Einsatz bei VA-TECH HYDRO Anastasios Stomas SFI Technology Services AG 12. März 2003 anastasios.stomas@sfi.ch Seite 1 Hintergrund INHALT Cluster-

Mehr

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Martin Däumler Matthias Werner Lehrstuhl Betriebssysteme Fakultät für Informatik

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Proseminar Technische Informatik A survey of virtualization technologies

Proseminar Technische Informatik A survey of virtualization technologies Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.

Mehr