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

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

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

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

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

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

Round-Robin Scheduling (RR)

Round-Robin Scheduling (RR) RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange

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

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads Prozesse und Prozessmanagement des BS 1 Unterschied Prozess, Threads 1.1 Prozess Bei jedem Programm muss gespeichert werden, welche Betriebsmittel (Speicherplatz, CPU- Zeit, CPU-Inhalt,...) es benötigt.

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

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

Betriebssysteme und Systemsoftware

Betriebssysteme und Systemsoftware Merlin Denker Version 2 1 / 18 Vorwort Dieses Dokument soll einen Überblick über verschiedene Strategien aus der an der RWTH Aachen gehaltenen Vorlesung bieten. Die vorliegende Version dieses Dokuments

Mehr

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404 Betriebssysteme I WS 2015/2016 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 17. Dezember 2015 Betriebssysteme / verteilte Systeme

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

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

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Der Scheduler von Windows Konzepte und Strategien

Der Scheduler von Windows Konzepte und Strategien Gliederung Der Scheduler von Windows Konzepte und Strategien Daniel Lohmann 1 Grundbegriffe 2 Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen

Mehr

3. Scheduler und Schedulingstrategien

3. Scheduler und Schedulingstrategien 5 3 Scheduler und Schedulingstrategien Unter Scheduling versteht man einen Ablaufplan, einen Fahrplan oder eine Auswahlstrategie, nach der ein knappes Betriebsmittel im Wettbewerb befindlichen Prozessen

Mehr

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

Mehr

MMU Virtualisierung. ISE Seminar 2012. Thomas Schaefer 1

MMU Virtualisierung. ISE Seminar 2012. Thomas Schaefer 1 MMU Virtualisierung ISE Seminar 2012 Thomas Schaefer 1 Inhalt Allgemein MMU: Virtualisiert Probleme Problem 1: Ballooning Problem 2: Memory-Sharing Kurz: Problem 3 & 4 Translation Lookside Buffer TLB in

Mehr

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

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

Mehr

Verteilte Echtzeit-Systeme

Verteilte Echtzeit-Systeme - Verteilte Echtzeit-Systeme Hans-Albrecht Schindler Wintersemester 2015/16 Teil B: Echtzeit-Betriebssysteme Abschnitt 9: Scheduling gemischter Prozessmengen CSI Technische Universität Ilmenau www.tu-ilmenau.de

Mehr

Domänenanalyse Threadverwaltung/Scheduling

Domänenanalyse Threadverwaltung/Scheduling Domänenanalyse Threadverwaltung/Scheduling Johannes Handl, Marc Rößler, Christian Strengert 15. Mai 2003 Domänenanalyse Threadverwaltung/Scheduling [1] Domänendefinition Die Erzeugung, Verwaltung, Umschaltung/Wechsel,

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

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P SoSe 2013 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 4 13.05.2013 bis 17.05.2013 Aufgabe 1: Multi-Feedback-Scheduling 0 P 1. Beschreiben Sie kurz

Mehr

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung 1.5 Threaded Server Server als ein Prozess mit mehreren Threads Threads Thread als Aktivitätsträger virtueller Prozessor eigener Programmzähler eigener Stackbereich eingebettet in den Kontext eines Prozesses

Mehr

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016 Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i

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

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme Wilhelm Haas Wilhelm.Haas@informatik.stud.uni-erlangen.de Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 4

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

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

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

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling Wintersemester 06/07 6. Kapitel Ressource Prozessor: Scheduling Prof. Matthias Werner 6 Professur Betriebssysteme Einführung Bisher: Wenn ein Prozesses den Prozessor aufgibt (Zustand laufend verlässt),

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

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

Hausübung 2. Konzepte und Methoden der Systemsoftware. Aufgabe 1: Einfache Schedulingstrategien. SoSe bis

Hausübung 2. Konzepte und Methoden der Systemsoftware. Aufgabe 1: Einfache Schedulingstrategien. SoSe bis Universität Paderborn Fachgebiet Rechnernetze SoSe 2014 Konzepte und Methoden der Systemsoftware Hausübung 2 2014-05-12 bis 2014-05-23 Hausübungsabgabe: Format: Lösungen in schriftlicher oder gedruckter

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

Hausübung 2(Musterlösung)

Hausübung 2(Musterlösung) SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Hausübung 2(Musterlösung) 2014-05-12 bis 2014-05-23 Hausübungsabgabe: Format: Lösungen in schriftlicher

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

Dokumentation Schedulingverfahren

Dokumentation Schedulingverfahren Dokumentation Schedulingverfahren von Norbert Galuschek Gordian Maugg Alexander Hahn Rebekka Weissinger June 23, 2011 1 Contents 1 Aufgabe 3 2 Vorgehensweise 4 2.1 Warum Android.......................

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

VORSTELLUNG DER DIPLOMARBEIT

VORSTELLUNG DER DIPLOMARBEIT 1 VORSTELLUNG DER DIPLOMARBEIT Thomas Werner Inhaltsverzeichnis 2 Thema Aufgabenstellung Anwendungsdebugging Threads Remote Debugging Implementierung Ausblick Quellen 3 Thema Untersuchung von Funktionsabläufen

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

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

Betriebssysteme Wintersemester 2005/06

Betriebssysteme Wintersemester 2005/06 Betriebssysteme Wintersemester 2005/06 Vorlesung 4 CPU Scheduling Dr. Oliver Waldhorst Rechnernetze und verteilte Systeme Universität Leipzig http://www.informatik.uni-leipzig.de/rnvs Fahrplan Nr. 1 2

