Der upb.de Supercomputer: Single Site Scheduling

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Der upb.de Supercomputer: Single Site Scheduling"

Transkript

1 Der upb.de Supercomputer: Single Site Scheduling Bastian Cramer Universität Paderborn 1 Einleitung Jobs Jobzustände Weitere Eigenschaften von Jobs Process Control Block Jobverwaltung Jobumschaltung Threads Definition von Threads Scheduling Wann soll Scheduling stattfinden? Wo findet Scheduling statt? Funktionen von Scheduling Systemaufteilung Kategorien von Scheduling Algorithmen Preemption vs. Non-Preemption Scheduling in Batch Systemen First Come First Served Shortest Job First Shortest Remaining Time Next Least-Excpected-Work Highest Response Ratio Next Three Level Scheduling Round Robin Global Queueing Variable Partitioning Dynamic Partitioning / Two Level Scheduling

2 2 Bastian Cramer 5.11 Gang Scheduling First Fit Best Fit Backfilling Non Backfill Classical Backfill Preemptive Backfill Multiple Queue Backfilling Relaxed Backfill dynp Job Scheduler Tree Walking Algorithm Queueing vs. Planning Computing Center Software Eigenschaften des upb.de Supercomputers Literatur

3 Single Site Scheduling 3 1 Einleitung Scheduling bedeutet die Ablaufplanung von Aktivitäten und Programmen zu koordinieren. In einem System, in dem mehrere Jobs auf weniger Prozessoren verteilt werden müssen, ist es wichtig, eine Reihenfolge der Jobs festzulegen. Scheduling bedeutet somit die Zuordnung von Prozessen zu Prozessoren. In dieser Arbeit geht es hauptsächlich um das Single Site Scheduling. Single-Site ist dabei ein räumlicher Begriff und bedeutet einen räumlich eng zusammenhängenden Cluster. Ein Rechnerpoolraum wäre also als Single Site vorstellbar. Hierfür ist zunächst wichtig zu Abbildung 1. Sigle Site wissen, was eigentlich verteilt werden soll. Dies sind die Jobs oder auch Prozesse genannt. Danach wird auf Threads eingegangen, die quasi als nebenläufige Kontrollflüsse innerhalb eines Jobs angesehen werden können. 2 Jobs Ein Job [10] ist das Programm in Ausführung mit allen Registerinhalten, Variablen und Befehlszähler. Er besitzt eine Ein sowie Ausgabe und einen definierten Zustand. Auf Einzelprozessor Systemen besitzt zu jedem Zeitpunkt nur ein Prozess die CPU. Das Wechseln zwischen den einzelnen Prozessen ist nicht einheitlich und kann in der Regel auch nicht reproduziert werden. Im Job dürfen deshalb keine Annahmen über den zeitlichen Ablauf einprogrammiert werden. In einfachen Systemen liegen Jobs oft schon zu Systemstart vor, beispielsweise das

4 4 Bastian Cramer ABS im Auto. In größeren Systemen müssen Jobs dynamisch erzeugt und beendet werden können. Die Joberzeugung entsteht dabei im wesentlichen durch vier Mechanismen: 1. Bei Initialisierung des Systems, z.b. Hintergrundprozesse, die immer laufen wie ein Client, der regelmäßig einen Mail Server abfragt oder ein Webserver, der ständig bereit ist Webseiten auszuliefern. 2. Systemaufruf eines Jobs zum Erzeugen eines neuen Prozesses, z.b. bei Aufgaben, die parallel ausgeführt werden können, wie das Downloaden und Interpretieren einer Datei. 3. Durch eine Benutzeranfrage, z.b. durch explizites Starten eines Programmes in einem Multitasking System. 4. Durch Initiierung eines Batch Jobs, z.b. in Mainframes, bei denen ein Job nach dem anderen abgearbeitet wird. Jobs terminieren aufgrund folgender Bedingungen: 1. Freiwilliges Beenden, weil der Job fertig ist. 2. Freiwilliges Beenden aufgrund eines Fehlers, der die Weiterführung des Jobs nicht erlaubt, z.b. ein Editor, der eine Datei anzeigen soll, die nicht existiert. 3. Unfreiwilliges Beenden aufgrund eines schwerwiegenden Fehlers, z.b. aufgrund der Ausführung eines unzulässigen Befehls, Zugriff auf unerlaubten Speicherbereich, Division durch 0 etc.. 4. Unfreiwilliges Beenden durch einen anderen Job, z.b. kill in UNIX. Da Jobs Jobs erzeugen können, bilden sie in UNIX eine Hierarchie in Baumstruktur. Nachrichten werden dabei an alle Kindsknoten weitergeleitet. Jeder Knoten entscheidet dann individuell, ob er die Nachricht annimmt. In Windows gibt es diese Hierarchie nicht. 2.1 Jobzustände Es kann vorkommen, dass Jobs miteinander kommunizieren müssen. Wenn also Job A auf eine Ausgabe von Job B angewiesen ist, so muß A blockiert werden, bis B die Ausgabe produziert hat. Deshalb besitzen Jobs folgende Zustände: Initiiert: Job ist erzeugt, hat aber noch nicht alle Betriebsmittel und benötigt die CPU noch nicht. Bereit: Job hat nötige Betriebsmittel und wartet auf die Zuteilung der CPU. Rechnend: Job besitzt die CPU und wird momentan ausgeführt. Blockiert: Job wartet auf die Erfüllung einer Bedingung, z.b. auf die Ausgabe eines anderen Prozesses oder auf ein E/A Gerät. Er bewirbt sich momentan nicht um die CPU. Beendet: Job ist fertig, und die zugeteilten Betriebsmittel können wieder freigegeben werden.

5 Single Site Scheduling 5 Wichtige Zustandsübergänge finden dabei zwischen Bereit, Rechnend und Blockiert statt. Von Rechnend nach Blockiert wird geschaltet, sobald die CPU aufgrund einer E/A Operation oder einer benötigten Eingabe auf einen anderen Job umgeschaltet wird. Von Blockiert nach Rechenbereit wird geschaltet, wenn die Eingabe vorhanden ist, bzw. die E/A Operation abgeschlossen ist. Von Rechnend nach Bereit wird geschaltet, sobald der Scheduler einen anderen Job auswählt. Dieser Job geht dann in den Zustand Rechnend über. Die Entscheidungen welcher Job als nächster rechnet und für wie lange, trifft der Scheduler. Zudem befasst sich der Scheduler mit der Unterbrechungsbehandlung. 2.2 Weitere Eigenschaften von Jobs Jobs können in Mehrprozessorumgebungen zudem unterschiedlich flexibel sein [1] in Hinsicht auf Prozessoren, man unterscheidet vier Kategorien: 1. rigid (starre) Jobs: dem Job werden extern eine bestimmte Menge von Prozessoren zugewiesen, die sich dann auch während der Ausführung nicht mehr ändern 2. moldable Jobs: dem Job werden durch den Scheduler eine bestimmte Menge von Prozessoren zugewiesen, die sich dann auch während der Ausführung nicht mehr ändern. 3. evolving (entfaltende) Jobs: ein Job geht durch mehrere Phasen und allokiert dabei unterschiedlich viele Prozessoren. Das Minimum an Prozessoren wird ihm dabei immer zugestanden. 4. malleable (verformbare) Jobs: die Menge der zugeteilten Prozessoren verändert sich während der Ausführung, weil das System unterschiedlich viele zuteilt. 2.3 Process Control Block Der Process Control Block (PCB) ist eine Datenstruktur zur Verwaltung eines Jobs. Er beinhaltet dabei im wesentlichen drei Kategorien von Informationen: 1. Jobidentifikation: ID des Jobs, Eltern u. Kindjobs, Benutzeridentifikation 2. Jobinformationen: Bereich für Registerwerte im Speicher, Jobzustand wie oben beschrieben, Programmstatuswort 3. Jobkontrollinformationen: zugeteilte Betriebsmittel, angeforderte Betriebsmittel, Liste der E/A Geräte u. Dateien, Scheduling Informationen wie zugeteilte Prozessoren (bei Mehrprozessorsystemen), Wartezeit und Priorität. 2.4 Jobverwaltung Die Jobs werden verwaltetet, indem die PCBs in verknüpften Listen, Arrays oder in Baumstruktur abgespeichert werden [10]. Zudem können auch Klassen von PCBs gebildet werden, beispielsweise Speicherung aller bereiten Prozesse in einer verknüften Liste und aller blockierten in einer anderen Liste oder eine Sortierung nach Jobs, die auf bestimmte E/A Geräte warten.

6 6 Bastian Cramer 2.5 Jobumschaltung Die Jobumschaltung erfolgt entweder durch ein Interrupt, also ein Job höherer Priorität benötigt Rechenzeit, oder durch Ablauf eines Zeitfensters. Dazu ist es nötig, dass der Kontext des alten Jobs gesichert wird und sein PCB in Warteschlange eingereiht wird. Dabei muß insbesondere der Befehlszähler des alten Prozesses gesichert werden. Ein neuer Job muß durch den Scheduler ausgewählt werden, und aus dessen PCB muß der neue Kontext hergestellt werden. Die einfachste Umschalt Technik ist dabei der direkte Sprung. Hier wird eine Marke für das Umschalten und das Umschaltziel direkt einprogrammiert. Diese Technik ist allerdings wenig flexibel und wird nur in Spezialfällen wie Echtzeitsystemen eingesetzt. Das Umschalten ist in der Regel sehr komplex. Der Umschaltpunkt ist unbekannt und die Fortsetzstelle muß gemerkt werden. Das Umschaltziel ist ebenfalls unbekannt und muß vom Scheduler ausgewählt werden. Das Speichern und Laden der Kontexte der Jobs ist zudem sehr zeitaufwändig. 3 Threads In konventionellen Systemen gibt es mehrere Jobs mit jeweils einem Ausführungsfaden (Thread). Es ist allerdings sinnvoll innerhalb eines Prozesses mehrere Ausführungsfäden zu haben. In einem parallelen Programm könnten somit bestimmte Befehle stehen, wie beispielsweise in einer Schleife, die bedeuten, dass der Job ab diesem Zeitpunkt auf mehreren Prozessoren, also mit mehreren Threads, ausgeführt werden darf. 3.1 Definition von Threads Ein Job läßt sich als Ressourcenbündelung ansehen. Er beinhaltet einen Adressraum, Quelltext und weitere Ressourcen wie zugeteilte Betriebsmittel, E/A Geräte etc. Innerhalb dieses Jobs arbeitet eine Ausführungseinheit, die die CPU besitzt und auf den Ressourcen arbeitet. Diese Ausführungseinheit wird als Thread bezeichnet. Eine Koexistenz von mehreren Ausführungseinheiten, also Threads, innerhalb eines Prozesses ist gewünscht. Ein Thread besitzt dabei prinzipiell dieselben Zustände wie ein Job, zudem einen Befehlszähler, Register und einen Stack mit seinen lokalen Variablen. Unterschiedliche Threads innerhalb eines Jobs arbeiten in demselben Adressraum und haben dieselben globalen Variablen. Sie können insbesondere den Stack eines anderen Threads lesen, schreiben oder sogar komplett löschen. Eine sorgfältige Programmierung von kritischen Abschnitten ist hier also notwendig. Trotzdem konkurieren Threads nicht wie Jobs, die ja unter Umständen von unterschiedlichen Usern stammen können, sondern kooperieren. Man unterscheidet noch zwei Arten von Threads: light-weight Threads, die im Benutzerraum realisiert sind und heavyweight Threads, die im Kernadressraum realisiert sind.

7 Single Site Scheduling 7 4 Scheduling Scheduling, also die Ablaufplanung, bedeutet im wesentlichen die Zuordnung von Prozessen zu Prozessoren. Früher auf Großrechnern war das Scheduling kein sonderlich großes Problem. Es wurde einfach ein Job nach dem anderen abgearbeitet. Üblicherweise wurden die Jobs in Form von Lochkarten hintereinander eingegeben, quasi im Stapelbetrieb (Batch Mode). Heute ist das Scheduling wesentlich komplexer, da oft an einer Maschine mehrere Benutzer arbeiten und die Jobs untereinander konkurrieren. Zudem kann es eine Reihe von Rahmenbedingungen geben, die für einen Job gelten können [13]: Darf ein Job aufgesplittet werden? Darf ein Job von einem anderen verdrängt werden? Darf ein Job auf unterschiedlichen Maschinen ausgeführt werden? (Migration) Gibt es Freigabezeitpunkte, ab denen der Job rechnen darf? Können Annahmen über die Gesamtlaufzeit eines Jobs gemacht werden? Gibt es eine Deadline, zu der der Job unbedingt fertig sein muß? (Echtzeitsysteme) Gibt es Abhängigkeiten zwischen Jobs, d.h. darf ein Job erst ausgeführt werden, wenn ein anderer fertig ist? Gibt es eine Prioritätsstufe für den Job? Sind bereits alle Jobs bekannt, d.h. kann das Scheduling bereits vor Beginn (off line) stattfinden oder erst zur Laufzeit (on line). 4.1 Wann soll Scheduling stattfinden? Die vom Benutzer gefühlte Geschwindigkeit ausschlaggebend für eine Scheduling Strategie sein. So sollte einem Job, der innerhalb sehr kurzer Zeit ein Fenster aktualisiert, Vorrang vor einem Job gegeben werden, der zum Beispiel innerhalb von 2 Sekunden eine verschickt. Wäre dies nicht der Fall, so könnte der User das System als langsam empfinden, obwohl in beiden Fällen ja dasselbe abläuft. Die gefühlte Ausführungszeit ist hier also auch ein entscheidender Faktor und bestimmt mit, wann das Scheduling stattfinden soll. Auf heutigen Geräten klafft die Schere zwischen der Geschwindigkeit der CPU und der Geschwindigkeit von E/A Geräten immer mehr auseinander. CPU Zeit ist immer weniger eine knapp bemessene Ressource. So wartet die CPU häufig auf die Platte oder ist von anderen E/A Geräte abhängig. Das Scheduling von Jobs mit viel E/A Geräten wird also immer wichtiger. Man sollte diesen Jobs also möglichst schnell die CPU zuweisen, damit diese danach anderen rechnenden Jobs zugeordnet werden kann, also nicht auf das E/A Gerät warten muß. Die Frage, wann eine Schedulingentscheidung erfolgen muß, ist ebenfalls zentral: Wenn ein neuer Job erzeugt wird. Wenn ein Job beendet wird. Beim Blockieren eines Jobs aufgrund von E/A oder einer falschen Bedingung (Mutex/Semaphore).

8 8 Bastian Cramer Bei einer Unterbrechung durch ein E/A Gerät. Bei einem Timer Interrupt (z.b. durch Ablauf einer Zeitscheibe). Durch Unterbrechen eines anderen Jobs mit höherer Priorität. Dabei gibt es prinzipiell zwei Arten von Scheduling Algorithmen. Die nicht unterbrechenden Scheduler (nonpreemptive) und die unterbrechenden (preemptive). 4.2 Wo findet Scheduling statt? Scheduling kann nicht nur extern durch einen Scheduler auf Betriebssystemebene erfolgen, sondern auch im Programm [2], durch spezielle Anweisungen an einen parallelen Compiler. Zur Laufzeit werden dann die Anweisungen ausgewertet und an die Prozessoren verteilt. Eine andere Variante ist die des administrativen Scheduling. Dabei wird im vorraus, also nicht auf technischer Ebene, bestimmt, wie lange ein Job auf wievielen Prozessoren arbeiten darf, beispielsweise um bestimmte Deadlines doch noch zu errreichen. 4.3 Funktionen von Scheduling Mit dem Scheduling möchte man gewisse Ziele erreichen [1] [10]. Vor allem soll Gerechtigkeit unter den konkurrierenden Jobs erreicht werden. Dies widerspricht übrigens nicht den Prioritäten, die Jobs zugeordnet werden können. So ist es wichtig sicherheitskritischen Jobs schneller Rechenzeit zu geben, als Jobs, denen das Warten nichts ausmacht. Zudem will man, dass das System zu jedem Zeitpunkt gleichmäßig ausgelastet ist. Hier noch weitere Funktionen, nach denen Scheduling Algorithmen beurteilt werden können: Die Länge des Ablaufplans (makespan) soll minimiert werden. In Mehrprozessorsystemen werden Prozesse unterschiedlichen Prozessoren zugeteilt. In den Gantt Diagrammen kann dann die max. Länge dieses Ablaufplanes bestimmt werden Die Anwortzeit soll minimiert werden, ist wie oben gesehen wichtig um die vom Benutzer gefühlte Geschwindigkeit zu erhöhen. Der Durchsatz soll maximiert werden. Der Durchsatz entspricht dabei der Anzahl der Aufgaben, die in einer gewissen Zeit erledigt werden können. Bei unserem Supercomputer, der ja das High Throughput Computing (HTC) realisieren wird, würde das also bedeuten, dass in einem längeren Zeitraum mehr Jobs bearbeitet werden können, als im vergleichbaren Zeitraum auf einer einzigen Workstation. Die Prozessorauslastung soll maximiert werden, aber dennoch nicht über 100% liegen. Für unseren Supercomputer bedeutet dies, dass jede Site ausgelastet sein soll, aber Benutzer, sofern sie auf einem Knoten eingelogged sind, nichts bemerken dürfen. Die maximale Verspätung soll minimiert werden, d.h. Deadlines sollen eingehalten werden bzw. dürfen nur minimal überschritten werden. Dieser Punkt ist für unseren Supercomputer allerdings zu vernachlässigen, da wir keine strikten Endzeitpunkte haben werden.

9 Single Site Scheduling 9 Generell kann man sagen, dass zwei Ziele eingehalten werden sollen, zum einen soll der Benutzer zufriedengestellt werden und zum anderen soll der Gewinn maximiert werden. Dabei kann es durchaus üblich sein, seine Richtlinien (scheduling policies) von Zeit zu Zeit zu ändern. Zum Beispiel wäre es sinnvoll in Zeiten mit vielen Usern Abbildung 2. Policy Switching [1] auf einem System, der Antwort Zeit mehr Gewicht zu geben und kleinen Jobs den Prozessorvorrang. Das führt zwar dazu, dass der Prozessor manchmal nichts zu tun hat (schwarze Rechtecke), aber trotzdem noch Platz ist für kleine Jobs. In Zeiten mit wenig User Aktivität wird dann wieder auf eine Policy umgeschaltet, die große Jobs bevorzugt und den Throughput erhöht. 4.4 Systemaufteilung Nicht nur die Aufteilung von Jobs ist wichtig. Beim Scheduling von Single Sites ist es besonders wichtig, wie Rechenraum eigenteilt wird. Man kann das System in verschiedene Partitionen je nach Rechen- oder E/A Ressourcen einteilen, zum Beispiel könnten innerhalb einer Single Site Einteilungen nach CPU- oder Netzwerkgeschwindigkeiten erfolgen. Diesen Partitionen werden dann Queues von Jobs zugeordnet [1]. Immer wenn eine Partition frei ist, wird ihr aus der zugehörigen Queue der Job zugeordnet. In unserem Supercomputer könnte beispielsweise eine Einteilung nach CPU Geschwindigkeit erfolgen und eine nach Netzwerkgeschwindigkeit. Jobs, die viele Daten benötigen, werden dann einer Partition mit einem schnellen Netzwerk zugeteilt. Jobs, die sehr rechenlastig sind, bekommen die schnellen CPUs. Diese Partitionen können dabei unterschiedlich groß sein. Eine Festlegung kann folgendermaßen erfolgen [1]:

10 10 Bastian Cramer Feste Partition (fixed): die Partitionsgröße wird vom Administrator festgelegt und kann nur durch Neustart verändert werden. Variabel: die Partitionsgröße wird bei Start des Jobs durch den User festgelegt Angepasst: die Partitionsgröße wird durch den Scheduler bei Jobstart festgelegt, basiert auf Userwünschen und aktueller Systemauslastung Dynamisch: die Partitionsgröße ändert sich während der Ausführung, je nach Systemauslastung. 4.5 Kategorien von Scheduling Algorithmen Scheduling Algorithmen lassen sich grob in drei Kategorien einteilen [10]: 1. Stapelverarbeitung 2. Interaktion 3. Echtzeit Diese Kategorien entstehen durch die unterschiedlichen Ziele von bestimmten Anwendungen. In Stapelverarbeitungssystemen gibt es keine ungeduldigen Benutzer, die auf eine schnelle Antwort warten. Hier werden nicht unterbrechende Scheduler oder Schedulingalgorithmen mit langen Zeitscheiben eingesetzt, damit ein hoher Durchsatz erzielt werden kann. Bei interaktiven Systemen ist es vor allem wichtig die Antwortzeit zu minimieren. Hier sollen Benutzeranfragen wie Programmstarts oder das Öffnen von Dateien Vorrang vor Hintergrundprozessen haben. E/A Anfragen sollen bevorzugt behandelt werden, damit die CPU anschließend etwas anderes machen kann und somit die vom Benutzer gefühlte Geschwindigkeit steigt. Der upb.de Supercomputer wird wahrscheinlich einen Scheduler benötigen, der eine Mischung aus Stapelverarbeitungs und Interaktionssystem ist. Zum einen soll der Durchsatz möglichst hoch sein, dies darf aber nicht zu Lasten der Interaktion gehen. Das heißt, dass falls kein Benutzer auf einem Rechner mit einem Supercomputer Job eingelogged ist, dieser auch die höchste Priorität besitzt. Falls ein Benutzer eingelogged ist, so haben dessen Jobs den absoluten Vorrang. Der Benutzer darf also nichts vom Supercomputer Job mitbekommen. Die letzte Kategorie von Scheduling Algorithmen sind die Echtzeitsysteme. Hier besitzen Prozesse Deadlines, die eingehalten werden müssen. Unterbrechende Scheduling Algorithmen werden hier nicht häufig eingesetzt, da die Prozesse wissen, dass sie nur kurz laufen dürfen. 4.6 Preemption vs. Non-Preemption Desweiteren gibt es unterbrechende (preemptive) und nicht unterbrechende (nonpremptive) Scheduler, die sich folgendermaßen klassifizieren lassen [1]: 1. non preemtion: ein Job läuft, sobald er gestartet ist, bis zum Ende und behält dabei alle Ressourcen. 2. local preemtion: Threads eines Jobs können unterbrochen werden und laufen nach dieser Unterbrechung auf demselben Prozessor(en) weiter. Eine Migration der Daten zu anderen Prozessoren ist nicht nötig.

11 Single Site Scheduling migratable preemtion: Threads können unterbrochen werden und können auch auf einem anderen Prozessor wieder gestartet werden (Migration). 4. Gang scheduling: alle Threads eines Jobs werden unterbrochen und gleichzeitig wieder gestartet. Migration ist ebenfalls erlaubt. Ob ein unterbrochener Job auf Platte zwischengelagert wird oder im Hauptspeicher bleibt, hängt dabei von der verfügbaren Speicherleistung ab. In jedem Fall aber erzeugt Verdrängung eine Menge von Overhead, da ja die Kontexte wie oben beschrieben gewechselt werden müssen. Trotzdem haben Studien gezeigt, dass Verdrängung mehr Flexibilität erzeugt und fragmentierte Schedules verhindern hilft. Nun soll konkret auf Algorithmen fürs Scheduling eingegangen werden. Jobs bzw. deren Stellvertreter die PCBs werden dabei i.d.r. in verknüpften Listen gehalten. 5 Scheduling in Batch Systemen 5.1 First Come First Served Beim First Come First Served Algorithmus [10] werden die Jobs in der Reihenfolge abgearbeitet, in der sie in der Bereitliste ankommen. Dies entspricht der Alltagserfahrung, dass Jobs der Ankunftsreihenfolge nach abgearbeitet werden. Die Jobs dürfen dabei so lange rechnen wie sie wollen. Blockiert oder terminiert ein Job, so wird der nächste in der Bereitliste genommen. Blockierende Job werden an das Ende der Liste angehängt, sobald sie wieder bereit sind. Vorteilhaft ist hier die einfache Imlementierung (nämlich nur eine Liste) und dass alle Jobs gleich fair behandelt werden. Nachteilig ist aber, dass Prozesse mit viel E/A Operationen benachteiligt werden, sobald ein Job mit langer Rechenarbeit vorliegt. Wenn zum Beispiel ein E/A Job 1000 Mal auf die Platte zugreifen muß und ein rechenlastiger Job vorhanden ist, der immer 1 Sek. rechnet, so braucht der E/A Job 1000 Sekunden, um fertig zu sein. Diese Zeit kann durch Unterbrechungen, z.b. alle 10 ms drastisch verringert werden. Dann benötigt der E/A Prozess nämlich nur noch 10 Sek.. FCFS ist also für die durchschnittliche Antwortzeit nicht sonderlich gut geeignet 5.2 Shortest Job First Hier ist es nötig zu wissen, wie lange ein Job rechnen wird, bis er fertig ist. Bei Schortest Job First [10] wird immer der Job als nächstes ausgewählt, der die kürzeste Gesamtrechenzeit hat. Shortest Job First optimiert die durchschnittliche Wartezeit eines Jobs, allerdings nur, wenn alle Aufgaben gleichzeitig verfügbar sind. 5.3 Shortest Remaining Time Next Shortest Remaining Time Next [10] wählt immer den Prozess aus, der die kleinste Restbedienzeit hat. Hier ist es wie bei Shortest Job First ebenfalls notwendig, die Ge-

12 12 Bastian Cramer samtrechenzeit zu wissen, die oftmals nur eine Schätzung sein kann. Lange Prozesse können hier verhungern. 5.4 Least-Excpected-Work Least-Expected-Work [10] wählt immer den Job aus, der am wenigsten Restbedienzeit hat. Ein Least-Expected-Work Algorithmus ist hier um Faktor 2 bis 6(!) besser. SRTN, LEW und SJF basieren alle auf der Annahme, dass die Länge des Jobs bekannt ist. Dies ist aber durchaus problematisch, wenn der User diese Angaben macht. Denn der User versucht natürlich, den Scheduler in der Hinsicht zu beeinflussen, dass sein Job zuerst bearbeitet wird. Deshalb wird er je nach Strategie seinen Job eher länger oder kürzer einschätzen als der Job tatsächlich ist. Deshalb ist es wichtig für einen Scheduler, den User richtig einzuschätzen und auf gespeicherte Daten von vorherigen ähnlichen Jobs zurückgreifen zu können. Ein Logging Mechanismus ist also durchaus sinnvoll. 5.5 Highest Response Ratio Next Highest Response Ration Next [14] berücksichtigt die aktuelle Wartezeit eines Jobs und dieses Maß wird als Priorität gesetzt. Der Job mit der größten Response Ration r wird als nächster ausgewählt. r wird dynamisch berechnet und ist definiert als r = W artezeit+bedienzeit Bedienzeit. HRN ist nicht verdrängend. Kurze Prozesse werden bevorzugt, allerdings sammeln lange Jobs durch Warten Punkte, welche der Erhöhung ihrer Priorität dienen. 5.6 Three Level Scheduling Das Three Level Scheduling [10] besteht aus drei Schedulern. Bei der Erzeugung von Prozessen werden diese zunächst auf der Festplatte gespeichert. Ein Speicherscheduler wählt dann Prozesse aus, die in den Hauptspeicher geladen werden sollen. Dabei ist es von Vorteil, wenn man weiß, welche Prozesse rechenintensiv bzw. E/A intensiv sind um das System auszulasten. Ein CPU Scheduler entscheidet dann schließlich, welcher Prozess aus dem Hauptspeicher die CPU benutzen darf. 5.7 Round Robin Round Robin [10] wird eigentlich in interaktiven Systemen eingesetzt, allerdings wird es auch beim proritäten basierten Scheduling benutzt und soll der Vollständigkeit halber hier erwähnt werden. Beim Round Robin Verfahren wird dabei jedem Job eine Zeitscheibe zugewiesen. Ist diese Zeitscheibe abgelaufen oder wird der Job unterbrochen, so darf ein anderer Job rechnen. Der vorherige Job wird an das Ende der Liste angefügt. Das Setzen der Zeitscheibe ist hier problematisch. Ist sie zu kurz, so wird durch das Umschalten der Jobs viel Overhead produziert, und die CPU ist nicht ausgelastet. Eine zu große Zeitscheibe führt zu langen Antwortzeiten.

13 Single Site Scheduling Global Queueing Beim Global Queue Scheduling [2] werden Threads in eine globale Warteschlange eingeordnet. Ein nicht belegter Prozessor kann sich den ersten Thread herausnehmen, für eine Weile ausführen und reiht ihn danach wieder ans Ende der Schlange ein. Hauptvorteil ist, dass kein Prozessor unbeschäftigt ist, sobald in der Schlange Threads vorhanden sind. Problematisch ist allerdings, dass Threads auf verschiedenen Prozessoren ausgeführt werden und dieses Modell nur für Threads funktioniert, die wenig untereinander kommunizieren. Threads werden nämlich unkoordiniert ausgeführt und zwei miteinander kommunizierende Threads müssen evtl. lange warten. 5.9 Variable Partitioning Beim Variable Partitioning [2] werden die Prozessoren in disjunkten Partitionen unterteilt. Jeder Job wird dann in einer speziellen Partition ausgeführt. Die Einteilung kann dann, wie oben bereits gezeigt, dynamisch, fest, variabel oder angepasst erfolgen. Vorteilhaft ist hier, dass direkt auf die Bedürfnisse eines Jobs eingegangen und eine für diesen Job optimale Partition gefunden werden kann. Nachteilig ist, dass es zwischen User Wünschen und aktuell vorhandenen Prozessoren zu Unterschieden kommen kann. Zum einen kann es zu Fragmentierung kommen, falls die freien Prozessoren einem Job nicht genügen. Beispielsweise kann ein großer Job, der alle Prozessoren benötigt, solange nicht rechnen, bis alle anderen Jobs fertig sind. Sogar falls Prozessoren wegen E/A Operationen unbeschäftigt sind, kann der Prozessor nicht an einen anderen Job weitergegeben werden. Variable Partitioning ist also für die Stapelverarbeitung prädestiniert Dynamic Partitioning / Two Level Scheduling Ein Weg um die Wartezeit von Jobs in der Schlange zu reduzieren ist es, Jobs zu verbieten, zu viele Prozessoren zu benutzen, wenn das System stark belastet ist [2]. Dies wird durch angepasste (adaptive) Partitionsschemata erreicht. Das Problem beim adaptiven Partitionieren ist, dass die Anzahl der allokierten Prozessoren nicht verändert wird, bis der Job beendet ist. Es werden insbesondere keine Änderungen des Grades des Parallelismus des Programms betrachtet. Um dieses Verhalten zu unterstützen muß die Anwendung ein Programmiermodell unterstützen, dass sowohl interne Anforderungsänderungen als auch vom System induzierte Veränderungen behandeln kann. Dies wird durch ein Workpile Modell erreicht. Dabei wird die zu erledigende Rechenarbeit als ungeordneter Stapel aufgefasst. Von sogenannten Worker Threads (einer pro Prozessor) wird die Arbeit dann vom Stapel genommen und auf die Prozessoren verteilt. Dieses Modell erlaubt eine bessere Skalierung auf die Prozessoren. Resultat ist ein Two Level Scheduling wobei das Betriebssystem die Allokierung von Prozessoren zu Jobs erledigt, während die Anwendung das Scheduling der Arbeit auf diese Prozessoren macht.

14 14 Bastian Cramer Vorteilhaft ist, dass es beim Dyn. Partitioning/ Two - Level Scheduling keine Fragmentierung gibt, allerdings wird es nicht durch populäre Systeme wie MPI unterstützt. Problematisch ist zudem, dass falls ein Prozessor von einer Anwendung weggenommen wird und sich darin ein blockierender Thread befindet, für die gesamte Applikation ein Deadlock ergeben kann. Dies kann nur durch die Anwendung selbst verhindert werden und Betriebssystemscheduler und Applikationsscheduler müssen eng zusammenarbeiten Gang Scheduling Im Gegensatz zum Global Queue Scheduling wo Threads unkoordiniert ausgeführt werden, fasst man beim Gang Scheduling [2] [12] die Threads eines Jobs zusammen und führt sie gemeinsam aus, so dass sie zusammen interagieren können. Die Threads können auch permanent auf einen Prozessor gemapped werden, um den lokalen Speicher zu benutzen. Eine Variante des Gang Scheduling ist es, stark miteinander kommunizierende Threads als Teilmenge ablaufen zu lassen, falls es unmöglich ist, alle Threads gleichzeitig zu schedulen. Diese Variante wird als coscheduling bezeichnet. Es wird dabei das Zeitscheibenprinzip benutzt. Nach Ablauf der Zeitscheibe wird auf eine andere Gang umgeschaltet. Die alte Gang bleibt im Speicher, was zu Problemen bei zu kleinem Speicher führen kann. Dann muß die Gang ausgelagert werden. Das Auffüllen des Prozessors mit Threads kann dabei durch verschiedene Verfahren realisiert werden: First Fit Die freien Prozessoren werden der Reihe nach durchgegangen, der erste Timeslot, der für die Anfrage groß genug ist, wird ausgewählt. Ist in dieser Zeiteinheit kein Slot mehr frei, wird eine neue Zeitscheibe angebrochen. Best Fit Hier werden die Slots ihrer Kapazität nach sortiert. Das Slot mit der geringsten Kapazität, das groß genug ist, wird genommen Backfilling Beim Backfilling [7] werden Jobs zunächst nach Prioritäten und bestimmten Richtlinien vom Scheduler in Klassen eingeteilt. Non Backfill Beim Non-backfill werden Jobs mit der höchsten Priorität in der Queue gestartet. Kann ein Job aufgrund fehlender Ressourcen nicht starten, so wartet der Scheduler bis ein weiterer Job fertig ist. Dies führt zur Verschwendung von Rechenressourcen.

15 Single Site Scheduling 15 Abbildung 3. Non Backfill Classical Backfill Beim klassischen Backfill darf der Scheduler nicht ausgenutzte Rechenressourcen mit Jobs von einer niedrigeren Priorität ausfüllen. Dabei darf ein Job niedrigerer Priorität nur dann laufen, falls er vor der Startzeit des Jobs mit höherer Prioriät fertig ist. Der höher priorisierte Job darf also nicht beeinträchtigt werden. Problematisch dabei ist, dass die Laufzeitangaben der Jobs auf Schätzungen basieren. Wenn nun ein höher priorisierter Job eher fertig ist, dann können die Jobs, die eingefüllt wurden, den Start des nächsten hoch priorisierten Jobs beeinflussen. Preemptive Backfill Beim preemptive Backfill werden verschwendete Prozessorressourcen ebenfalls mit Jobs aufgefüllt, die eine niedrigere Prioriät haben. Allerdings können diese Jobs unterbrochen werden, sobald ein Job höherer Priörität starten darf. Die Auswahl der Jobs, die eingefügt werden, kann dabei durch verschiedene Kriterien erfolgen: Den höchst priorisierten Job, der passt nehmen. Den Job nehmen, der am besten passt. Eine Kombination von Jobs nehmen, die am Besten passt. Ein Beispiel für einen Backfilling Scheduler ist EASY. Hier werden Jobs in FCFS Reihenfolge abgearbeitet, sobald die gewünschte Anzahl an Prozessoren verfügbar ist.

16 16 Bastian Cramer Abbildung 4. Classical Backfill Multiple Queue Backfilling Beim Multiple Queue Backfilling [8] wird das System zunächst in Partitionen unterteilt, gewöhnlich 3 oder 4. Diesen Partitionen werden dann Warteschlangen zugeordnet. Wenn ein Job ankommt, wird er gemäß seiner erwarteten Auführungszeit in eine der Schlangen eingeordnet. Falls seine Ausführungszeit beispielsweise unter 1000s lang ist, wird er in Schlange 1 eingeordnet. Ist er zwischen 1000 und 10000s lang, so wird er in Schlange 2 eingeordnet, ansonsten in Schlange 3. Die Einordnung in die jeweilige Schlange erfolgt dabei gemäß seiner Priorität, d.h. falls der Job eine hohe Priorität hat, so wird er nach den Jobs derselben Priorität, die früher ankamen, aber vor Jobs mit niedrigerer Priorität eingeordnet. Jobs werden nun gemäß der Backfilling Strategie ausgeführt, insofern sie keine höher priorisierten Jobs beeinträchtigen. Sie können dabe nicht nur Prozessoren aus ihrer Partition allokieren, sondern auch aus benachbarten Partitionen. Jedoch darf auch dort kein höher priorisierter Job beeinträchtigt werden. Die Parttionsgrenzen sind also fließend. Relaxed Backfill Der Relaxed Backfill [9] Algorithmus führt auch Jobs mit der Backfilling Methode aus, wenn dadurch der höchstpriorisierte Job verzögert wird. Allerdings darf dieses Delay nur in einer bestimmten Grenze ω liegen. Der Relaxed Backfill Algorithmus führt zu einer besseren räumlichen Auslastung der Prozessoren dynp Job Scheduler Der dynp Job Scheduler [6] wird am PC2 entwickelt und ist ein sogennanter selftuning Scheduler, was bedeutet, dass er sich selbst an die Job Charakteristiken an-

17 Single Site Scheduling 17 Abbildung 5. Preempted Backfill passt. Falls sich die Job Charakteristiken also häufig ändern, so ist es auch nötig, die Scheduling Richtlinien anzupassen. Der dynp Scheduler hat drei Richtlinien, zwischen denen gewechselt werden kann: FCFS, SJF und Longest Job First. Anhand der Größe eines Qualitätsparameters wird zwischen den Policies hin- und hergeschaltet. Dieser Qualitätsparameter kann zum einen der Makespan sein oder die durchschnittliche Antwortzeit. Als beste Wahl hat sich allerdings die gewichtete durchschnittliche Antwortzeit herausgestellt. Große Jobs, die nach vielen Ressourcen verlangen, fallen so mehr ins Gewicht, als kleine im wesentlichen unwichtige Jobs. Die Auswertung des Qualitätsparameters und die Anpassung der Scheduling Policy erfolgt dabei immer wenn ein neue Job ankommt oder ein anderer Job terminiert. Dabei müssen mindestens 5 Jobs vorhanden sein Tree Walking Algorithm Der Tree Walking Algorithmus [5] basiert auf der Annahme, dass ein Scheduling Algorithmus optimal ist, wenn alle Jobs gleichmäßig auf alle Prozessoren verteilt sind. Dazu werden die Prozessoren als Knoten i, i = 1,..,N in einer Baumstruktur aufgefasst. Jeder Knoten kennt seine Anzahl an Tasks w i und die Anzahl der Tasks W i in seinem Subbaum. Zu Beginn des Algorithmus wird einmalig die Anzahl aller Tasks T = W 0 ausgerechnet und der Durchschnitt an Tasks pro Knoten w avg = T N ausgerechnet. Jedem Knoten wird nun ein Quota q i zugewiesen, was w avg entspricht und sofern T N nicht glatt aufgeht, wird den ersten T mod N Knoten ein Quota q i = w i + 1 zugewiesen. Jeder Knoten berechnet zusätzlich noch das Quota Q i seines

18 18 Bastian Cramer Subbaumes. Für jeden Knoten wird der Baum nun ausbalanciert. Dazu sendet ein Knoten i W i Q i Tasks an den Elternknoten, falls W i > Q i gilt. Falls Q i > W i gilt, so werden Q i W i Task an den Kindsknoten geschickt. Abbildung 6. Tree Walking [5] 5.15 Queueing vs. Planning Bisher basierten die Scheduling Algorithmen auf dem Queueing Ansatz, d.h. Scheduling Entscheidungen wurden nur in der Gegenwart, also basierend auf aktuellen Ressourcen, getroffen. Nun soll der ganze Schedule im voraus geplant werden [11], dazu ist es nötig den Jobs Startzeiten zuzuweisen. Queueing Systeme besitzen diverse Schlangen in denen wartende Prozesse eingeordnet werden. Diese Schlangen unterscheiden sich nach Prioritäten, benötigten Prozessoren oder anderen E/A Ressourcen. Eine Scheduling Entscheidung wird dann immer nur für den Moment getroffen und basiert darauf, das System gut auszulasten oder eine faire Entscheidung zu treffen. Ein Queueing System benötigt dabei nicht notwendigerweise Informationen über die Dauer eines Jobs, es sei denn, es wird Backfilling benutzt. Daraus resultieren einige Nachteile. So weiß man beispielsweise nicht, wann genau ein Job bearbeitet wird oder wie die Systemeauslastung zu einem bestimmten Zeitpunkt ist. Zudem ist es schwierig Reservierungen zu machen. In Planning Systemen gibt es keine Queues, jeder ankommende Job wird umgehend in den Schedule eingearbeitet und der Scheduling Plan wird bei jedem Terminieren eines Jobs neu überarbeitet. Ein strikter FCFS Algorithmus ist ebenfalls nicht mehr nötig, da Jobs sobald möglich in den Schedule eingearbeitet werden. Ein Systemauslastungslimit kann ebenfalls sehr einfach eingebaut werden, z.b. durch Aussagen wie während Zeiten hoher Auslastung, dürfen nur 75% der Prozessoren belegt werden. Damit ein Job eingeplant werden kann, ist es wichtig, dass der User dem Scheduler einige gewünschte Eigenschaften für den Job mitgibt. Es müssen Angaben über

19 Single Site Scheduling 19 die gewünschten Ressourcen gemacht werden. Dabei können die Angaben entweder direkt angegeben werden, also z.b. benötige 32 Prozessoren oder es können sogenannte diffuse Wünsche geäußert werden, also z.b. benötige 32 bis 128 Prozessoren. Diese diffusen Angaben ermöglichen es dem Scheduler flexibler zu sein. Desweiteren kann der User Reservierungen aussprechen. Reservierungen müssen zu einem bestimmten Startzeitpunkt anlaufen und dürfen auch nicht zeitlich nach vorne geschoben werden, falls ein anderer Job früher fertig ist. Die Eigenschaften der Anwendung müssen zudem berücksichtigt werden. So kann es sein, dass eine Applikation während sie läuft zusätzliche Ressourcen anfordert. Problematisch ist es für den User, die Länge eines Jobs einzuschätzen. In der Regel wird er den Job länger einschätzen, als er wirklich ist, damit der Job nicht vorher abgebrochen wird. Eine mögliche Lösung wäre es, dem Job zu erlauben, noch eine Weile länger zu laufen. Eine andere Lösung wäre es, den Anwendungen Signale zu übermitteln, an denen sie automatisch ihren Zustand speichern. So können auch Jobs, die weitaus länger laufen als erlaubt, in kleinen Fragmenten eingeschleust werden. Jobs, die sehr lange laufen und eine niedrige Priorität haben, könnten in Zeiten von nicht ausgelasteten Prozessoren laufen. Sie stehlen quasi die Idle Time. Oft wird in Rechenzentren auch nach speziellen Rechenressourcen angefragt, z.b. benötige RedHat auf einem Itanium System. Der Scheduler muß also auch in der Lage sein, die Zeiten für eine Umkonfigurierung einzuplanen. Außerdem kann es zu Hardwarefehlern kommen, die den Ausfall von Ressourcen zur Folge haben können. Auch hierauf muß der Scheduler adäquat reagieren können und Jobs müssen evtl. neu gescheduled werden, um die vorher vereinbarten Dienstgüten einhalten zu können. Kann eine Vereinbarung nicht eingehalten werden, so ist es evtl. möglich, den Job im Grid weiterzuleiten. Computing Center Software Ein Beispiel für einen Planning Scheduler ist die Computing Center Software (CCS). CCS besteht dabei im wesentlichen aus 3 Komponenten: Dem Access Manager, der für Authentifizierung, Authorisierung und Kontenverwaltung zuständig ist, dem Planning Manager, der User Anfragen plant und dem Machine Manager, der die User Anfragen auf die Maschine mapped. Der Planning Manager kennt die zu Grunde liegende Hardware nicht. Er plant gemäß FCFS, SJF und LJF, wobei der Administrator diese Richtlinien ändern kann und systemweite sowie Projektgrenzen beachtet werden. Ein ankommender Job wird dabei sobald wie möglich eingeplant, backfilling wird also implizit ermöglicht. Der Machine Manger versucht, den vom Planning Manager ausgearbeiten Schedule auf die Maschine zu mappen. Gelingt dies nicht, so wird ein alternativer Plan ausgearbeitet, der an den Planning Manager übergeben wird. Sind dort feste Zeitlimits nicht korrekt berücksichtigt, so wird der Schedule verworfen. 6 Eigenschaften des upb.de Supercomputers Eigenschaften der Jobs:

20 20 Bastian Cramer Threads kommunizieren nicht miteinander (DVD rippen) Sind starr: Prozessorallokation ändert sich nicht mehr Lassen sich sehr weit aufsplitten Dürfen verdrängt werden Dürfen auf unterschiedlichen Maschinen ausgeführt werden Dürfen sofort starten, es gibt keine Abhängigkeiten Gesamtlaufzeit ist bekannt: Erfahrung oder durch Tests Keine strikte Deadline Besitzen i.d.r. niedrige Priorität Benötigen viele E/A Zugriffe? Eigenschaften der Maschinen: Netzwerktyp und Geschwindigkeit sind bekannt (NWS) Rechner und Rechnerkonfigurationen sind bekannt Was soll der Scheduler leisten? Länge des Ablaufplans soll minimiert werden In Zeiten hoher Last durch Benutzer, soll Antwortzeit minimiert werden, d.h. der Supercomputer soll nicht bemerkt werden. Site soll immer ausgelastet sein. Literatur 1. Dror G. Feitelson, Larry Rudolph, Uwe Schwiegelshohn, Kenneth C. Sevcik, Parkson Wong: Theory and Practice in Parallel Job Scheduling (1994) in Job Scheduling Strategies for Parallel Processing 2. Dror G. Feitelson, Larry Rudolph: Parallel Job Scheduling: Issues and Approaches (1995) in Job Scheduling Strategies for Parallel Processing IPPS 95 Workshop 3. Steve J. Chapin, Walfredo Cirne, Dror G. Feitelson, James Patton Jones, Scott T. Leutenegger, Uwe Schwiegelshohn, Warren Smith, David Talby: Benchmarks and Standards for the Evaluation of Parallel Job Schedulers (1999) in Job Scheduling Strategies for Parallel Processing 4. L. Huang and M.J. Oudshoorn: Scheduling Preemptive Tasks in Parallel and Distributed Systems 5. Min-You Wu: On Runtime Parallel Scheduling (1995) 6. Achim Streit: A Self Tuning Job Scheduler Family with Dynamic Policy Switching in Job Scheduling Strategies for Parallel Processing 8th. Workshop Quinn O. Snell et al.: Preemption Based Backfill in Job Scheduling Strategies for Parallel Processing 8th. Workshop Barry G. Lawson, Evgenia Smirni: Multiple Queue Backfilling Scheduling with Priorities and Reservations for Parallel Systems in Job Scheduling Strategies for Parallel Processing 8th. Workshop William A. Ward et al.: Scheduling Jobs on Parallel Systems Using a Relaxed Backfill Strategy in Job Scheduling Strategies for Parallel Processing 8th. Workshop Andrew S. Tanenbaum: Moderne Betriebssysteme 2. Auflage 2002

21 Single Site Scheduling Matthias Hovestadt et al.: Scheduling in HPC Ressource Managment Systems: Queueing vs. Planning Dror G. Feitelson: Packing Schemes for Gang Scheduling Brucker, P.: Scheduling Algorithms, Springer Verlag 2. Auflage Kao, O.: Konzepte und Methoden der Systemsoftware,

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

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

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

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

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

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

Ü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

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

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

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

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

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

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

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

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

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

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

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

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

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

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

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

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

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

3.3 Strategien zur Ablaufsteuerung

3.3 Strategien zur Ablaufsteuerung 3.3 Strategien zur Ablaufsteuerung Prinzip der Trennung von Strategie (Richtlinie, policy) und Mechanismus (mechanism) bedeutet bei der Prozessverwaltung class Process {... static Set readylist

Mehr

Lösung von Übungsblatt 8

Lösung von Übungsblatt 8 Betriebssysteme (SS201) Lösung von Übungsblatt 8 Aufgabe 1 (Unterbrechungen) 1. Was sind Interrupts? Interrupts sind externe Unterbrechungen. Sie werden durch Ereignisse außerhalb des zu unterbrechenden

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

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

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

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

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

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2 Literatur [13-1] Quade, Jürgen; Mächtel, Michael: Moderne Realzeitsysteme kompakt. dpunkt, 2012 [13-2] Quade, Jürgen: Embedded Linux lernen mit dem Raspberry Pi. dpunkt, 2014 [13-3] Eißenlöffel, Thomas:

Mehr

ATB Ausbildung technische Berufe Ausbildungszentrum Klybeck

ATB Ausbildung technische Berufe Ausbildungszentrum Klybeck Inhaltsverzeichnis DOKUMENTATION SERVER INSTALLATION MIT WINDOWS 2000...1 Was ist ein Server...1 Aufbau des aprentas Servers...1 Materialliste:...1 Ablauf der Installation:...1 Die Installation:...1 Server

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

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2) Inhalt Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)... 1 1. Die integrierte Firewall von Windows XP... 2 2. Convision ActiveX und Internet Explorer 6... 3 3. Probleme

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

5. Foliensatz Betriebssysteme und Rechnernetze

5. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun 5. Foliensatz Betriebssysteme und Rechnernetze FRA-UAS SS2017 1/29 5. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert? SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige

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 13.11.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Installationsanleitung OpenVPN

Installationsanleitung OpenVPN Installationsanleitung OpenVPN Einleitung: Über dieses Dokument: Diese Bedienungsanleitung soll Ihnen helfen, OpenVPN als sicheren VPN-Zugang zu benutzen. Beachten Sie bitte, dass diese Anleitung von tops.net

Mehr

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

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

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

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz Diese Anleitung soll als Kurzreferenz und Schnellanleitung dienen um einfach und schnell Berichte auf der Homepage www.dav-koblenz.de

Mehr

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network Rembo/mySHN Version 2.0 Kurzanleitung das selbstheilende Netzwerk my selfhealing network Stand: 01.05.2006 Postanschrift: SBE network solutions GmbH Edisonstrasse 21 74076 Heilbronn IV Inhalt Kurzanleitung...i

Mehr

9 Multithreading. 1 Idee des Multithreading

9 Multithreading. 1 Idee des Multithreading 9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed

Mehr

Installation im Netzwerk

Installation im Netzwerk Durchführung der Netzwerk bzw. Mehrplatzinstallation Bitte gehen Sie bei der Installation wie folgt vor: Bitte wählen sie einen Rechner aus, der als Datenbankserver eingesetzt werden soll. Dieser PC sollte

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

juliteccrm Dokumentation

juliteccrm Dokumentation Customer Relationship Management für kleine und mittelständische Unternehmen juliteccrm Dokumentation 2012, julitec GmbH Page 1 of 12 julitec GmbH Flößaustraße 22 a 90763 Fürth Telefon: +49 911 979070-0

Mehr

Übungen zum Fach Betriebssysteme Kapitel 3

Übungen zum Fach Betriebssysteme Kapitel 3 Übungen zum Fach Betriebssysteme Kapitel 3 Prof. Dr. Kern & Prof. Dr. Wienkop Prozessverwaltung 1 Prozeßauslagerung Ein Betriebssystem, das die Zustände "rechnend", "bereit" und "wartend" sowie den künstlichen

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

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

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

Arbeitsblätter. Der Windows 7 MCITP-Trainer - Vorbereitung zur MCITP-Prüfung 70-685. Aufgaben Kapitel 1

Arbeitsblätter. Der Windows 7 MCITP-Trainer - Vorbereitung zur MCITP-Prüfung 70-685. Aufgaben Kapitel 1 Arbeitsblätter Der Windows 7 MCITP-Trainer - Vorbereitung zur MCITP-Prüfung 70-685 Aufgaben Kapitel 1 1. Sie betreuen die Clients in Ihrer Firma. Es handelt sich um Windows 7 Rechner in einer Active Momentan

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

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

Vorl. 6: Single- und Multitasking

Vorl. 6: Single- und Multitasking Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorl. 6: Single- und Multitasking Peter B. Ladkin Single Tasking Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe

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

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation

Inhaltsverzeichnis. 1 Grundsätzliche Überlegung. 2 Hinweis zur Installation Inhaltsverzeichnis 1 Grundsätzliche Überlegung...1 2 Hinweis zur Installation...1 3 Konfiguration von AutoDocument...2 3.1 Erfassung der Listeneinträge...2 3.2 Hinterlegung von Notizen...3 3.3 Definition

Mehr

Approximation in Batch and Multiprocessor Scheduling

Approximation in Batch and Multiprocessor Scheduling Approximation in Batch and Multiprocessor Scheduling Tim Nonner IBM Research Albert-Ludwigs-Universität Freiburg 3. Dezember 2010 Scheduling Zeit als Ressource und Beschränkung Formaler Gegeben sind Jobs

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Ordner und Laufwerke aus dem Netzwerk einbinden

Ordner und Laufwerke aus dem Netzwerk einbinden Inhaltsverzeichnis 1. Einführung...2 2. Quellcomputer vorbereiten...3 2.1 Netzwerkeinstellungen...3 2.2 Ordner und Laufwerke freigeben...4 2.2.1 Einfache Freigabe...5 2.2.2 Erweiterte Freigabe...6 3. Zugriff

Mehr

G-Info Lizenzmanager

G-Info Lizenzmanager G-Info Lizenzmanager Version 4.0.1001.0 Allgemein Der G-Info Lizenzmanager besteht im wesentlichen aus einem Dienst, um G-Info Modulen (G-Info Data, G-Info View etc.; im folgenden Klienten genannt) zentral

Mehr

KJM-Stabsstelle 22.05.2012

KJM-Stabsstelle 22.05.2012 KJM-Stabsstelle 22.05.2012 FAQ Anerkannte Jugendschutzprogramme für Eltern und Pädagogen F: Was ist ein anerkanntes Jugendschutzprogramm? A: Jugendschutzprogramme sind Softwarelösungen, die Kinder und

Mehr

Eingehende E-Mails überwachen, abrufen und verteilen

Eingehende E-Mails überwachen, abrufen und verteilen Seite 1 Dieser Workshop behandelt den E-Mail Posteingang. Grundlegende Funktionen und Überlegungen : DokuWork beinhaltet einen eigenen E-Mail Client mit dem über das POP3 Protokoll E-Mails von einem E-Mail

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

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

Installation des Zertifikats am Beispiel eines Exchange-Mail-Servers. Voraussetzungen. Zertifikate importieren. Outlook-Webaccess

Installation des Zertifikats am Beispiel eines Exchange-Mail-Servers. Voraussetzungen. Zertifikate importieren. Outlook-Webaccess HS-Anhalt (FH) Fachbereich EMW Seite 1 von 6 Stand 04.02.2008 Installation des Zertifikats am Beispiel eines Exchange-Mail-Servers Bedingt durch die verschiedenen Transportprotokolle und Zugriffsmethoden

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

Leitfaden für die Veränderung von Texten auf der Metrik- Seite

Leitfaden für die Veränderung von Texten auf der Metrik- Seite Leitfaden für die Veränderung von Texten auf der Metrik- Seite 1. Einloggen... 2 2. Ändern vorhandener Text-Elemente... 3 a. Text auswählen... 3 b. Text ändern... 4 c. Änderungen speichern... 7 d. Link

Mehr

Zuschauer beim Berlin-Marathon

Zuschauer beim Berlin-Marathon Zuschauer beim Berlin-Marathon Stefan Hougardy, Stefan Kirchner und Mariano Zelke Jedes Computerprogramm, sei es ein Betriebssystem, eine Textverarbeitung oder ein Computerspiel, ist aus einer Vielzahl

Mehr

Datenträgerverwaltung

Datenträgerverwaltung Datenträgerverwaltung Datenträgerverwaltung 1/9 Datenträgerverwaltung Inhaltsverzeichnis Vorgangsweise...2 Umwandeln einer Basisfestplatte in eine Dynamische Festplatte... 2 Spiegelung erstellen... 4 Partitionen

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

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

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

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

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 2 Virtual Storage el0100 copyright

Mehr

Installationsanleitung für den Online-Backup Client

Installationsanleitung für den Online-Backup Client Installationsanleitung für den Online-Backup Client Inhalt Download und Installation... 2 Login... 4 Konfiguration... 5 Erste Vollsicherung ausführen... 7 Webinterface... 7 FAQ Bitte beachten sie folgende

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel 2 Inhaltsverzeichnis 1 Cookies 4 1.1 Regelungen......................................... 4 1.2 Verwaltung..........................................

Mehr

Anleitung für das MS Project Professional 2003 (Deutsche Version)

Anleitung für das MS Project Professional 2003 (Deutsche Version) Anleitung für das MS Project Professional 2003 (Deutsche Version) Erstes Starten... 2 Tutorial... 3 Hilfe... 4 Critical Path / Kritischer Weg... 5 Der Critical Path / Kritischer Weg wird nicht korrekt

Mehr

EBW Systems HANDBUCH Offline Programm

EBW Systems HANDBUCH Offline Programm EBW Systems HANDBUCH Offline Programm Seite 1 von 7 Inhaltsverzeichnis 1. Programmsteuerung 2. Veranstaltungen verwalten 3. Daten absenden 4. Sonstige Hinweise Seite 2 von 7 1. Programmsteuerung Programm

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

Partitionieren mit GParted:

Partitionieren mit GParted: Partitionieren mit GParted: Sie müssen zunächst das Programm aus dem Internet herunterladen, z.b. von hier: http://www.freenet.de/freenet/computer_und_technik/betriebssysteme/linux/gparted/index.ht ml.

Mehr

Warum wir WEB-Grips zur Zusammenarbeit nutzen

Warum wir WEB-Grips zur Zusammenarbeit nutzen WEB-Grips ist unser wichtigstes internes Tool. Wir haben es selbst entwickelt, um unseren Alltag zu erleichtern, unsere Prozesse und Abläufe zu ordnen kurz, den Überblick zu behalten. Wir haben es selbst

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

Einrichten eines MAPI- Kontos in MS Outlook 2003

Einrichten eines MAPI- Kontos in MS Outlook 2003 Einrichten eines MAPI- Kontos in MS Outlook 2003 Um mit dem E-Mail-Client von Outlook Ihr E-Mail Konto der Uni Bonn mit MAPI einzurichten, müssen Sie sich als erstes an den Postmaster wenden, um als MAPI-Berechtigter

Mehr

Installation von Updates

Installation von Updates Installation von Updates In unregelmässigen Abständen erscheinen Aktualisierungen zu WinCard Pro, entweder weil kleinere Verbesserungen realisiert bzw. Fehler der bestehenden Version behoben wurden (neues

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

shopwin Kurzanleitung Leitfaden für einen Kassennotfall / Bedienung der Notfallkasse

shopwin Kurzanleitung Leitfaden für einen Kassennotfall / Bedienung der Notfallkasse Leitfaden für einen Kassennotfall / Bedienung der Notfallkasse www.easy-systems.de Inhaltsverzeichnis: 1 Ziel der Anleitung...2 2 Was ist ein Kassennotfall?...2 3 Was ist eine Notfallkasse?...2 4 Wie erkenne

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr