Betriebssysteme Grundlagen, Konzepte

Größe: px
Ab Seite anzeigen:

Download "Betriebssysteme Grundlagen, Konzepte"

Transkript

1 Betriebssysteme Grundlagen, Konzepte Prozessmanagement Version 1.9 Fachhochschule Frankfurt (Main) University of Applied Sciences Seite 1(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

2 Inhaltsverzeichnis 1 PROZESSMANAGEMENT PROZESSE PROZESSHIERARCHIE PROZESSE UNTER UNIX PROZESSZUSTÄNDE PROZESS SWITCH SCHEMATISCHE INTERRUPTBEHANDLUNG PROZESS MODUS PROZESSERZEUGUNG PROZESS-SCHEDULING FIRST COME, FIRST SERVE SCHEDULING SHORTEST JOB FIRST ROUND-ROBIN-SCHEDULING PRIORITÄTENGESTEUERTES SCHEDULING MEHRERE QUANTENWARTESCHLANGEN A-PRIORI-SCHEDULING ZWEISTUFIGER SCHEDULER PROZESS-SCHEDULING UNTER UNIX PROZESSKOMMUNIKATION ZEITKRITISCHE ABLÄUFE LÖSUNGSANSÄTZE LÖSUNGEN KLASSISCHE PROZESSKOMMUNIKATIONSPROBLEME DAS PHILOSOPHENPROBLEM DAS LESER-SCHREIBERPROBLEM DAS FRISEURPROBLEM ZUAMMENFASSUNG PROZESSMANAGEMENT C-PROGRAMME ZUM ERZEUGER-VERBRAUCHER PROBLEM IPC MIT SHARED MEMORY IPC MIT SHARED MEMORY NACH PETERSON PROZESSKOMMUNIKATION IN C-PROGRAMMEN 44 Seite 2(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

3 Dieses Dokument wird von Gerd Neugebauer erstellt. Dokumentstatistik Das Dokument wird zu den Vorlesungen aktualisiert. Änderungen an Inhalt und Umfang führen zu neuen Hauptversionsnummern. Version Datum Autor Inhalt und Änderungsaktionen Gerd Neugebauer Betriebssysteme Vorlesung WS Gerd Neugebauer Betriebssysteme Vorlesung WS Gerd Neugebauer Betriebssysteme Vorlesung Statistische Informationen der Datei-Information Datum des Ausdrucks Anzahl der Seiten 47 Anzahl Zeichen Dokumentname Titel des Dokuments 7. Prozesse.doc Betriebssysteme Semester Autor des Dokuments Seite 3(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

4 1 Prozessmanagement 1.1 Prozesse Prozesse und das dazugehörige Prozessmanagement sind ein Schlüsselkonzept eines jeden Betriebssystems, das wichtigste? Auf jeden Fall unverzichtbar. Ein Prozess ist ein Programm, das sich gerade in Ausführung befindet. Zur Abgrenzung die folgende Definition Ein Programm ist ein statisches Textstück, das eine Folge von Aktionen spezifiziert, die von einem oder mehreren Prozessoren auszuführen sind. Ein Prozess ist eine durch ein Programm spezifizierte Folge von Aktionen deren erste begonnen hat und deren letzte noch nicht abgeschlossen ist. Ein Computer muss heute viele verschiedene Aufgaben auf einmal quasi parallel abwickeln Berechnungen, Terminal I/O, Drucken,....Die Kontrolle vieler paralleler Aktivitäten ist Aufgabe des Prozessmanagements. Aufgaben des Prozessmanagements sind so u.a.: - Starten und Beenden von Prozessen - Suspendieren und Resuspendieren von Prozessen - Bereitstellung von Mechanismen zur Programmsynchronisation - Bereitstellung von Mechanismen zur Programmkommunikation - Deadlock Behandlung Die entscheidende Idee: Ein Prozess stellt eine Aktivität beliebiger Art dar. Er besitzt ein Programm mit einem dazugehörigen Programmzähler, Eingaben, Ausgaben und einen aktuellen Zustand in dem sich der Prozess befindet. All dies wird in einem prozessspezifischen Prozesskontext hinterlegt, in dem ProcessControlBlock, im PCB Prozesshierarchie In der Regel können Prozesse wieder Prozesse erzeugen (fork). So entsteht im System eine Prozesshierarchie: Vaterprozess Kindprozess. Prozesshierarchie: Starten eines UNIX-Systems und Anmelden eines Benutzers init getty login bash ksh Seite 4(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

5 Prozessbeschreibung: Starten eines UNIX-Systems und Anmelden eines Benutzers - UNIX-Systemkern /UNIX wird in den Hauptspeicher geladen und zur Ausführung gebracht. "Kern Prozess" (Kernel) PID 0. - "Kern Prozess" startet das Programm /etc/init. Dieser Prozess hat die PID 1 und ist der eigentliche Urprozess für alle Benutzerprozesse. Außerdem werden in der Regel die Prozesse swapper und der pagedämon gestartet. - /etc/init liest die Datei /etc/inittab in der alle angeschlossenen Terminals verzeichnet sind. Für alle als zu aktivierende gekennzeichneten Terminals startet die /etc/init einen Sohnprozess, der zunächst stdin, stdout, stderr öffnet und anschließend /etc/getty startet. - /etc/getty gibt die Anforderung zum Anmelden am entsprechenden Terminal aus. - Nach der Eingabe der Login - Kennung ruft /etc/getty das Kommando /bin/login auf. Dieses Kommando fragt das Passwort ab und prüft es. Ist das Passwort richtig, so ruft /etc/init die in der Datei /etc/passwd spezifizierte Login - Shell auf. Dieses Programm ist nicht nur der Kern neuer Prozesse, sondern es läuft auch unter der gleichen PID wie die von /etc/init erzeugten Sohnprozesse /bin/sh /bin/csh /bin/ksh - Bevor einem Benutzer die Eingabe eines Kommandos gestattet wird, wird eine für alle Nutzer gleiche Kommandoprozedur /etc/profile gestartet. Falls vorhanden wird die Startup-Datei.profile im Home- Verzeichnis des Anwenders ausgeführt z.b. die /home/neuge/.bashrc. - und ab jetzt darf er eigene Kommandos eingeben Prozessausführung: Wird ein Kindprozess erzeugt gibt es für den Elternprozess die Möglichkeiten: 1. Elternprozess läuft parallel weiter zu den Kindprozessen 2. Elternprozess wartet ( wait() ) bis einer oder alle Kindprozesse terminiert sind Bezüglich des Adressraumes des neuen Prozesses gibt es die Möglichkeiten: 1. Kindprozess ist eine Kopie des Elternprozesses ( fork() ). Der Elterprozess bleibt erhalten. 2. Kindprozess ist ein Programm, das von dem Elternprozess geladen wird ( exec() ). Der neue Prozess überlagert dabei den aufrufenden Prozess. Ein erfolgreicher exec() Aufruf kehrt nicht zurück. Mit einem exec() wird kein neuer Prozess erzeugt, sondern innerhalb eines fortbestehenden Prozesses lediglich ein Programm durch ein anderes überlagert. Prozessstart: Neue Prozesse werden nicht gestartet, wenn - die Maximalzahl von Prozessen erreicht ist - die Maximalzahl von Prozessen eines Benutzers erreicht ist - kein Platz im Hauptspeicher und swap-bereich mehr vorhanden ist Prozessbeendigung: Ein Prozess terminiert, wenn - es die letzte ausführbare Anweisung ausgeführt hat, dann fordert der Prozess das Betriebssystem auf, ihn zu löschen ( exec-aufruf ) - er durch ein Ereignis terminiert wird ( z.b. Interrupt, Systemaufruf ). Prozesse können auch andere Prozesse terminieren, wenn sie die Identität des Prozesses kennen und die Berechtigung dazu haben (Superuser oder Eigentümer). Seite 5(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

6 1.1.2 Prozesse unter UNIX Bei Absetzen eines UNIX-Kommandos wird in aller Regel ein Prozess gestartet. Einige Kommandos sind allerdings direkt in der Shell eingebaut, die builtin-kommandos, für diese Kommandos wird kein eigener Prozess gestartet. Der Prozess wird im Betriebssystem durch einen Eintrag in der Prozesstabelle dargestellt, unter Unix der PCB (Process Control Block). Dieser beschreibt den Zustand des Prozesses und dient zur Speicherung der prozessspezifischen Daten. jeder Prozess ist eindeutig identifizierbar durch seine PID (Process Identification) - Bei der Erzeugung erhält jeder Prozess eine eindeutige Nummer, die er bis zum Ende beibehält. PPID (Parents Process Identification) - Jeder Prozess kennt die PID seines Elternprozesses. Auch wenn ein Prozess nicht aktiv ist, benötigt das System ständig Informationen aus dem Prozess- Kontext, aus der Systemstruktur eines Prozesses, um die Prozesse verwalten zu können. Wenn der Prozess läuft, benötigt er darüber hinaus alle Informationen, die zum User gehören, die in der User-Struktur enthalten sind. Die User-Struktur des aktuellen Prozesses muss im Arbeitsspeicher liegen. Bei einem Kontextwechsel werden die Informationen aus den prozessspezifischen Strukturen des alten Prozesses mit der des neuen Prozesses ausgetauscht. Einige Felder eines PCBs eines Prozesses in der Prozesstabelle: Prozessverwaltung Speicherverwaltung Dateiverwaltung Register Zeiger auf Textsegment umask-maske Programmzähler Zeiger auf Datensegment Wurzelverzeichnis Programmstatuswort Zeiger auf BS-Segment aktuelles Verzeichnis Stack-Zeiger Terminierungsstatus Dateideskriptor Prozesszustand Prozessnummer effektive UID Prozesserzeugungszeitpunkt Elternprozess effektive GID verbrauchte Prozessorzeit Prozessgruppe Systemaufrufparameter Prozesszustände Ein Prozess kann Ausgaben erzeugen. Diese Ausgaben können Eingabe für einen nächsten Prozess sein. (Pipemechanismus). Wartet ein Prozess auf eine Eingabe, so ist er blockiert und kann nicht weiter arbeiten, bis die Eingabe wieder zur Verfügung steht. Diese Warten ist im Problem begründet. Eine andere Art von Suspendierung eines Prozesses kann dann eintreten, wenn das Betriebssystem dem Prozess den zugeteilten Prozessor entzieht, weil die Zeitscheibe für aktuellen Prozess abgelaufen ist. Es gibt i.r. mehr Prozesse als Prozessoren. Die zeitliche Reihenfolge, wann einem Prozess ein Prozessor zugeteilt wird, wird mit Hilfe eines Scheduling Algorithmus (Scheduler) berechnet. Es gibt im Prinzip die folgenden 3 Prozesszustände: 1. laufend oder auch rechnend (running): Prozess benutzt CPU 2. blockiert oder auch schlafend (sleeping): wartet auf externes Ereignis (z.b. warten auf Eingaben) 3. (rechen)bereit (ready): lauffähig; vom Betriebssystem gestoppt, während ein anderer Prozess läuft Seite 6(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

7 (1) Prozess blockiert (z.b..: wartet er auf Eingabe) (2) Zeitscheibe ist abgelaufen: Scheduler wählt einen anderen Prozess (3) Der Prozess wurde von Scheduler als nächster ausgewählt. (4) Externes Ereignis tritt ein: der Prozess ist wieder bereit Die gesamte Unterbrechungsbehandlung, das Erzeugen und Abbrechen von Prozessen wird durch den Prozess-Scheduler verborgen. Daneben gibt es noch weitere Prozesszustände, die Übergangszustände sind, oder Fehlercharakter haben: 4. dead: Der Prozess wurde beendet, er belegt jedoch noch Speicherplatz. 5. trace: Der Prozess wurde von außen angehalten, üblicherweise durch einen Debugger. 6. wait: Der Prozess wartet auf ein Ereignis, üblicherweise eine Benutzereingabe 7. uninterruptible sleep: Der Prozess wartet auf ein Ereignis, üblicherweise Hardware. Tritt dieses Ereignis ein, ohne dass der anfragende Prozess es entgegennimmt, so kann das System instabil werden. 8. zombie: Der Prozess wurde beendet und aus dem Arbeitsspeicher gelöscht, aber noch nicht aus der Prozessliste entfernt Prozess Switch Grundsätzlich gilt, dass eine CPU eines Rechners ihre Rechenzeit allen laufenden Prozessen zur Verfügung stellen muss, dazu ist es notwendig von Prozess zu Prozess umzuschalten. Auslöser für das Umschalten ist immer ein systemcall oder ein Interrupt, das Umschalten mit dem Wechsel des Prozesskontextes, immer aktuell gehalten im PCB, erledigt das Betriebssystem. Seite 7(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

8 1.1.5 Schematische Interruptbehandlung schematische Interruptbehandlung, um ein Gerät zu aktivieren - Die Information über Prozesse, der sogenannte Prozesskontext, werden in der Prozesstabelle gesammelt, z.b. Befehlszähler, Stackzeiger, Speicherzuordnung, Status der geöffneten Dateien. - Bei einer Unterbrechung durch ein Gerät (z.b. die Festplatte oder ein Diskettenlaufwerk) wird die Adresse für die Prozedur zur Interruptbehandlung (InterruptServiceRoutine) aus einem gerätespezifischen Unterbrechungsvektor entnommen. - Die Unterbrechungshardware speichert den Befehlszähler, das Programmstatuswort und einige Registerinhalte. - Es erfolgt eine Verzweigung zur entsprechenden Adresse des Interrupts; ab jetzt geht es auf Softwareebene weiter - Die ISR sichert die Registerinhalte in der Prozesstabelle und speichert einen Verweis auf den entsprechenden Tabelleneintrag. - An den Bedienprozess des Geräts ergeht eine Botschaft; er wechselt vom Zustand "blockiert" in den Zustand "bereit". - Der Scheduler entscheidet, ob der Bedienprozess oder (beispielsweise) der unterbrochene Benutzerprozess aktiv wird. - Die Unterbrechungsverarbeitung stellt den Kontext des ausgewählten Prozesses her und startet ihn Prozess Modus In modernen Rechnersystemen werden zwei Prozess Modi unterschieden.: - der Kernel-Modus und - der Benutzermodus. Der Betriebssystemkern (Kernel) läuft im so genannten privilegierten Modus (auch Kernel-Modus ) und hat dort Zugriff auf den kompletten Befehlssatz der CPU und den gesamten Speicherbereich. Aus Sicherheitsgründen laufen normale Benutzerprozesse dagegen in den unprivilegierten Modus (auch Benutzer-Modus), in denen ihnen weniger Befehle zur Verfügung stehen und sie daher gewisse Aufgaben nicht direkt erledigen können. So muss also ein Benutzerprozess öfters mal den Prozessmodus wechseln, um im privilegierten Modus bestimmte Aufgaben erledigen zu können. Dies geschieht bei Unix im Prinzip wie folgt: Der Linux-Kernel hat eine Liste aller ihm bekannten Systemaufrufe, die so genannte SystemcallTabelle. Ein Systemaufruf, auch Systemcall, ist bei Betriebssystemen eine von Benutzerprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen, wie etwa das Lesen einer Datei. Dabei wird die Kontrolle vom Programm an das Betriebssystem übergeben. Jedem Systemaufruf wird dort eine eindeutige Nummer und eine kernelinterne Funktion zugeordnet, die für die eigentliche Erledigung der erforderlichen Aufgaben zuständig ist. Um einen Systemcall durchzuführen, wird die Nummer des gewünschten Aufrufs in einem Register der CPU gespeichert und anschließend wird der Softwareinterrupt 128 ausgelöst. Argumente an den Systemcall werden ebenfalls in CPU-Registern abgelegt. Dieser Softwareinterrupt (auch Exceptioninterrupt genannt) unterbricht die Programmausführung im Benutzer-Modus und erzwingt das Ausführen eines Exception-Handlers im Kernel-Modus. Dadurch wird der Kontextwechsel von einem unprivilegierten Modus gewährleistet. Der aufgerufene Exception-Handler ist eine Funktion im Kernel, die das entsprechende Register ausliest und dann, sofern sich darin eine gültige Systemaufruf-Nummer befindet, die entsprechende Kernel-Funktion aus der systemcalltable mit den in den weiteren Registern liegenden Argumenten aufruft. Nach der Überprüfung der Argumente werden letztlich die aus dem Benutzer-Modus angeforderten Aufgaben vom Kernel erledigt. Kehrt diese Funktion zurück, wird auch der Exception-Handler erfolgreich abgeschlossen und der normale Programmfluss im unprivilegierten Modus fortgesetzt. Seite 8(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

9 1.1.7 Prozesserzeugung Beispiel: Kindprozessgenerierung mit fork(), danach führen Vater und Kindprozess andere Kommandos aus, dabei ist die Reihenfolge der Ausführung nicht gesichert. Dies wird realisiert mit Programmüberlagerung, mit dem Befehl exec() dabei wird kein neuer Prozess erzeugt. #include <sys/types.h> #include <unistd.h> #include <stdio.h> int main (void) pid_t pid; char *args[4]; /* Kindprozess generieren */ if ((pid = fork()) < 0) perror("fork"); exit(1); if (pid == 0) /* dieser Code wird im Kindprozess ausgefuehrt */ execl("/bin/echo", "-e", "\t hallo heute ist", 0); /* wenn exec ok, keine Fehlermeldung */ perror("exec"); exit(2); /* dieser Code wird im Vaterprozess ausgefuehrt */ args[0] = "datum"; args[1] = "+%A, der %d. %B %Y"; //%A Wochentag - %d day - %B Monatsname %Y year args[2] = 0; execv("/bin/date", args); /* wenn exec ok, keine Fehlermeldung */ perror("exec"); exit(3); return 0; Seite 9(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

10 1.2 Prozess-Scheduling In einem Mehrbenutzersystem sollten viele Prozesse parallel laufen, aber nur eine beschränkte Anzahl von CPUs steht zur Verfügung, deshalb muss das Betriebssystem entscheiden welcher Prozessor welches Programm, wie lange und wann ausführt. Diese Entscheidung trifft ein Prozess-Scheduler mit Hilfe eines Scheduling Algorithmus. Vereinfacht: Bei einem Ein-Prozessor-System läuft zu jeder Zeit nur ein Prozess, der Rest wartet auf das Scheduling in Scheduling_queues: - die ready-queue Prozesse im Status bereit oder in - device-queues Prozesse, die auf I/O warten (pro Gerät eine Queue) Mögliche Anlässe zum Scheduling sind: - Prozess wechselt vom Zustand laufend nach blockiert (z.b.: Warten auf I/O beginnt) - Prozess wechselt vom Zustand laufend nach bereit (z.b.: wegen timer interrupt) - Prozess wechselt vom Zustand blockiert nach bereit (z.b.: Warten auf I/O beendet) - Prozess wird beendet Kriterien für Scheduling - Algorithmen: Gerechtigkeit Effizienz Antwortzeiten Verweilzeit (jeder Prozess bekommt gerechten Anteil an CPU) (CPU ist immer ausgelastet) (minimale Antwortzeit für interaktive Benutzung) (minimale Wartezeit für Stapelbenutzer) Durchsatz (maximale Anzahl bearbeiteter Aufträge pro Zeiteinheit) Die Anforderungen sind teilweise konträr (Dialogprozesse kontra Batchprozesse), das folgende Problem tritt also auf: Das Prozessverhalten ist nicht vorhersagbar, ein Prozess kann z.b. eine hohe CPU-Belegung oder viele I/O Wartezeiten haben. Lösung: Deshalb muss ein Prozess auch gewechselt werden können, wenn er nicht selbst blockiert. Dazu wird üblicherweise eine Zeitscheibe (timeslice) genutzt, die festlegt, wie lange ein Prozess den Prozessor benutzen darf. Ein Prozess wandert während seines Lebenszyklus durch die verschiedensten Zustandsund Gerätequeues. Ein Scheduler bestimmt den Zeitpunkt und die Queue aus der der nächste Prozess dem Prozessor zugeteilt wird. Unterschieden wird das Preemptive (unterbrechendes und bevorrechtigtes) Scheduling bei Dialogsystemen, wo laufende Prozesse zu jeder Zeit von einer zentralen Instanz, dem Scheduler, der Prozessor entzogen werden kann. Nonpreemptive (nicht unterbrechendes) Scheduling bei Batchsystemen, wo rechnende Prozesse nicht verdrängt werden Für allgemeine Systeme sind Nonpreemptive Scheduling Algorithmen nicht tauglich, da konkurrierende Benutzer am System sind. Bei Preemptive Scheduling Algorithmen kann ein Prozess jederzeit unterbrochen werden. Dadurch können zeitkritische Abläufe auftreten, z.b. wenn auf gemeinsamen Speicher zugegriffen wird. Semaphoren, Ereigniszähler, Monitore, Nachrichtenaustausch oder ähnliche Methoden werden vom Betriebssystem genutzt, um solche zeitkritischen Abläufe zu kontrollieren. Wichtige Größen in der Ablaufplanung sind t: die benötigte Ausführungszeit, also die reine Rechenzeit eines Prozessstücks T: gesamte oder reale Ausführungszeit inklusive Wartezeiten, die Verweilzeit W: gesamte benötigte Wartezeit(en), bis ein Prozess die gesamte benötigte CPU-Zeit bekommen hat P: Priorität Q: Zeitquantum Seite 10(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

11 1.2.1 First Come, First Serve Scheduling Das First Come, First Serve Scheduling ist der einfachste und bekannteste nonpreemptive Scheduling Algorithmus, der auch unter dem Namen First - In First - Out bekannt ist. Das Prinzip ist, der zuerst ankommende Prozess, wird auch als erster abgearbeitet. Realisiert wird dieser Algorithmus mit Hilfe einer FIFO-Warteschlange: Einfügen am Ende einer Warteschlange, Entnehmen am Anfang der Warteschlange. Angenommene Prozesssituation: Prozessname CPU-Bursts (Rechenzeiten) A 24 B 3 C 3 Ankünfte in der Reihenfolge: A, B und C Wartezeit A=0 B=24 C=27 reale Ausführungszeit A=24 B=27 C=30 damit ergibt sich eine mittlere Wartezeit von 17 und eine mittlere reale Ausführungszeit von 27 Ankünfte in der Reihenfolge: C, B und A Wartezeit C=0 B=3 A=6 reale Ausführungszeit C=3 B=6 A=30 damit ergibt sich eine mittlere Wartezeit von 3 und eine mittlere reale Ausführungszeit von 13 Nachteile: - starres Verfahren, die mittlere Wartezeit wird z.b. nicht minimiert - ungünstig bei einseitiger Prozessprofilierung: z.b. ein rechenintensiver Prozess und viele I/O Prozesse Shortest Job First Aus den Überlegungen zu FIFO ergibt sich der Scheduling Algorithmus Shortest Job First. Dieses Scheduling ist für Batch-Jobs geeignet, bei denen die Ausführungszeiten bekannt sind. Prinzip: Wenn mehrere Jobs in einer Warteschlange sind, dann nimmt der Scheduler den Job mit der kürzesten Ausführungszeit zuerst. Beispiel: In der Warteschlange sind die Jobs mit den Rechenzeiten A=8 B=6 C=4 und D=2 In SJF Reihenfolge: Jobreihenfolge Verweilzeit D 2 C 6 B 12 A 20 Mittlere Verweilzeit 10 Wenn die Jobs mit der kürzesten Ausführungszeit immer als erstes bearbeitet werden, ergibt sich eine minimale durchschnittliche Verweilzeit Notwendige Voraussetzung: alle Aufträge müssen gleichzeitig bekannt sein Seite 11(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

12 1.2.3 Round-Robin-Scheduling Das Round-Robin-Scheduling ist der älteste, am weitesten verbreitete, einfachste und fairste Scheduling Algorithmus. Prinzip jeder Prozess ist gleichwichtig: Jeder Prozess erhält ein bestimmtes Quantum (ein Zeitintervall) zum Rechnen Ein Prozess wird gewechselt, wenn: er am Ende des Quantums noch läuft er blockiert er terminiert Einreihung eines abgelösten Prozesses ans Ende der Prozessliste LaufenderProzess LaufenderProzess A B - C - D - E Dann: B - C - D - E - A RoundRobin Zeitquantum=2 Prozess Rechenzeit Verweilzeit Wartezeit A B C D Summe Durchschnitt(Rechenzeit): 9 Durchschnitt(Verweilzeit): 26,5 Durchschnitt(Wartezeit): 17,5 Problem: Wie groß ist ein optimales Quantum? Beispiel: Umschaltzeit = 5 ms Verwaltungszeit bei jedem Schalten: z.b. Sichern Prozesskontext Quantum = 20 ms insgesamt 25 ms 20 % CPU-Zeit für Administration, also ineffektive CPU Auslastung Umschaltzeit = 5 ms Quantum = 500 ms insgesamt 505 ms nur etwa 1 % CPU-Zeit für Administration, aber hohe Dialogantwortzeiten in diesem Moment => Ein sehr hohes oder ein sehr geringes Quantum sind offensichtlich nicht optimal, deshalb gilt es einen Kompromiss zu finden; ein Kompromiss wäre hier z.b. 100 ms. Seite 12(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

13 1.2.4 Prioritätengesteuertes Scheduling Ein Scheduling, das wichtige und weniger wichtige Prozesse kennt. Jeder Prozess erhält eine Priorität. Der Prozess mit der höchsten Priorität wird aktiviert. Am Ende einer Zeitscheibe oder nach einer sonstigen Unterbrechung wird u. U. die Priorität erniedrigt, da sonst immer nur die Prozesse mit anfangs hoher Priorität laufen und Prozesse mit anfangs niedriger Priorität u.u. nie zum Rechnen kommen Statische Zuordnung Prozessen können von der Administration nach der Wichtigkeit statisch Prioritäten zugeordnet werden z.b. Prioritäten nach Hierarchien (je höher der Auftraggeber in der Hierarchie steht, desto höher die Priorität seiner Prozesse) Prioritäten nach Auftragskosten (je höher das Entgelt für die Rechnernutzung, desto höher die Priorität der Prozesse) Dynamische Zuordnung Prozessen können vom System selbst unter Berücksichtigung des I/O-Anteils dynamisch Prioritäten zugeordnet werden z.b. Ziel: Jobs mit hohem I/O-Anteil erhalten eine hohe Priorität, damit sie ihre wenigen CPU-Aktivitäten sofort erledigen können Algorithmus: P = Q/f mit P=Priorität, Q=Quantum, f=anteil im letzten Quantum beanspruchter CPU-Zeit, der Prozess mit der höchsten Priorität bekommt das nächste Quantum, wird für mehrere Prozesse die gleiche Priorität berechnet, wird FIFO angewendet Beispiel1: Beispiel2: Quantum=100ms; beanspruchte CPU-Zeit im letzten Quantum=2ms => Priorität=50 (nicht viel von CPU verbraucht, weil er auf I/O gewartet hat => hohe Priorität) Quantum=100ms; beanspruchte CPU-Zeit im letzten Quantum=50ms => Priorität=2 (viel von CPU verbraucht, weil wenig auf I/O gewartet hat => niedrige Priorität) Sei folgende Prozesssituation gegeben: Beteiligt sind 4 Prozesse A, B, C, D mit den Anfangsprioritäten 50, 40, 30, 20, das Quantum sei 60 ms, die jeweiligen f=anteile der im letzten Quantum beanspruchten CPU ist gemäß der folgenden Tabelle bekannt: f 1 f 2 f 3 f(a) = 20ms 2ms und 5ms f(b) = 5ms 10ms und 10ms f(c) = 20ms 5ms und 5ms f(d) = 5ms 5ms und 5ms die Prioritäten P werden nach 4 Quanten neu berechnet, die Reihenfolge R der Prozessausführungen ergibt sich dann wie folgt: Prozess P a R a f 1 P 1 R 1 f 2 P 2 R 2 f 3 P 3 R 3 A B C D Prioritätsklassen Zusätzlich kann man Prozesse in Prioritätsklassen gruppieren und innerhalb der Klassen Round-Robin anwenden. Solange Prozesse der höchsten Prioritätsklasse da sind, werden sie zuerst ausgeführt. Dann erst Prozesse der nächste Klasse. Warteschlangen: Prioritätsklasse 4 Prioritätsklasse 3 Prioritätsklasse 2 Prioritätsklasse 1 lauffähige Prozesse ProzessN-1---ProzessN---ProzessN+1 rechenbereite Priorität ProzessM-1---ProzessM---ProzessM+1---ProzessM+2 ProzessR-1---ProzessR---ProzessR+1 ProzessQ-1---ProzessQ---ProzessQ+1 niedrigste Priorität Seite 13(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

14 Problem: bei statischen Prioritätsklassen verhungern die unteren Klassen, deshalb müssen Prioritäten von Zeit zu Zeit angepasst werden Mehrere Quantenwarteschlangen Für CPU-intensive Prozesse ist besser ein großes Quantum auf einmal als viele kleine, da somit die Anzahl der Kontextwechsel auf und von der Platte verringert wird. Diese Tatsache berücksichtigt der folgende Prioritätscheduler. Prinzip: Vorteil: Einteilung in Prioritätsklassen mit unterschiedlicher Quantenanzahl : Prozesse der höchsten Klasse erhalten nur ein Quantum, der zweithöchsten zwei Quanten, dann 4, 16 usw. Wenn die entsprechenden Quanten eines Prozesses in einer Prioritätsklasse abgelaufen sind, der Prozess aber noch nicht terminiert ist, wird der Prozess in eine niedrigere Klasse eingestuft und bekommt damit bei der nächsten Zuteilung mehr CPU. Je weiter der Prozess in untere Prioritätsklassen rutscht, umso seltener kommt er dran, bekommt aber dann mehr CPU. Reduziert für CPU-intensive Prozesse die Kontextwechsel und hält die CPU für kurze, interaktive Prozesse frei. Problem: I/O Prozesse werden bevorzugt Möglich: bei Return-Taste wieder in höchste Prioritätsklasse, da vermutet wird, dass der Prozess jetzt interaktiv wird. Ein Problem entsteht, wenn die User das herausfinden A-priori-Scheduling Beim A-priori-Scheduling wird dem Benutzer ein Versprechen über seine Performance gemacht, nämlich darauf zu achten, dass bei n Benutzern jedem Benutzer 1/n der Prozessorzeit zukommt Prinzip: Steuere Prioritäten nach der realen Anzahl der Benutzer und der verbrauchten Prozessorzeit je Benutzer. Die Zeit, die jedem zusteht, kann leicht berechnet werden: Zeit seit Sitzungsbeginn (Wartedauer) geteilt durch n (Anzahl Benutzer). Dann bekommt immer jener Benutzer den Prozessor, der am wenigsten seiner zustehenden Prozessorzeit verbraucht hat. Beispiel: n angemeldete User; jeder hat Anspruch auf 1/n der CPU-Kapazität System benötigt: Wie lange ist er schon angemeldet? Wie viel CPU-Zeit hat der Benutzer seit der Anmeldung verbraucht? Wartedauer Anspruch = n verbrauchte_ Zeit verbrauchte_ Zeit Verhältnis = = n* Anspruch Wartedauer Bei einem Verhältnis von 0,5 hat der Benutzer nur die Hälfte seiner Anspruchszeit verbraucht. Bei einem Verhältnis von 2 hat ein Prozess doppelt soviel verbraucht, wie ihm zusteht. Der Prozess mit dem kleinsten Verhältnis erhält die CPU, oder anders ausgedrückt, er hat die höchste Priorität und wird solange ausgeführt, bis es einen anderen Benutzer gibt, der ein kleineres Verhältnis hat. A = Anspruch W = Wartedauer V = Verhältnis F = verbrauchte CPU_Zeit Seite 14(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

15 Sei folgende Prozesssituation gegeben: Beteiligt sind 3 Prozesse A, B, C mit der Anfangswartedauer 3000ms, 4000ms und 6000ms, ein Quantum habe 500ms, die jeweiligen F=Anteile der im jeweiligen Quantum verbrauchten CPU ist gemäß der folgenden Tabelle bekannt: F 1 F 2 F 3 F(A) = 200ms 50ms und 300ms F(B) = 50ms 300ms und 200ms F(C) = 300ms 200ms und 50ms Prozess A Prozess B Prozess C W A F A V A W B F B V B W C F C V C , , , , , , , , , , , , , , , , , ,18 die Quantenzuteilung geschieht also für die Prozesse in der folgenden Prozesreihenfolge: B C A A B C Zweistufiger Scheduler Zweistufiges Scheduling berücksichtigt die Tatsache, dass Prozesse ausgelagert sein können. Es gibt also Prozesse im Hauptspeicher als auch Prozesse, die ausgelagert sind auf Platten. Problem Einige Prozesse müssen auf der Platte ausgelagert bleiben, da in der Regel der Hauptspeicher zu klein ist. Ein/Auslagerung auf Platte ist viel langsamer als ein Tausch von im Hauptspeicher residenten Prozessen Prinzip: verwende globalen und lokalen Scheduler lokaler: verwaltet die Prozesse im Hauptspeicher globaler: vertauscht hin und wieder Prozesse aus dem Hauptspeicher mit Prozessen auf der Platte Kriterien für globalen Scheduler: Zeitspanne, seit ein Prozess ein/ausgelagert wurde CPU-Zeit, die ein Prozess hatte Wie groß ist der Prozess? Welche Priorität hat er? Seite 15(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

16 1.2.8 Prozess-Scheduling unter UNIX Schedulingstrategie: Jeder Prozess hat beim Start eine hohe Priorität und darf in einer festen Zeitscheibe laufen. Prozesse, die in ihrer Zeitscheibe laufen, verringern kontinuierlich ihre Priorität. Prozesse, die die CPU freiwillig abgeben, behalten ihre Priorität. Die Priorität von inaktiven Prozessen, die aber laufen könnten, werden erhöht. Prozesse mit kurzen CPU - Zeiten und langen I/O - Zeiten werden bevorzugt, d.h. CPU - intensive Prozesse werden benachteiligt. Prioritäten: User priority: Kernel priority: Wertebereich: Wert bezieht sich auf die Priorität im User - Mode Wert bezieht sich auf die Priorität im Kernel - Mode 0-127, wobei einem niedrigen Wert eine hohe Priorität entspricht Der Kernel ordnet jedem Prozess, der gerade in den Schlaf gelegt wird, eine feste, mit der Ursache des Schlafens in Bezug stehende Priorität zu. Zur Verwaltung aller Prozesse gibt es ein System von Queues, in denen alle lauffähigen Prozesse geführt werden. Prozessscheduling: Multilevel - Feedback - Queues: Auswahl des Prozesses, der als nächstes laufen soll. - Scheduler durchsucht alle run - queues, von der höchsten bis zur niedrigsten Priorität und wählt den ersten Prozess aus der run - queue mit der höchsten Priorität - Round Robin RR in den run - queues bei Prozessen gleicher Priorität - Wenn ein Prozess, der gerade nicht läuft, eine höhere Priorität erreicht, als der Prozess, der gerade läuft, schaltet das System auf diesen um, falls Quantum abgelaufen ist - Die Priorität ändert sich während seiner Lebensdauer die Prozesse wandern zwischen den queues - Die Zeitgeberroutine berichtigt im Abstand von jeweils einer Sekunde die Priorität aller Prozesse im User - Mode und veranlasst anschließend den Kern den Scheduler erneut zu durchlaufen - Die Berechnung der Priorität geschieht mit Hilfe der folgenden Formel: Seite 16(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

17 Priority = ( recent CPU - Usage / 2 ) + base priority + nice-value Alterung (CPUa) nice value: Steuerparameter ( User beeinflussbar: nice-kommando ) nice dient dazu, zeitunkritische Programme mit kleinerer Priorität zu starten. Programme werden standardmäßig mit dem nice-wert 0 gestartet. In der Regel dürfen Anwender ihre Programme nur mit reduzierter Priorität starten, ausgenommen der Benutzer root. base priority: CPUa: Beispiel: Basiswert, den ein Prozess im User - Mode anfangs erhält Zähler, der nach jedem Zeitgebertick um 1 erhöht wird und am Ende eines Zyklus halbiert wird 3 Prozesse A,B,C werden gleichzeitig mit der base priority 60 erzeugt. Zeitgeber unterbricht 60 mal pro Sekunde. Das Zeitquantum sei 1sec. Die Prozesse geben keine Systemaufrufe ab und keine anderen Prozesse sind am laufen. Nach einem Quantum wird die Priorität berechnet. Zeit/Quantum A B C Priority CPUa Priority CPUa Priority CPUa Seite 17(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

18 1.3 Prozesskommunikation Zeitkritische Abläufe Prozesse müssen miteinander kommunizieren können, z.b. beim pipe wird die Ausgabe des einen Prozesses zur Eingabe des anderen Prozesses. Zusammenarbeitende Prozesse können für die Kommunikation auch gemeinsamen Speicher benutzen. Die Kommunikation zwischen den Prozessen wird Interprozesskommunikation (IPC) genannt. Mit IPC können z.b. Prozessabläufe synchronisiert werden. Wenn gleichzeitig laufende Prozesse auf gemeinsamen Speicher zugreifen, dann sind Überlappungen möglich. Verarbeitungsergebnis ist von der zeitlichen Reihenfolge abhängig. 1. Beispiel: Variablenbenutzung x=3 Prozess A A1: X=X*X A2: Write(X) Prozess B B1: X=X/2 B2: Write(X) Ergebnis ist von der Verarbeitungsreihenfolge abhängig: A1-A2-B1-B2 A=9 B=4,5 A1-B1-A2-B2 A=4,5 B=4,5 Ergebnisse hängen von der Geschwindigkeit der Prozesse ab. 2. Beispiel: Druckerspooler Wenn ein Prozess eine Datei drucken will, so wird der Name in den Spoolkatalog geschrieben. Der Druckerdämon prüft diesen Katalog, veranlasst das Drucken der Datei und entfernt danach den Dateinamen. Spoolerkatalog: frei,., frei, name(1),..., name(n), frei,., frei out = Nummer der nächsten Druckdatei in = Nummer des nächsten freien Platzes in Katalog Die Variablen in und out sind in einer Datei, dem Spoolkatalog enthalten. Auf den Spoolkatalog können alle Prozesse zugreifen. Angenommen die Prozesse A und B versuchen eine A- bzw. B-Datei auszudrucken, dann müssen sie die folgenden Verwaltungsschritte ausführen: 1. Schritt: Prozess holt sich ersten freien Eintrag in Spoolkatalog aus der Variablen in 2. Schritt: speichert den Namen der zu druckenden Datei an diesen Platz 3. Schritt: nächster freier Platz wird um 1 erhöhen 4. Schritt: und sichern nach in Zwei Prozesse A, B Prozess A A1: frei_a:=in A2: name(frei_a):=a-datei A3: frei_a:=frei_a+1 A4: in:=frei_a Prozess B B1: frei_b=in B2: name(frei_b):=b-datei B3: frei_b:=frei_b+1 B4: in:=frei_b Ein möglicher Prozessablauf: und der Spoolprozess bemerkt keinen Fehler A1-B1-B2-B3-B4-A2-A3-A4 Nur die A-Datei wird in den Spooler-Katalog aufgenommen => die B-Datei wird..nicht gedruckt Was passiert denn bei anderen Prozessabläufen? z.b.: A1-A2-B1-B2-B3-A3-A4-B4 Seite 18(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

19 Definition: 1. Eine Situation, in der mehrere Prozesse auf gemeinsame Daten lesend und/oder schreibend zugreifen, wobei die Ergebnisse vom Prozessfortschritt abhängen, heißen Wettkampfbedingungen. 2. Ein kritischer Abschnitt eines Programms ist jene Menge von Instruktionen bei der das Ergebnis ihrer Ausführung auf unvorhersehbare Weise variieren kann. Dies passiert, wenn auf Variable, auf die in diesem kritischen Abschnitt zugegriffen wird, mehreren parallel laufenden Prozessen verfügbar sind und verändert werden. daher müssen bei der Abarbeitung paralleler Prozesse die folgenden Ziele realisiert werden: - Vermeidung von Wettkampfbedingungen - Synchronisation bei der Behandlung von kritischen Abschnitten durch eine schlüssige Methode: gegenseitiger Ausschluss: d.h. höchstens ein Prozess kann zu einer Zeit auf gemeinsame Informationen zugreifen. Vier Bedingungen für effiziente Zusammenarbeit paralleler Prozesse: 1. Prozesse dürfen sich nicht gleichzeitig in ihren kritischen Abschnitten befinden 2. kein Prozess außerhalb seines kritischen Abschnittes darf andere Prozesse blockieren 3. kein Prozess darf gezwungen sein unbegrenzt lange auf ein Betriebsmittel, ein Signal oder auf den Eintritt in seinen kritischen Abschnitt zu warten 4. es gibt keine Annahmen über die relativen Geschwindigkeiten der Prozesse oder die Anzahl der Prozessoren Lösungsansätze Daher muss gefragt werden, wie kann gewährleistet werden, dass zu einer Zeit nur ein Prozess einen kritischen Abschnitt durchläuft? Dazu einige Ideen: Sperren der Interrupts Ein Prozessor wechselt nur dann zu einem anderen Prozess, wenn ein Interrupt es verlangt. Würde man alle Interrupts sperren, so kann kein anderer Prozess gemeinsame Datenbereiche mehr überschreiben. Wäre eine mögliche Lösung. Ist aber nicht so gut, weil - was passiert, wenn ein Benutzerprozess die Interruptsperre veranlasst und die Sperre von ihm nicht mehr aufgehoben wird => Benutzerprozess legt System lahm - mehrere Prozessoren da sind => die anderen Prozessoren können weiterhin gemeinsame Daten schreiben - der Betriebssystemkern sperrt auch Unterbrechungen => Kern kann jederzeit Benutzerprozess beeinflussen diese Methode des gegenseitigen Ausschlusses ist daher nicht praktikabel Verwendung einer Synchronisationsvariablen Idee: globale Variable steuert das Ausführen des kritischen Bereiches. Besitzt sie den Wert 1 wird nichts getan, bei 0 darf der eigene kritische Bereich durchlaufen werden. globale Variablen: lock; Vorbelegung: lock:=0; Seite 19(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

20 Prozess A A1: while TRUE do begin A2: while lock=1 do A3: Wait_Read(lock); A4: lock:=1; A5: kritischer Abschnitt(A); A6: lock:=0; A7: Prozess B B1: while TRUE do begin B2: while lock=1 do B3: Wait_Read(lock); B4: lock:=1; B5: kritischer Abschnitt(B); B6: lock:=0; B7: Problem: Reihenfolge z.b. A1-A2-B1-B2-B4-B5-A4-A5... Nachdem der erste Prozess die Variable liest und feststellt, dass sie den Wert 0 hat, kann ein anderer Prozess die Verarbeitung bekommen, bevor der erste Prozess die Variable auf 1 gesetzt hat. A findet lock=0, B kommt zur Ausführung, B setzt lock:=1, A setzt lock:=1 beide gehen in den kritischen Abschnitt Abwechseln durch Aktives Warten Idee: Eine globale Variable turn, initialisiert mit 0 bestimmt, welcher Prozess in seinen kritischen Bereich eintreten darf. Falls der erste Prozess 0 kriegt, führt er seinen kritischen Abschnitt aus. Der parallele Prozess stellt ebenfalls fest turn=0, er muss warten, solange bis die Variable turn vom ersten Prozess den Wert 1 erhalten hat - das aktive Warten auf den bestimmten Wert einer Variablen. globale Variablen: turn; Vorbelegung: turn:=0; Prozess A A1: while TRUE do begin A2: while turn<>0 do A3: Wait_Read (turn); A4: kritischerabschnitt(a); A5: turn:=1; A6: NichtkritischerAbs(A); A7: Prozess B B1: while TRUE do begin B2: while turn<>1 do B3: Wait_Read (turn); B4: kritischerabschnitt(b); B5: turn:=0; B6: NichtkritischerAbs(B); B7: turn wird von A und B verschieden interpretiert; deshalb keine Reihenfolge-Probleme mehr. dennoch Probleme: A geht durch das Programm, B geht schnell durch den kritischen Abschnitt und setzt turn auf 0. A geht wieder in den nichtkritischen Abschnitt von A, turn=1. A verlässt den nichtkritischen Abschnitt und kommt nicht in den kritischen Abschnitt, da B noch in seinem nicht kritischen Bereich ist und noch nicht turn=0 gesetzt wurde A kann nicht in seinen kritischen Abschnitt, solange B in seinem nichtkritischen Abschnitt ist. Prozess A: I I kritabs nkritabs kritabs nkritabs Warten auf 0 für kritabs turn=1 turn=0 turn=1 Prozess B: I Warten auf 1 kritabs nkritabs Problem: lange nicht kritische Abschnitte Funktioniert nur, wenn beide Prozesse etwa gleich schnell sind. Zusätzlich "Aktives Warten" (ständige Abfrage (turn<>0)) kostet CPU-Zeit. Seite 20(47) Fachhochschule Frankfurt (Main) 7. Prozesse.doc

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

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

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

Ü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

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

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

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. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

Mehr

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

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

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

Mehr

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

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

13. Übung mit Musterlösung

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

Mehr

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

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

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

Von Prozessen und Prozessoren (Prozess-Management)

Von Prozessen und Prozessoren (Prozess-Management) Von Prozessen und Prozessoren (Prozess-Management) V1.1 Technische Berufsschule Zürich IT Seite 1 Aus dem Geschichtsbuch: Grossrechner IBM 7094, 1965: Online- und Batchbetrieb IBM-Lochkarte Technische

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

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

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

Mehr

6.Vorlesung Betriebssysteme Hochschule Mannheim

6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun 6.Vorlesung Betriebssysteme Hochschule Mannheim SS2011 1/40 6.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun Karlsruher Institut für Technologie Steinbuch Centre for Computing

Mehr

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet.

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Einführung in UNIX 1 7 Prozesse Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Auf einem UNIX-Rechner können hundert oder

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57 3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das

Mehr

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

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

Mehr

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 3 Betriebssystem Überwacher

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

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

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

Mehr

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2

Kap. 2. Prozesse. Version vom 05.10.2009. Kap. 2 - Inhalt. Definition Prozeßzustände Threads Scheduling Beispiele. Folie 2 Kap. 2 Prozesse Version vom 05.10.2009 Kap. 2 - Inhalt Definition Prozeßzustände Threads Scheduling Beispiele Folie 2 Definition I - Woraus bestehen Prozesse? Prozeß ist ein Programm in seiner Ausführung,

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

Embedded-Linux-Seminare. Linux als Betriebssystem

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

Mehr

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

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

Mehr

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

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

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

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

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Prozesse und Threads. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Prozesse und Threads Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Ziel: Gleichzeitiges, kontrolliertes Ausführen von Programmen auf einem Rechner Welche Mechanismen sind

Mehr

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht Betriebssysteme Grundlagen Quellen: InSy Folien zum Thema Unix/Linux Wikipedia Das ist nur die Oberfläche... 1 Ziele 2 Übersicht Wissen, was man unter einem Betriebssystem versteht Was Was ist istein einbetriebssystem?

Mehr

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

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

Mehr

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Vorlesung: Betriebssysteme

Vorlesung: Betriebssysteme Vorlesung: Betriebssysteme T. Fahringer Institut für f r Informatik Universität t Innsbruck Thomas.Fahringer@uibk.ac.at 1 Kapitel I Betriebssysteme: Aufgaben und Überblick 2 Was ist ein Betriebssystem

Mehr

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation 09.05.15 1 Literatur [6-1] http://php.net/manual/de/book.sockets.php [6-2] http://de.wikipedia.org/wiki/socket_(software) [6-3] http://php.net/manual/de/book.network.php

Mehr

(Prüfungs-)Aufgaben zum Thema Scheduling

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

Mehr

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

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

Mehr

Technische Informa/k II

Technische Informa/k II Technische Informa/k II Prof. Dr. Bernd Freisleben Sommersemester 2013 Vorlesung zur Klausurvorbereitung Folie 00-2 Organisatorisches Klausur: Dienstag, 16.07.13, 12:00-14:00 Uhr im Hörsaal 00/0070 Zugelassene

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

Kapitel 2: Betriebssysteme

Kapitel 2: Betriebssysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Vorlesung: Dr. Peer Kröger Übungen:

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

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

Parallelverarbeitung mit Ruby

Parallelverarbeitung mit Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Parallelverarbeitung mit Ruby Prozess-Ebene Multithreading 04.12.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden 1 Fachhochschule

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

7.Vorlesung Betriebssysteme Hochschule Mannheim

7.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun 7.Vorlesung Betriebssysteme Hochschule Mannheim SS2011 1/70 7.Vorlesung Betriebssysteme Hochschule Mannheim Christian Baun Karlsruher Institut für Technologie Steinbuch Centre for Computing

Mehr

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

POSIX Echtzeit: Kernel 2.6 und Preempt-RT POSIX Echtzeit: Kernel 2.6 und Preempt-RT Slide 1 - http://www.pengutronix.de - 21.01.2007 Echtzeit-Systemplanung Wenn das zeitliche Verhalten spezifiziert ist, kann auch spezifiziert werden, welche Applikationsteile

Mehr

4 Aufruf des Servers, Kommandozeilen-Optionen

4 Aufruf des Servers, Kommandozeilen-Optionen 4 Aufruf des Servers, Kommandozeilen-Optionen 4.1 Einführung In diesem Abschnitt lernen Sie verschiedene Methoden zum Start des Apache-Servers, einige der wichtigsten Kommandozeilen-Optionen und Methoden

Mehr

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg Prozess-Monitoring auf CPU-Takt Ebene Einleitung Unser Arbeitsgebiet: ALICE Teilchenphysik Experiment Cluster

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

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

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

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

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Prozesse 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/ss2011/bs/

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

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 7 Th Letschert FH Gießen-Friedberg Ressourcen Verwaltung passive Ressourcen aktive Ressourcen

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: SAS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

1. Prozesse & Threads (10 Punkte)

1. Prozesse & Threads (10 Punkte) Fachbereich Informatik/Mathematik Seite 1/9 1. Prozesse & Threads (10 Punkte) a) Erklären Sie den Unterschied zwischen Prozessen und Threads. [4 P.] Der wesentliche Unterschied ist, dass Prozesse über

Mehr

Kapitel III. Prozesse. Prozessverwaltung. Was ist ein Prozess?

Kapitel III. Prozesse. Prozessverwaltung. Was ist ein Prozess? Kapitel III Prozessverwaltung 1 Was ist ein Prozess? Prozesse ein exekutierendes Programm (aktive Einheit) ein Prozess benötigt Ressourcen: CPU-Zeiten, Speicher, Files, I/O Systeme Betriebssystem ist verantwortlich

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5.

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. www.heimetli.ch. Heimetli Software AG HSWModule........ Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. August 2005 Inhaltsverzeichnis Was ist HSWModule?... 1 Installation...

Mehr

Betriebssysteme Theorie

Betriebssysteme Theorie Betriebssysteme Theorie SS 2011 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D (05.05.2011) Synchronisation 05.05.2011 Betriebssysteme-Theorie, Hans-Georg Eßer Folie D-1 Einführung (1) Es gibt

Mehr

B1 Stapelspeicher (stack)

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

Mehr

Betriebssystem-basierte Virtualisierung

Betriebssystem-basierte Virtualisierung Betriebssystem-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Betriebssystem-basierte Virtualisierung

Mehr

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung Zusammenfassung Kapitel 4 Dateiverwaltung 1 Datei logisch zusammengehörende Daten i.d.r. permanent

Mehr

MySQL Community Server 5.1 Installationsbeispiel

MySQL Community Server 5.1 Installationsbeispiel MySQL Community Server 5.1 Installationsbeispiel Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der untermstrich-datenbank

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

Kurs 1575, Musterlösung zur Winter Klausur 2002/03

Kurs 1575, Musterlösung zur Winter Klausur 2002/03 1 0 Kurs 1575, Musterlösung zur Klausur im Wintersemester 2002/03 1 Kurs 1575, Musterlösung zur Winter Klausur 2002/03 Aufgabe 1: Warteschlange Wer kennt das Problem nicht? Sie wollen noch schnell im Supermarkt

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Systemsoftware Praktikum

Systemsoftware Praktikum Praktikum Client-Server-Projekt : Textretrievalsystem Übungsziel: Prozesserzeugung und Interprozesskommunikation unter UNIX / Linux Softwareerstellung im Team In dem Projekt soll eine Client - Server Architektur

Mehr

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

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

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

1.6 Anwendung/Prozesse, Umleitung und Verkettung

1.6 Anwendung/Prozesse, Umleitung und Verkettung 1.6 Anwendung/e, Umleitung und Verkettung 1.6.1 e Ein (englisch task) ist ein im Lauf befindliches Programm. Auf einem Linux-System erhält man mit den Befehlen ps (process list), top (table of processes)

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

Kernel Programmierung unter Linux. Programmierung von Kernelmodulen. Referent Klaus Ruhwinkel

Kernel Programmierung unter Linux. Programmierung von Kernelmodulen. Referent Klaus Ruhwinkel Kernel Programmierung unter Linux Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Das Betriebssystem Aufbau des Betriebssystem: Es besteht aus den Betriebssystemkern und den sonstigen Betriebssystemkomponenten

Mehr

Timi2 Stick parametrieren

Timi2 Stick parametrieren Timi2 Stick parametrieren Das Timi2-Stick ist bei Auslieferung bereits so vorkonfiguriert, dass alle lesbaren Ausweise/Transponder an dem Gerät buchen können. Der mitgelieferte USB-Stick ist bereits für

Mehr

Ausgewählte Themen. In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies. Inhalt. 1. Fehlerbehandlung...

Ausgewählte Themen. In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies. Inhalt. 1. Fehlerbehandlung... Ausgewählte Themen In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies Inhalt 1. Fehlerbehandlung... 2 2. Dämonen... 5 3. Zombies...16 Unix für Entwickler: AusgewaehlteThemen

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

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

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

Mehr

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

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 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Kapitel I Betriebssysteme: Aufgaben und Überblick Betriebssysteme: VO Betriebssysteme 2

Kapitel I Betriebssysteme: Aufgaben und Überblick Betriebssysteme: VO Betriebssysteme 2 Vorlesung: Betriebssysteme T. Fahringer Institut für Informatik Universität Innsbruck VO Betriebssysteme Thomas.Fahringer@uibk.ac.at 1 Kapitel I Betriebssysteme: Aufgaben und Überblick VO Betriebssysteme

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

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

Handbuch zum Mensurenprogramm

Handbuch zum Mensurenprogramm Handbuch zum Mensurenprogramm Von Reiner Janke March-Buchheim (bei Freiburg) Reiner Janke 1996 Was kann das Programm? Das Programm schreibt Mensurlisten (Weiten-, Längen-, Aufschnittmensuren etc.) von

Mehr

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012. 4) Task-Verwaltung

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep 2012. 4) Task-Verwaltung Inhalte Eigenschaften von Rechenprozessen (Tasks) Taskübergänge (process control block) Multitasking (kooperativ und präemptiv) Scheduler Erzeugen, Starten und Beenden von Tasks Taskzustände (running,

Mehr

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Betriebssysteme eine Einführung. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Betriebssysteme eine Einführung Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Betriebssystem Was ist das? Peter Puschner, TU Wien Vorlesung Betriebssysteme, Einführung; WS

Mehr