Mehr

Echtzeitscheduling (1)

Echtzeitscheduling (1) Echtzeitscheduling (1) Scheduling in Betriebssystemen Ressourcenausteilung (CPU, Speicher, Kommunikation) Faire Ressourcenvergabe, insbesondere CPU Hohe Interaktivität / kurze Reaktionszeit für interaktive

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Lösungsskizzen zur Abschlussklausur Betriebssysteme Lösungsskizzen zur Abschlussklausur Betriebssysteme 24. Januar 2013 Name: Vorname: Matrikelnummer: Studiengang: Hinweise: Tragen Sie zuerst auf allen Blättern (einschlieÿlich des Deckblattes) Ihren Namen,

Mehr

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:

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

(b) Worin besteht der Unterschied zwischen online und offline Scheduling?

(b) Worin besteht der Unterschied zwischen online und offline Scheduling? Universität Paderborn Fachgebiet Rechnernetze SoSe 2013 Konzepte und Methoden der Systemsoftware Präsenzübung 3 2013-05-06 bis 2013-05-10 Aufgabe 1: Scheduling - Grundbegriffe Bekanntlich gibt es für das

Mehr

Threads and Scheduling

Threads and Scheduling Vorlesung Betriebssysteme WS 2010, fbi.h-da.de Threads and Scheduling Jürgen Saala 1. Threads 2. Scheduling 2 1. Threads 3 Prozesse mit je 1 Adressraum 1 Ausführungsfaden d.h. Unabhängiger Adressraum mit

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

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

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

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

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

Vortrag zur Diplomarbeit

Vortrag zur Diplomarbeit Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vortrag zur Diplomarbeit Entwurf und Implementierung eines zuverlässigen verbindungsorientierten Transportprotokolls für

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

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

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

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

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

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

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

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung

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

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

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

Die DeskCenter Management Suite veröffentlicht neue Version 8.1

Die DeskCenter Management Suite veröffentlicht neue Version 8.1 Die DeskCenter Management Suite veröffentlicht neue Version 8.1 Neues im Basis Modul Benutzerdefinierte Felder Die DeskCenter Management Suite erlaubt nun das Erstellen von selbst definierten Eingabefeldern.

Mehr

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 374

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 374 DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 374 Eignung von Verfahren der Mustererkennung im Process Mining Sabrina Kohne

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Scheduling Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/

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

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) 1 Prozesse Bei Betriebssystemen stoßen wir des öfteren auf den Begriff Prozess als wahrscheinlich am häufigsten verwendeter und am unklarsten

Mehr

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme R. Merker, Technische Universität Dresden, Fakultät ET und IT J. Kelber, Fachhochschule Schmalkalden, ET Gliederung

Mehr

Betriebssysteme. Teil 13: Scheduling

Betriebssysteme. Teil 13: Scheduling Betriebssysteme Teil 13: Scheduling Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 15.01.16 1 Literatur [13-1] Quade, Jürgen; Mächtel, Michael: Moderne Realzeitsysteme kompakt. dpunkt, 2012 [13-2] Quade,

Mehr

Bachelorarbeit. Preisvergleichdienste auf Smartphones: Vergleich deutscher Anbieter und technische Trends. Vorgelegt von.

Bachelorarbeit. Preisvergleichdienste auf Smartphones: Vergleich deutscher Anbieter und technische Trends. Vorgelegt von. Leibniz Universität Hannover Fachbereich Wirtschaftswissenschaften Lehrstuhl Wirtschaftsinformatik Leiter: Prof. Dr. Breitner Bachelorarbeit Zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.)

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

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß? Kontrollflüsse Einführung 1 Motivation Kontrollfluß Anwendung logischer Adreßraum Kontrollfluß (Thread) = führt Instruktionen aus Was charakterisiert einen Kontrollfluß? Programmzähler Registerinhalte

Mehr

Real-Time Operating Systems Ein Überblick

Real-Time Operating Systems Ein Überblick Real-Time Operating Systems Ein Überblick Stefan Tittel Universität Dortmund Proseminar: Werkzeuge und Techniken zur Spezifikation, Simulation und Implementierung von eingebetteten Systemen, 2004 1 Einführung

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Makros für SolidWorks und Excel

Makros für SolidWorks und Excel Inhalt 1 Einleitung... 1 2 Viele SolidWorks-Dateien umbenennen und im Feature-Baum austauschen (SolidWorks + Excel)... 2 2.1 Anwendungsfälle... 2 2.2 Features... 2 2.3 Vorrausetzungen... 2 2.4 Ihr Gewinn...

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

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

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

TI Übung 5. Prozess-Scheduling. Andreas I. Schmied SS2005. Abteilung Verteilte Systeme Universität Ulm

TI Übung 5. Prozess-Scheduling. Andreas I. Schmied SS2005. Abteilung Verteilte Systeme Universität Ulm TI Übung 5 Prozess-Scheduling Andreas I. Schmied (schmied@inf...) Abteilung Verteilte Systeme Universität Ulm SS2005 Und nun... Wiederholung 1 Wiederholung Andreas I. Schmied (schmied@inf...) TI Übung

Mehr

Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden

Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden Sperrvermerk Risikomanagement für IT-Projekte: Vergleich von Risiken und Methoden Bachelorarbeit Zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr