2. Prozesse. 2.1 Prozesse als zentrales. Überblick. Prozess (process, task) ist definiert durch. Prozess ist. Ergebnisse. Interne. Daten.

Größe: px
Ab Seite anzeigen:

Download "2. Prozesse. 2.1 Prozesse als zentrales. Überblick. Prozess (process, task) ist definiert durch. Prozess ist. Ergebnisse. Interne. Daten."

Transkript

1 2. Prozesse Überblick 2.1 Prozesse als zentrales Konzept 2.2 Grundoperationen mit Prozessen 2.3 Thread-Modell 2.4 Beispiel für Threadbibliotheken: Pthreads 2.5 Zuteilungsverfahren 2.6 Prozesse und Scheduling in Linux 2.7 Prozesse und Scheduling in Windows O. Kao Betriebssysteme Prozesse als zentrales Konzept Prozesse = Zentrales BS Konzept Eingabeparameter Programm Dynamische Objekte, die sequentielle Aktivitäten in einem System repräsentieren Prozess = in Ausführung befindliches Programm Prozess (process, task) ist definiert durch Adressraum Verarbeitungsvorschrift (Programm) Aktivitätsträger, der die Verarbeitungsvorschrift ausführt, in der Regel als Thread bezeichnet Prozess ist Interne Virtueller Rechner spezialisiert zur Daten Ausführung eines bestimmten Programms Beschreibungseinheit für System- und Anwendungssoftware Ergebnisse O. Kao Betriebssysteme 2-2 2

2 Prozesszustandsmodell Einfachstes Prozessmodell umfasst zwei Zustände Laufend (running): Prozess wird aktuell auf dem realen Prozessor ausgeführt Nicht-laufend (not-running): Prozess wird aus verschiedenen Gründen nicht ausgeführt Add Nicht-Laufend Dispatchen Laufend Exit Suspendieren Notwendige Komponenten zur Realisierung eines Prozesszustandsmodells Datenstrukturen zur Beschreibung des aktuellen Prozesszustands Mechanismus zur Speicherung der Informationen / Abrufen der gespeicherten Informationen Warteschlange zur Verwaltung wartender Prozesse O. Kao Betriebssysteme Warteschlange und Umschaltmechanismus Dispatcher BS-Komponente zur Verwaltung des realen Prozessors, zuständig für Verdrängung von Prozessen und zum Laden neuer Prozesse Zusammenarbeit mit dem Scheduler, der für die Auswahl des nächsten Prozesses zuständig ist Modellierung Warteschlange mit Pointern auf Datenstrukturen Add Dispatchen Exit CPU Suspendieren Verhalten des Dispatchers Dem vom Scheduler ausgewählten Prozess wird die CPU zugeordnet Dispatcher lädt die notwendigen Informationen Prozessunterbrechung Prozess wird in die Warteschlange einsortiert Prozess terminiert Prozess verlässt das System O. Kao Betriebssysteme 2-4 4

3 Datenstruktur Prozesskontrollblock (Process Control Block, PCB) Datenstruktur zur Implementierung von Prozessen in BS Verwaltungstechnischer Repräsentant des Prozesses in der Maschine Enthält ein Abbild des Registersatzes des realen Prozessors, das den aktuellen Prozesszustand definiert Generell umfasst PCB 3 Kategorien von Informationen 1. Prozessidentifikation Eindeutiger numerischer Identifikator des Prozesses (ProcessID), Identifikator des Elternprozesses, Identifikation des Benutzers 2. Prozesszustandsinformationen Bereich für die aktuellen Registerwerte Zustandsvariable (Prozesszustand, d.h. Kontroll-/Statusregister) Menge der Register mit Statusinformationen wird oft im sog. Programmstatuswort (PSW) gespeichert O. Kao Betriebssysteme Prozesskontrollinformationen in PCB Fortsetzung der Informationen in PCB 3. Prozesskontrollinformationen dienen dem BS, aktive Prozesse zu kontrollieren und koordinieren Prozesszustand (laufend, blockiert, bereit, ) Information über angeforderte/zugeteilte Betriebsmittel, insbesondere E/A-Status-Informationen Liste der belegten E/A-Geräte Liste der geöffneten Dateien, Eltern-Kind-Relationen Scheduling-bezogene Zustandsinformationen wie Priorität, Wartezeit, zugeteilter Prozessor in MIMD-Systemen, Signale oder Nachrichten zwischen unabhängigen Prozessen Ereignisse, auf die gewartet wird, Accounting Informationen: Angaben über genutzte CPU-Zeit, reale Zeit seit Aktivierung, Zeitlimits, O. Kao Betriebssysteme 2-6 6

4 Beispiel: Anzeige von Statusinformationen mit PS -aux USER PID %CPU %MEM VSZ RSS STAT START TIME COMMAND root S Aug10 1:05 init [5] --init root SW Aug10 0:02 [keventd] root S Aug10 3:47 syslogd -m 0 root S Aug10 0:02 /usr/sbin/automou daemon S Aug10 0:00 /usr/sbin/atd root S Aug10 0:16 /usr/sbin/sshd root S Aug10 0:00 xinetd -stayalive root S Aug10 3:46 sendmail: accepti root S Aug10 0:39 crond xfs S Aug10 0:23 xfs -droppriv -da root S Aug10 0:00 /sbin/mingetty tt root SN Aug10 0:00 in.identd -e -n root S Aug10 0:00 /usr/bin/kdm -nod nscd S Aug31 1:06 /usr/sbin/nscd jomu SN 16:24 0:22 java -Xmx256MB -c jomu RN 16:25 157:32 java -Xmx256MB -c jomu SN 16:25 0:15 java -Xmx256MB -c root S 17:05 0:00 /usr/sbin/sshd jomu S 17:05 0:00 /usr/sbin/sshd jomu S 17:05 0:00 -tcsh okao S 19:25 0:00 -tcsh okao R 19:25 0:00 ps -aux O. Kao Betriebssysteme Verwaltung der PCBs Zustand Zeiger ProcessID Dynamische verkettete Liste Restliche Informationen P1 P6 P4 P3 P2 P5 NULL PCB PCB-Baumstruktur P1 Array von PCBs P2 P3 P1 P3 P2 P4 P5 P6 P4 P5 P6 O. Kao Betriebssysteme 2-8 8

5 Effizienzsteigerung durch Teilmengenbildung Aufspaltung der Prozessliste in Teillisten von PCBs mit einem identischen Attribut, z.b. bzgl. Prozesszustand (siehe Grafik) oder Priorität Bereite Prozesse Start Ende P1 P9 P6 P19 P13 P5 NULL Blockierte Prozesse (E/A-Gerät 1) Start Ende P3 P11 P4 NULL Blockierte Prozesse (E/A-Gerät 2) Start Ende P2 P7 P10 P8 P12 NULL O. Kao Betriebssysteme O. Kao Betriebssysteme 2-10 Grad der Multiprogrammierung Auslastung der CPU Annahmen Ein Prozess verbringt einen Anteil p seiner Zeit mit Warten auf E/A- Operationen Wahrscheinlichkeit p n, dass n Prozesse gleichzeitig auf Ende der E/A- Operationen warten Ausnutzung der CPU: A = 1 p n n = Grad der Multiprogrammierung (Degree of Multiprogramming) Modellierung der Multiprogrammierung 10

6 O. Kao Betriebssysteme 2-11 Prozess Erzeugen Blockiert Suspendiert Prozess Beenden Bereit Suspendiert Swap-out Swap-in Blockiert Swap-out Swap-in Ready Beendet Block Retire Resign Bereit Laufend Assign Add Initiiert Prozess Umschalten Erweitertes Zustandsmodell (Grafische Darstellung) 11 Erweitertes Modell für Prozesszustände Ein Prozess kann sich abhängig vom aktuellen Status in unterschiedlichen Zuständen befinden Initiiert: Prozess erzeugt, hat aber noch keine Betriebsmittel und bewirbt sich daher noch nicht um den Prozessor Bereit (Ready): Der Prozess hat alle notwendigen Betriebsmittel und wartet auf die Zuteilung des/eines Prozessors Rechnend, Laufend (Running): Der Prozess ist im Besitz des physikalischen Prozessors und wird aktuell ausgeführt Blockiert, Wartend (Waiting): Der Prozess wartet auf die Erfüllung einer Bedingung, z.b. Beendigung einer E/A-Operation und bewirbt sich derzeit nicht um den/einen Prozessor Bereit suspendiert: Der Prozess hat alle Betriebsmittel außer CPU und Hauptspeicher Blockiert suspendiert: Dem Prozess fehlt CPU, Speicher und wartet auf das Ende mindestens einer blockierenden Operation Beendet (Terminated): Zugeteilte Betriebsmittel freigegeben O. Kao Betriebssysteme

7 Zustandsübergänge Add Neu erzeugter Prozess kommt in Klasse bereit Assign Kontextwechsel und Prozessorzuteilung Block Aufruf einer blockierenden E/A-Operation oder Synchronisation Prozessor wird entzogen Ready Blockierende Operation beendet, Prozess wartet auf erneute Prozessorzuteilung Resign Entzug des Prozessors, z.b. aufgrund eines Timer- Interrupts Zeitscheibe abgelaufen Swap-Out Prozess (blockiert, bereit) wird ausgelagert bzw. Hauptspeicher wird erst gar nicht zugeteilt Swap-In Prozessübertragung aus sekundärem in Hauptspeicher Retire Prozess beendet, alle Ressourcen wieder freigegeben O. Kao Betriebssysteme Grundoperationen mit Prozessen Statische Betriebssysteme Alle Prozesse sind a-priori bekannt und definiert Prozesse werden für eine bestimmte Anwendung realisiert Beschreibende Datenstrukturen (PCB) werden von einem Konfigurationsprogramm einmalig erzeugt Dynamische Betriebssysteme Neue Prozesse können während der Laufzeit hinzukommen bzw. terminieren Dies wird mit folgenden Kernoperationen realisiert create_process(id, initialvalues) // Anlegen des Prozesskontrollblocks // Initialisierung des Prozesses delete_process(id, finalvalues) // Rückgabe der Endwerte // Löschen des Kontrollblocks O. Kao Betriebssysteme

8 Ereignisse zur Erzeugung von Prozessen Vier Ereignisse zur Erzeugung von Prozessen 1. Initialisierung des Systems: Meistens Hintergrundprozesse (Daemons) wie Terminaldienst, Mailserver, Webserver, 2. Prozesserzeugung durch andere Prozesse: Aufteilung des Prozesses in mehrere nebenläufig oder parallel auszuführende Aktivitäten, die als eigene Prozesse initialisiert werden 3. Benutzerbefehle zum Starten eines Prozesses (Kommandozeile oder grafische Oberfläche) 4. Initialisierung einer Stapelverarbeitung (bei Mainframes) Technischer Ablauf in allen Fällen gleich Bestimmter Prozess analysiert die Eingabe (z.b. von Benutzern oder Konfigurationsdateien) Prozess sendet einen Systemaufruf zur Prozesserzeugung und teilt dem BS mit, welches Programm darin ausgeführt werden soll O. Kao Betriebssysteme Einzelne Schritte der Prozessgenerierung Folgende Schritte werden i.a. bei einem Prozess durchlaufen Erzeugung von ProcessID und Eintrag in die primäre Prozesstabelle Zuordnung von Speicherplatz Falls Informationen über Speicherbedarf mitgeliefert OK Sonst werden Defaultwerte abhängig vom Prozesstyp eingesetzt Initialisierung vom entsprechenden PCB Eintrag der ProcessID und der Eltern-ProcessID Alle Zustandsinformationen mit Nullen belegt Programmzähler und Stapelzeiger werden auf Anfangsadresse gesetzt In Abhängigkeit der angeforderten Ressourcen und Zuteilungsstatus wird der Prozesszustand festgelegt Priorität auf Default-Wert, üblicherweise sehr niedrig Setzen der erforderlichen Verknüpfungen, z.b. Integration des PCB in die Schedulingwarteschlangen O. Kao Betriebssysteme

9 Prozesserzeugung bei UNIX und Windows Systemaufruf bei UNIX ist fork Exakte Kopie des aufrufenden Prozesses wird erzeugt mit gleichen Umgebungsvariablen, Speicherabbild, geöffneten Dateien Üblicherweise ruft der Kindsprozess einen Befehl wie execve auf, um das Speicherabbild zu wechseln und ein neues Programm auszuführen Systemaufruf bei Windows ist CreateProcess mit 10 Parametern wie auszuführendes Programm, Parameter, Sicherheitseinstellungen, Priorität, Spezifikation über die zu erzeugenden Fenster, Zeiger auf Datenstruktur für die Prozessdaten In beiden Systemen haben Vater- und Kindprozess getrennte Adressräume Speicheränderungen z.b. vom Kindprozess sind für den Vater nicht sichtbar Kommunikation über gemeinsame Dateien allerdings möglich O. Kao Betriebssysteme Manpage zu execve (Ausschnitt) BEZEICHNUNG execve - zum Ausführen von Programmen SYNTAX #include <unistd.h> int execve (const char *dateiname, const char * argv[], const char *envp[]); BESCHREIBUNG execve() führt das Programm aus, auf das dateiname zeigt. dateiname muss entweder ein binäres ausführbares Programm oder ein Shell-Skript ( ) sein. execve() kehrt beim Erfolg nicht zurück und der Text, die Daten und den Stapel des aufrufenden Prozesses wird durch das geladene Programm überschrieben. Das aufgerufene Programm erbt die PID des aufrufenden Prozesses, sowie jeden offenen Dateideskriptor, der zur Ausführung nicht geschlossen wurde. Signale bezüglich des elterlichen Prozesses werden gelöscht. Falls das aktuelle Programm ptraced wird, wird nach erfolgreichem execve() ein SIGTRAP gesendet. RÜCKGABEWERT Bei Erfolg kehrt execve() nicht zurück, bei Fehlern wird -1 zurückgegeben und errno wird dem entsprechend gesetzt. O. Kao Betriebssysteme

10 Prozesshierarchien Erzeugen die Kindprozesse weitere Prozesse (Kindkind prozesse), so entsteht eine Prozesshierarchie UNIX: Vaterprozess und Kindprozesse bilden eine Familie, d.h. Signale werden an alle Prozesse in der Familie verteilt und jeder Prozess entscheidet über Annahme und Verwertung Bei UNIX-Initialisierung wird init gestartet und erzeugt die Terminals (Anzahl definiert in Konfigurationsdatei) Nach Anmeldung erzeugen die Terminals shell-prozesse Shells erzeugen neue Prozesse bei Eingabe von Befehlen, Alle Prozesse gehören zu einem Baum mit init als Wurzel Windows: kein Konzept einer Prozesshierarchie Vaterprozess kann Kindprozess über ein Handle steuern Allerdings darf der Handle an andere Prozesse weitergegeben Prozesshierarchie wird außer Kraft gesetzt O. Kao Betriebssysteme Typische Prozesshierarchie bei UNIX O. Kao Betriebssysteme

11 Prozessumschaltung (Process Switching) Aktuell aktiver Prozess wird aus dem Zustand laufend verdrängt Bereiter Prozess wechselt in den Zustand Laufend Notwendige Aktionen Sicherung des alten Kontextes Aktualisierung des PCBs und Einordnung in Warteschlange Laden des Kontextes des neuen Prozesses Aktualisierung des PCBs und der Speicherinformationen Aktualisierung des Kontextes durch Anpassung aller Verknüpfungen Auswahlprozess nahe Umschaltzeitpunkt unter dynamischer Auswertung von z.b. Prozessnummer (zyklisches Umschalten), Fairness, Priorität, O. Kao Betriebssysteme Umschalttechniken Einfachste Umschaltform durch direkten Sprung Umschaltzeitpunkt und -ziel werden in Quellcode einprogrammiert Diese Minimallösung erlaubt effiziente Umschaltvorgänge und wird vor allem bei Realzeitsystemen eingesetzt Allerdings wenig flexibel und nur in Spezialfällen einsetzbar L11 P1 P2 jump L21 L21 L12 jump L22 L22 jump L11 jump L12 Bedingtes Umschalten Im Ablauf eines Prozesses können Situationen auftreten, welche zu einer Blockierung der Prozessausführung führen Eine solche Situation wird durch Bedingungsvariable ausgedruckt Falls die Bedingung erfüllt ist, wird umgeschaltet O. Kao Betriebssysteme

12 Automatisches Umschalten Einfügen von Umschaltstellen ist oft nicht möglich/sinnvoll Automatisches Umschalten Programme unverändert, das Umschalten wird von außen ausgelöst Wecker (Timer): E/A-Gerät mit zwei Funktionen Vorgabe einer Frist, z.b. Länge der Zeitscheibe Initialisierung einer Unterbrechung bei Fristablauf Sofern Unterbrechungen nicht unterbunden, wird beim Signal des Weckers ein automatischer Umschaltvorgang durchgeführt Umschalten im Allgemeinen wesentlich komplexer Unbekannter Umschaltzeitpunkt Merken der Fortsetzstelle Unbekanntes Umschaltziel Auswahl des nächsten Prozesses Überschneidung der benötigten Register, Attribute, Rettung des Kontextes des alten Prozesses und Laden des Kontextes des neuen Prozesses erforderlich O. Kao Betriebssysteme Merken der Fortsetzstelle Vor der Umschaltung wird die Adresse des nächsten auszuführenden Befehls in einer speziellen Variable ni des PCB (next instruction) gespeichert L: SWITCH Store address L in ni in PCB p_run.ni :=L of the running process p_run Jump(p_next.ni) Was passiert, wenn der Prozess ausgelagert und anschließend in einen anderen Speicherbereich geladen wird? Befehlszähler gibt immer eine relative Adresse an Herstellung der Verknüpfung mit dem aktuellen Speicherbereich über Basis-, Index- und ähnliche Register Ermittlung der neuen Position der Fortsetzstelle im Speicher durch Laden des Kontextes und Aktualisierung der Registerwerte O. Kao Betriebssysteme

13 Leerlaufproblem Ist ein Wartezustand vorhanden, so können alle Prozesse in diesen Zustand übergehen Sonderfall bei Prozessumschaltung, da kein Prozess verdrängt werden muss Leerlaufprozess (idle process) Elegante Lösung zur Integration dieses Falls in den bestehenden Mechanismus mit folgenden Eigenschaften Zyklischer Prozess, der nicht angehalten werden darf Geringste Priorität, so dass eine Verdrängung jederzeit möglich ist Beispiele Leere Schleife while (TRUE) { } Dynamischer Stopp Spezialbefehl, der keinen Speicherzugriff durchführt und auf externe Signale reagiert Einlagerung nützlicher Aufgaben wie Prüfungen, Speicherbereinigung, O. Kao Betriebssysteme Moduswechsel (Mode Switching) Die meisten Prozessoren unterscheiden aus Sicherheitsgründen zwischen Systemmodus (Kernmodus): Das BS besitzt die CPU und hat uneingeschränkten Zugriff auf alle Ressourcen Benutzermodus: Prozessor ist einer Anwendung zugeordnet, kritische Zugriffe können gesteuert/gesperrt werden Aktueller Modus wird im Programmstatuswort festgehalten O. Kao Betriebssysteme

14 Moduswechsel (Mode Switching) Übergang Benutzermodus Systemmodus z.b. durch Unterbrechung Sicherung des Kontextes des laufenden Prozesses, vor allem der Informationen, die durch eine Unterbrechungsbehandlung verändert werden können Sprung zum Anfang der Unterbrechungsbehandlungsroutine Änderung des Systemmodus Nach Behandlung der Unterbrechung wird unter Umständen wieder der alte Prozess ausgeführt (Bei Prozesswechsel kommt immer ein neuer Prozess zur Ausführung!) O. Kao Betriebssysteme Prozessbeendigung Normales Beenden (freiwillig) Benutzer beendet Prozess oder Prozess ist abgearbeitet Aufruf von exit() bzw. ExitProcess() Aktion: Freigabe aller Ressourcen, Löschen temporärer Dateien Bedienungsfehler, z.b. falsche Parameter Einfache Programme beenden sich sofort Komplexe Programme fordern zur neuen Parametereingabe auf Schwerwiegender Fehler aufgetreten (Zugriff auf ungültige Adressen, unzulässige Befehle, Division durch 0, ) In einigen BS kann sich der Prozess um das Problem kümmern und die Verarbeitung mit einer Meldung unterbrechen Bei anderen BS terminiert der Prozess evtl. mit einer Fehlerbeschreibung Ein Prozess beendet anderen Prozess (Berechtigung vorausgesetzt) mit Aufrufen wie kill() oder TerminateProcess() O. Kao Betriebssysteme

15 2.3 Thread-Modell Das Prozess-Konzept bietet 2 voneinander unabhängige Einheiten 1. Einheit zur Ressourcenbündelung: ein Prozess verfügt über (Virtuellen) Adressraum Beschreibende Datenstrukturen wie PCB Quelltexte und Daten Weitere Betriebsmittel wie E/A-Geräte, Dateien, Kindprozesse 2. Ausführungseinheit, der der reale Prozessor zugeteilt wird Ausführungsablauf mit einem oder mehreren Programmen Verzahnte Ausführung mit anderen Prozessen Zustände (bereit, laufend, blockiert, terminiert, ) Priorität Bezeichnungen Bündelungseinheit (1): Prozess (Task) Ausführungseinheit (2): Leichtgewichtsprozess (Thread ) O. Kao Betriebssysteme 2-29 (Wiederholung KMS) 29 Definition eines Threads Thread: Teil eines Prozesses mit folgenden Eigenschaften Keine vollständige Prozesstabelle wie der ursprüngliche Prozess Operiert im selben virtuellen und realen Adressraum Entspricht einem separaten Kontrollfluss dieses Prozesses Ein Thread besitzt eine eigene Threadtabelle mit Separatem Befehlszähler Eigenem Code- und Datenteil Register und Stapel (vollständige Verknüpfungsumgebung) Zustand Threads erweitern das Prozessmodell um die Möglichkeit der nebenläufigen Ausführung mehrerer, im hohen Grad voneinander unabhängiger Kontrollflüsse O. Kao Betriebssysteme 2-30 (Wiederholung KMS) 30

16 Zusammenhang Prozesse und Threads Multi-Threaded: mehrere Threads innerhalb eines Prozesses Single-Threaded: ein Thread pro Prozess (klassisches Prozessverständnis) Prozesse Mac OS Ältere UNIX-Versionen Windows NT Solaris Mehrere Prozesse, aber ein Thread/Prozess MS-DOS Ein Prozess, ein Thread Mehrere Prozesse, mehrere Threads/Prozess Ein Prozess, mehrere Threads/Prozess Java run time engine Threads O. Kao Betriebssysteme 2-31 (Wiederholung KMS) 31 Single- vs. Multi-Threaded Prozessmodell Zur Prozessausführung benötigte Daten (Wiederholung KMS) Single Threaded Programm Statische Daten Dynamische Daten Niedrige Adresse Hohe Adresse Multi Threaded Programm Statische Daten Dynamische Daten Stapel 1 Stapel n Komponenten PCB Stapel Laufzeitkeller Adressraum Adressraum Thread Thread CB PCB Stapel Thread Thread CB Stapel Single Threaded Multi Threaded O. Kao Betriebssysteme

17 Realisierung von Multithreading Verarbeitung startet üblicherweise mit einem einzigen Thread Thread_create(): dynamische Erzeugung weiterer Threads Funktionsparameter: auszuführende Prozedur und Startparameter Rückgabewert: Threadidentifikator Thread_yield(): Freiwillige Abgabe der CPU Kein Uhr-Interrupt vorhanden Für die Aufteilung der Rechenzeit zwischen der Threads ist der Entwickler zuständig Synchronisationsaufrufe wie thread_wait() legen eine Ausführungsreihenfolge fest Thread_exit() beendet einzelne Threads Wichtig Threads operieren im selben Adressraum kein Schutz durch das BS Konzepte wie fork() oder der Umgang mit gemeinsamen Datenstrukturen können zu Problemen führen Sorgfältiges und durchdachtes Design notwendig O. Kao Betriebssysteme 2-33 (Wiederholung KMS) 33 Vorteile der multithreaded Programmierung Besseres Antwortverhalten bei interaktiven Anwendungen: Teile der Anwendung können weiter laufen / auf Benutzeranfragen reagieren, obwohl ein Teil durch E/A-Operationen blockiert ist BM-Teilung: Effiziente, flexible Nutzung zugeteilter Ressourcen Zeitersparnis bei grundlegenden Threadoperationen Allokierung von Speicher und anderen BM ist zeitaufwendig Erzeugen und wechseln von Prozessen dauert lange Diese Zeit wird bei Threads durch Ressourcenteilung verkürzt Beispiel Solaris: Prozesserzeugung 30 Mal langsamer als Threaderzeugung, Prozesswechsel 5 Mal langsamer als Threadwechsel Nutzung paralleler Architekturen: Ein-Prozess-Anwendungen laufen auf einer CPU, selbst wenn mehrere CPUs vorhanden sind. Multithreaded Anwendungen nutzen die echte Parallelität aus O. Kao Betriebssysteme 2-34 (Wiederholung KMS) 34

18 O. Kao Betriebssysteme 2-35 (Wiederholung KMS) Threadtypen Grundsätzlich werden Threads aufgeteilt in Kernel-Level-Threads (KL-Threads): realisiert im Kernadressraum User-Level-Threads (UL-Threads): realisiert im Benutzeradressraum Hybride Realisierung sind allerdings auch möglich Realisierung Realisierung im Benutzeradressraum im Kernadressraum 35 Multithreading-Modelle Modelle für hybride Unterstützung von KL- und UL-Threads Zuordnung vieler UL-Threads zu einem KL-Thread (many-to-one) Zuordnung eines UL-Threads zu einem KL-Thread (one-to-one) Zuordnung mehrerer UL- zu mehreren KL-Threads (many-to-many) UL-Threads KL-Threads O. Kao Betriebssysteme 2-36 (Wiederholung KMS) 36

19 2.4 Beispiel für Threadbibliotheken: Pthreads Spezifikation (keine Implementierung!) der Pthreads bezieht sich auf den POSIX Standard API definiiert Verhalten, Implementierung betriebssystemabhängig UL-Thread Bibliothek, keine deutliche Verbindung zu KL-Threads Pthreads üblicherweise beschränkt auf UNIX Systeme Für Windows Systeme sind Sharewarebibliotheken verfügbar Wichtige Elemente pthread.h: Headerfile mit Deklarationen und Definitionen pthread_t handle: Grundlegende Datenstruktur für den zu erstellenden Thread pthread_attr_t attr: Festzulegende Threadattribute (Defaultwerte, wenn nichts angegeben) pthread_func_t thread_func: Auszuführende Funktion arg: Zeiger auf Anwendungsparameter O. Kao Betriebssysteme Verwaltungsroutinen für Pthreads Erzeugen und Starten eines Threads int pthread_create(pthread_t *handle, pthread_attr_t *attr, pthread_func_t *thread_func, pthread_addr_t *arg); Rückgabewert: Null bei erfolgreiche Ausführung; Sonst Fehler Rückgabe des Ergebnisses int pthread_exit(pthread_addr_t *result) Warten auf das Ergebnis an beliebiger Stelle int pthread_join(pthread_t *handle, pthread_addr_t *result); Beendigung (cancel) und Löschung (detach) eines Threads int pthread_cancel(pthread_t *handle); int pthread_detach(pthread_t *handle); Ausschlussoperation, um Unterbrechungen zu unterbinden int pthread_setcancel (int state); O. Kao Betriebssysteme

20 Wechselseitiger Ausschluss Binäre Semaphore mit den Zuständen gesperrt und frei int pthread_mutex_init (pthread_mutex_t *mutex, pthread_mutexattr_t attr); Sperren eines Semaphors int pthread_mutex_lock(pthread_mutex_t *mutex); Testoperation int pthread_mutex_trylock(pthread_mutex_t *mutex); Freigabe eines gesperrten Semaphors int pthread_mutex_unlock(pthread_mutex_t *mutex); Löschen eines Semaphors int pthread_mutex_destroy(pthread_mutex_t *mutex); Analog mit Bedingungsvariablen Formulierung allgemeiner Synchronisationsbedingungen Dient zum längeren Warten, bis eine Bedingung wahr wird O. Kao Betriebssysteme Beispielprogramm #include <pthread.h> int sum; /* globale Variable für alle Threads */ void *runner(void *param); /* Thread */ main(int argc, char *argv[]) { pthread_t handle; pthread_attr_t attr; pthread_attr_init(&attr); /* Aktuelle Attribute */ pthread_create(&handle, &attr, runner, argv[1]); /* Erzeuge Thread */ pthread_join(&handle, NULL); /* Warte bis Thread fertig */ printf( sum=%d\n,sum); } void *runner(void *param) { /* Der Thread bekommt die Kontrolle in dieser Funktion */ int upper=atoi(param); int i; sum = 0; if (upper>0) { for (i=1;i<=upper;i++); sum += i; } pthread_exit(null); /* Thread beendet sich und übergibt die Kontrolle an das Hauptprogramm */ O. Kao Betriebssysteme

21 Threadbibliothek in Solaris 2 Solaris 2 unterstützt KL- und UL-Threads, symmetrische Multiprozessoren (SMP) und Echtzeitscheduling (Pthread API) Erweiterung: Leichtgewichtsprozesse (LWP) als Zwischenstufe zwischen UL- und KL-Threads Zuordnung UL-Threads zum Pool von LWPs (many-to-many) Jeder LWP ist einem KL-Thread zugeordnet (one-to-one) Sind n UL-Threads einem LWP zugeordnet, dann sind n-1 inaktiv (blockiert, wartend für LWP) und nur 1 UL-Thread aktuell rechnend (oder bereit) O. Kao Betriebssysteme Threadbibliothek in Solaris 2 (2) Wichtiges Attribut für die UL-Threads Gebunden an LWP (bound): Permanent bereit oder auf einer dedizierten CPU laufend, wichtig z.b. bei Echtzeitanwendungen Ungebunden (unbound): Zuordnung UL -> LWP erfolgt dynamisch während der Laufzeit (Default-Einstellung) Eigenschaften dieser Lösung Beliebig viele UL-Threads möglich, LWP-Anzahl wird von der Threadbibliothek automatisch bestimmt beste Leistung für die Anwendung Erzeugung, Zuordnung, Scheduling, Löschung von UL-Threads effizient im Benutzerraum durchführbar BS versetzt KL-Threads in Zustand laufend/bereit/blockiert Blockiert ein KL-Thread, so sind auch der LWP und die zugeordneten UL- Threads blockiert Zusätzlicher LWP notwendig, damit bereite UL- Threads dennoch ausgeführt werden können LWPs werden automatisch nach Timeout (üblicherweise 5 Minuten) wegen Inaktivität gelöscht O. Kao Betriebssysteme

22 2.5 Zuteilungsverfahren Grundlegende Zuteilungsaufgaben Koordination und Synchronisation von Prozessen Sicherstellung der Benutzererwartungen Statische und dynamische Zuordnung von Betriebsmitteln Ziele der Strategien zur Betriebsmittelzuteilung Optimierung der Betriebsmittelauslastung Konfliktfreie Zuteilung Zumindest Minimalverfügbarkeit von Betriebsmitteln sicherstellen Typen von Zuteilungsverfahren Long-term Start eines neuen Prozesses } Scheduler Medium-term Erstzuweisung von Hauptspeicher Short-term Zustandswechsel des Prozesses } Dispatcher Koordination der Ein- und Ausgabeaktivitäten Kernaufgabe: Effiziente Zuteilung des Prozessors (Scheduling) O. Kao Betriebssysteme Prozessverhalten Bei fast allen Prozessen wechseln sich Zeiten mit hoher Rechenlast und Zeiten mit hoher Ein- und Ausgabelast ab Unterscheidung Berechnungslastige Prozesse: lange, ununterbrochene Nutzung der CPU, relativ seltene E/A-Phasen E/A-lastige Prozesse: kurze CPU-Nutzungszeiten, häufige E/A-Phasen CPU-Belastung Warten auf E/A Schlüsselfaktoren für Scheduling Länge der CPU-Nutzung in einem Zyklus Verwaltungsoverhead für E/A z.b. bei Festplatten unabhängig von der Größe der gelesenen Daten Schere zwischen Geschwindigkeiten von E/A-Geräten und Prozessorgeschwindigkeiten geht immer weiter auf Scheduling von E/Alastigen Prozessen entscheidend für die Effizienz des Gesamtsystems O. Kao Betriebssysteme

23 O. Kao Betriebssysteme 2-45 Blockiert Suspendiert Bereit Suspendiert Mid-Term-Scheduling Lomg-Term-Scheduling Blockiert Bereit Laufend Short-Term-Scheduling Initiiert Beendet Typen von Zuteilungsverfahren 45 Typen von Zuteilungsverfahren (2) Long-term-Scheduling Verantwortlich für Multiprogramming: je höher die Anzahl nebenläufig ablaufender Prozesse, desto länger die Antwortzeit Aktivierung bei Unter/Überschreitung von CPU-Auslastungsgrenzen Auswahlkriterien zur Initialisierung eines neuen Prozesses Priorität Geschätzte Laufzeit und Prozessverhalten, weitere BM-Anforderungen Mid-term Scheduling Zuständig für die Feinabstimmung des Multiprogramming, hauptsächlich durch Ein- und Auslagerung von Prozessen Aktivierung abhängig von den Speicheranforderungen der Prozesse Short-term Scheduling Direkte Umsetzung des Prozesszustandwechsels Verwaltung von Ereignissen wie Timessignale und E/A-Unterbrechungen Systemaufrufe und Umschalten in privilegierten Modus O. Kao Betriebssysteme

24 Schedulingstrategien Bekannte Strategien FCFS (First Come First Served) LCFS-PR (Last Come First Served Pre-emptive Resume) SJN (Shortest Job Next), SRTN (Shortest Remaining Time Next) PRIO-NP (Priorities Non pre-emptive) Zeitscheibenverfahren (Round Robin) Multilevel-Feedback-Scheduling Anpassung an Ausführungsverhalten (Modifikation der Zeitscheibenlänge) und an Ausführungszeit (Stufenweise Prioritätenreduktion) Vorgehensweise Verdrängte Prozesse kommen in darunterliegender Bereit-Liste Bei blockierenden Operationen oder bei freiwilliger CPU-Abgabe verbleiben die Prozesse in der Warteschlange Bevorzugung E/A-intensiver Anwendungen Zusätzliche Feedback-Mechanismen ermöglichen eine Hochstufung (kürzere Zeitscheibe/höhere Priorität) O. Kao Betriebssysteme Zugang Zugang Zugang Zugang Multilevel-Feedback- Scheduling Warteschlange 1 Zeitscheibe 8 ms CPU Abgang Hohe Priorität Warteschlange 2 Zeitscheibe 16 ms CPU Abgang Warteschlange 3 Abgang Zeitscheibe 32 ms CPU Warteschlange n FCFS CPU Abgang Geringe Priorität O. Kao Betriebssysteme

25 Schedulingbeispiel: Solaris 2 Vier Klassen für prioritätenbasierten Scheduling vorhanden Echtzeit, System, Zeitscheiben (Time Sharing) und Interaktiv Jede Klasse kann über unterschiedliche Schedulingpolicies und Prioritäten verfügen Klasse Zeitscheiben wird nach Multilevel-Feedback verwaltet Klasse Interaktiv benutzt die gleiche Policy wie Zeitscheiben, gewährt aber Anwendungen mit GUI-Ausgabe höhere Prioritäten Klasse System umfasst Prozesse, die in Kernmodus laufen, z.b. der Scheduler und der Paging Daemon Keine Zeitscheiben Prozesse laufen, bis sie blockieren, die CPU freiwillig abgeben oder bis Prozesse höherer Priorität da sind Prioritäten ändern sich nicht Echtzeitprozesse haben die höchste Priorität aller Klassen Konvertierung der Klassenprioritäten in globale Prioritäten durch BS Bei mehrerer Prozessen gleicher Priorität wird nach Round-Robin vorgegangen O. Kao Betriebssysteme Schedulingbeispiel: Solaris 2 (2) Globale Priorität Scheduling- Reihenfolge Klassenspezifische Prioritäten Warteschlangen Höchste Priorität Erster Echtzeit Kernelthreads von Echtzeit-LWPs System Threads für Kerndienste Niedrigste Priorität Letzter Interaktiv, Zeitscheiben Kernelthreads von interaktiven LWPs und LWPs mit Zeitscheiben O. Kao Betriebssysteme 2-

26 Schedulingbeispiel: Solaris 2 (3) Level ts_quantum ts_tqexp ts_lwait ts_slpret O. Kao Betriebssysteme Prozesse und Scheduling unter Linux Unix kennt keine Threads, Realisierung über zusätzliche Bibliotheken wie PThreads Art von Prozessen Idle Task (PID 0) Erzeugung bei Initialisierung des BS für jede CPU Wird als erster Prozess von Hand durch INIT_TASK(tsk)-Makro während der Initialisierung von Linux erzeugt Kernel Threads: Ausführung von Kerndiensten (z.b Init, Pageframe-Swapping, Netzwerk) mit direktem Zugriff auf Kernadressraum und besonderen I/O Privilegien User Task: Klassische Unix Prozesse im Benutzeradressraum Maximale Anzahl von Prozessen nur noch durch Größe des physikalischen Speichers begrenzt (früher: Begrenzung auf 512 Prozesse) O. Kao Betriebssysteme

27 Linux PCB Prozessinformationen werden in der Datenstruktur task_struct abgelegt (eine Struktur pro Prozess) struct task_struct {... pid_t pid; // Prozess-Identifikator volatile long state; // aktueller Prozesszustand volatile long need_resched; // Flag (Scheduler) long counter; // Quantum (Ticks) long nice; // Dynamische Priorität unsigned long policy; // Prioritätsklasse unsigned long rt_priority; // Statische Priorität struct mm_struct *mm, *active_mm; // Adressraum-Verwaltung } O. Kao Betriebssysteme Prozessverwaltung Doppelt verkettete Liste prev_task/next_task sind in task_struct, Init-Task markiert den Listenanfang prev_task init_task next_task Hashtabelle mit Schlüssel basierend auf PID Felder pidhash_next und pidhash_pprev befinden sich in task_struct Key(PID) 0 PID = 66 pidhash_pprev PID = 55 pidhash_next PID = O. Kao Betriebssysteme

28 Zustandsmodell TASK_ZOMBIE TASK_INTERRUPTABLE exit() fork() usleep() TASK_RUNNING ptrace() I/0 TASK_STOPPED TASK_UNINTERRUPTABLE O. Kao Betriebssysteme 2-55 TASK_RUNNING: Prozess befindet sich im Speicher und wird als lauffähig eingestuft. (READY+RUNNING) TASK_INTERRUPTIBLE: Prozess schläft solange, bis er entweder durch ein Signal oder Timer geweckt wird. (WAIT) TASK_UNINTERRUPTIBLE: Prozess schläft solange, bis der blockierte Aufruf beendet wurde. (BLOCKED) TASK_ZOMBIE: Prozess wurde beendet. Der Rückgabewert des Kindprozesses wurde noch nicht vom Vaterprozess empfangen. TASK_STOPPED: Prozess wurde angehalten, zum Beispiel durch Benutzung von ptrace (2). (SUSPENDED) TASK_EXCLUSIV: Prozess wird beim auf-wecken bevorzugt behandelt. 55 Prozesszustände TASK_RUNNING: Prozess im Speicher und lauffähig TASK_INTERRUPTIBLE: Prozess blockiert, bis er entweder durch ein Signal oder Timer geweckt wird (WAIT) TASK_UNINTERRUPTIBLE: Prozess blockiert, bis der blockierende Aufruf beendet wurde (BLOCKED) TASK_ZOMBIE: Prozess beendet, Rückgabewert des Kindprozesses wurde noch nicht vom Vaterprozess empfangen TASK_STOPPED: Prozess wurde angehalten, zum Beispiel durch Benutzung von ptrace (SUSPENDED) TASK_EXCLUSIV: Prozess wird beim Restart bevorzugt behandelt O. Kao Betriebssysteme

29 Scheduling-Verfahren UNIX/Linux-Scheduling basiert auf Multilevel-Feedback-Scheduling Statische und dynamische Prioritäten zur Prozessauswahl Verwaltung der lauffähigen Prozesse in einer Liste (runqueue) Scheduling-Verfahren (policies) SCHED_OTHER: basiert auf PRIO-P, für normale Prozesse Statische Priorität = 20, dynamische Priorität (nice): [-20 19] Verdrängung durch Prozesse mit höherer statischer Priorität Die nicht verbrauchte Zeitscheibe bleibt als Gutachten erhalten SCHED_FIFO: basiert auf FCFS, für Echtzeitprozesse (Real-Time FIFO) Statische Priorität: 1-99, bei gleicher Priorität Wahl des ersten Prozesses Verdrängung durch Prozesse mit höherer statischer Priorität SCHED_RR: basiert auf Round-Robin, für Echtzeitprozesse (Real-Time RR) Statische Priorität: 1-99, bei gleicher statischer Priorität FIFO Nach Ablauf der Zeitscheibe Einordnung ans Ende der runqueue Verdrängung durch Prozesse mit höherer statischer Priorität O. Kao Betriebssysteme Multilevel-Scheduling von Prozessen Statische Priorität Abarbeitungsreihenfolge SCHED_RR oder SCHED_FIFO A B C D E RR FIFO SCHED_OTHER F G PRIO O. Kao Betriebssysteme

30 Funktionsweise des Schedulers Scheduling-Algorithmus in Linux Entferne alle Prozesse aus der Wartschlange runqueue, deren Zustand nicht TASK_RUNNING ist, d.h. die nicht ablaufbereit sind Bewerte jeden lauffähigen Prozess aus der runqueue und wähle den Prozess mit der höchsten Bewertung Wenn alle Zeitkonten (Quantum) der lauffähigen Prozesse (blockierte werden nicht berücksichtigt) abgelaufen sind, dann berechne die Zeitkonten aller Prozesse neu Quantum: Bestimmte Anzahl sog. Uhrticks, üblicherweise 20, wobei ein Uhrtick etwa 10ms beträgt Bestimme den auszuführenden Prozess und rufe Dispatcher auf CPU wird entzogen, wenn Quantum vollständig verbraucht (Quantum=0) Thread blockiert wegen E/A Thread höherer Priorität ist ablaufbereit O. Kao Betriebssysteme Prozessbewertung Bewertung eines Prozesses durch die Funktion goodness(...) 1. Rückgabe 1: Freiwillige Abgabe der CPU 2. Rückgabe 0: Quantum aufgebraucht 3. Rückgabe [1-1000]: Normaler Prozess 4. Rückgabe > 1000: Echtzeitprozess Je größer der Rückgabewert, desto besser ist die Bewertung Berechnung der Funktion goodness() im Fall 3 und 4 Bei normalen Prozessen (Fall 3) Allgemein: Güte = quantum + priorität Gleicher Prozess hat noch Zeit übrig: Güte = quantum + priorität + 1 Gleicher Adressraum wie aktueller Prozess: Güte = quantum + priorität + 1 Bei Echtzeit-Prozessen (Fall 4): Güte = Priorität Neuberechnung: Quantum_neu = Quantum_alt/2+Basispriorität O. Kao Betriebssysteme

31 2.7 Prozesse und Scheduling unter Windows Job: Ansammlung der als Einheit verwalteten Prozessen mit folgenden vererbbaren Eigenschaften Maximale Anzahl von Prozessen im Kontingent Maximale CPU Zeit und Speichernutzung pro Prozess/alle Prozesse im Job Sicherheitseinschränkungen für Prozesse, z.b. keine Superuserrechte Prozess: Container für Ressourcen 4-GB-Adressraum (2 bis 3 GB für Benutzer, Rest für BS) Prozesseigenschaften: PID, mindestens ein Thread, Handle-Tabelle, Vater-Kind-Hierarchie durch Duplizierung/Weitergabe von Handles Threads: Unterstützung vom BS-Kern, z.b. beim Scheduling Fiber: UL-Thread, Verwaltung (Erzeugen, Scheduling) nur im Benutzerraum API-Funktionen wie ConvertThreadToFiber (Fiber erzeugen und starten), CreateFiber (Fiber erzeugen), SwitchToFiber (Fiber starten), Jeder Thread kann mehrere Fiber haben O. Kao Betriebssysteme Fiber Thread Beziehung zwischen Jobs, Prozessen, Threads, Fiber Job Adressraum Prozess Benutzer- Modus Prozess- Handle- Tabelle Kern- Modus O. Kao Betriebssysteme

32 Prioritätstabelle für Scheduling Threads rufen selbst den Scheduler auf Kombination aus Prozess- und Threadpriorität ergibt 42 Werte [0, 31] Systemprioritäten Zuweisung durch Administrator Benutzerprioritäten (Änderung mit API SetThreadPriority) Zeitkritisch Win32-Prozessklassen-Prioritäten Echtzeit Hoch Über normal 15 Normal 15 Unter normal 15 Idle 15 Höchste Win32- Thread- Prioritäten Über normal Normal Unter normal Niedrigste Idle O. Kao Betriebssysteme Arbeitsweise des Scheduling- Algorithmus Verwaltung der Prioritätsliste mit 32 Prioritäten Jeder Eintrag enthält Liste mit allen wartenden Threads der gleichen Priorität Durchlaufen der Liste von Priorität 31 bis Priorität 0 Bei nichtleerem Eintrag führe die Prozesse nach Round-Robin aus Spezielle Threads Null Thread: läuft im Hintergrund, überschreibt Speicherseiten mit Nullen Idle Thread: Läuft, wenn keine anderen Threads inkl. Null Thread aktiv Nullseiten-Thread Nächster ausgeführter Thread Idle Thread Benutzer-Prioritäten System-Prioritäten O. Kao Betriebssysteme

33 Zeitscheibenlänge Zeitscheibenlängen Standardeinstellung: 20ms, Einzelprozessor-Server: 120ms Multiprozessor-Systemen: abhängig von Taktfrequenz Die Einstellungen können um den Faktor 2, 4 oder 6 erhöht werden Kürzere Zeitscheiben bevorzugen interaktive Benutzer Längere Zeitscheiben erfordern weniger Kontextwechsel und sind effizienter Zeitscheibenlänge seit mehr als 10 Jahren unverändert!!! Verringerung der Priorität Verbraucht ein Thread seine gesamte nächste Zeitscheibe, so wird seine Priorität um eine Einheit verringert, solange die aktuelle Priorität höher ist als seine Basispriorität (Variante von Aging) O. Kao Betriebssysteme Strategien zur Verbesserung des Schedulings Prioritätserhöhung bis zur Stufe 15 Nach Beendigung der E/A-Operation wird die Threadpriorität abhängig vom Gerättyp angehoben Auslastung aller E/A-Geräte Nach Freigabe eines Semaphors oder bei eintreffender Nachricht wird die Priorität des deblokierten Threads um 2 Einheiten (Thread gehört zum Vordergrundprozess) bzw. 1 Einheit angehoben, um interaktive Prozesse zu bevorzugen Deaktivierung des Schedulings Systemthread mit niedriger Priorität ist im kritischen Bereich, auf dessen Semaphore auch andere Systemthreads warten Ausschalten des Scheduling bis zum Ende des aktuellen Systemthreads verhindert, dass Systemthreads verhungern Verlängerung der Zeitscheibe Ist ein Fenster im Vordergrund, so erhalten all seine Threads eine längere Zeitscheibe O. Kao Betriebssysteme

Prozesse und Scheduling unter Linux (Kernel 2.4.XX)

Prozesse und Scheduling unter Linux (Kernel 2.4.XX) Prozesse und Scheduling unter Linux (Kernel 2.4.XX) Vorlesung: Dozent: Betriebssysteme Odej Kao Vortragende: Andrè Neubert Alexander Geburzi Überblick 1. Prozesse unter Linux ProcessControlBlock Prozessliste

Mehr

2. Prozesse. 2.1 Prozesse als zentrales Konzept

2. Prozesse. 2.1 Prozesse als zentrales Konzept 2. Prozesse Überblick 2.1 Prozesse als zentrales Konzept 2.2 Grundoperationen mit Prozessen 2.3 Thread-Modell 2.4 Beispiel für Threadbibliotheken: Pthreads 2.5 Zuteilungsverfahren 2.6 Prozesse und Scheduling

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

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

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 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

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

(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

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

Threads Einführung. Zustände von Threads

Threads Einführung. Zustände von Threads Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)

Mehr

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 User-Level Threads: Federgewichtige Prozesse Realisierung von Threads auf Anwendungsebene innerhalb eines Prozesses

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

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

Windows 2000 Scheduler

Windows 2000 Scheduler Windows 2000 Scheduler Konzepte von Betriebssystem Komponenten Friedrich Alexander Universität Erlangen Nürnberg Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Sommersemester 2005 Viktor

Mehr

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller

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

Teil 3: Konzepte von Betriebssystemen

Teil 3: Konzepte von Betriebssystemen Teil 3: Konzepte von Betriebssystemen Inhalt: Einführung Prozesse Speicherverwaltung Virtueller Speicher 1 Definition eines Betriebssystems Was ist ein Betriebssystem? einfache Definition: Als Betriebssystem

Mehr

POSIX-Threads. Aufgabe 9 SP - Ü U10.1

POSIX-Threads. Aufgabe 9 SP - Ü U10.1 U10 10. Übung U10 10. Übung POSIX-Threads Aufgabe 9 U10.1 U10-1 Motivation von Threads U10-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller Adressraum, Rechte, Priorität,...)

Mehr

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 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

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

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

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

Grundlagen der Informatik für Ingenieure I. 5. Prozessverwaltung - Einführung

Grundlagen der Informatik für Ingenieure I. 5. Prozessverwaltung - Einführung Background: 5. Prozessverwaltung - Einführung 5.1 Wichtige Komponenten eines Prozessors 5.2 Betriebsstrategien von Rechensystemen 5.2.1 Aktivitätsträger, Prozesse, Threads 5.2.1.1 Prozesszustände 5.2.1.2

Mehr

Der Scheduler von Windows 2000 Konzepte und Strategien

Der Scheduler von Windows 2000 Konzepte und Strategien Der Scheduler von Windows 2000 Konzepte und Strategien Daniel Lohmann lohmann@informatik.uni-erlangen.de Gliederung 1. Grundbegriffe 2. Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell

Mehr

U8 POSIX-Threads U8 POSIX-Threads

U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads Motivation Thread-Konzepte pthread-api pthread-koordinierung U8.1 U8-1 Motivation von Threads U8-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung

Mehr

U8-1 Motivation von Threads. U8-2 Vergleich von Thread-Konzepten. U8-2 Vergleich von Thread-Konzepten (2) Motivation

U8-1 Motivation von Threads. U8-2 Vergleich von Thread-Konzepten. U8-2 Vergleich von Thread-Konzepten (2) Motivation U8 POSIX-Threads U8 POSIX-Threads U8-1 Motivation von Threads U8-1 Motivation von Threads Motivation Thread-Konzepte UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller Adressraum, Rechte, Priorität,...)

Mehr

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis Einführung Einführung in in Betriebssysteme Betriebssysteme und und Theorie und Praxis Theorie und Praxis Oktober 2006 Oktober 2006 Prof. Dr. G. Hellberg Prof. Dr. G. Hellberg Email: hellberg@drhellberg.de

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Prozesse und Scheduling Windows 2000 Teng Gan Email:teng@upb.de Betriebssysteme WS02/03 Gruppe 3 Universität Paderborn Inhalt 1. Job, Prozess, Thread und Fiber 1.1. Job 1.2. Prozess 1.3. Erzeugung von

Mehr

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

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

Mehr

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

Shared-Memory Programmiermodelle

Shared-Memory Programmiermodelle Shared-Memory Programmiermodelle mehrere, unabhängige Programmsegmente greifen direkt auf gemeinsame Variablen ( shared variables ) zu Prozeßmodell gemäß fork/join Prinzip, z.b. in Unix: fork: Erzeugung

Mehr

Betriebssysteme Kapitel E : Prozesse

Betriebssysteme Kapitel E : Prozesse Betriebssysteme Kapitel E : Prozesse 1 Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2 Hinweis Ein Programm(code) kann

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch? Aufgabe 1: (1) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

Proseminar KVBK : Scheduler unter Linux

Proseminar KVBK : Scheduler unter Linux Proseminar KVBK : Scheduler unter Linux Valderine Kom Kenmegne Valderine Kom Kenmegne 1 Gliederung 1. Einführung 2. Einplanungsstrategien im Betriebsystem 2.1 Ziel der Einplanungsstrategien 2.2 Beispiele

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

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Modul B-PRG Grundlagen der Programmierung 1

Modul B-PRG Grundlagen der Programmierung 1 Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Betriebssysteme, Dateisysteme,Sicherheit V20: Prozesse Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik

Mehr

Prozesse: Prozesskontrollblock, -zustände, -umschaltung

Prozesse: Prozesskontrollblock, -zustände, -umschaltung Prozesse: Prozesskontrollblock, -zustände, -umschaltung Vorweg sollte geklärt werden, was Prozess bedeutet, wenn man im Kontext über Betriebssystemen davon redet Ein Prozess ist ein Programm während der

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

Ü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

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

Markus Klußmann, Amjad Saadeh Institut für Informatik. Pthreads. von Markus Klußmann und Amjad Saadeh. Pthreads

Markus Klußmann, Amjad Saadeh Institut für Informatik. Pthreads. von Markus Klußmann und Amjad Saadeh. Pthreads Markus Klußmann, Amjad Saadeh Institut für Informatik Pthreads von Markus Klußmann und Amjad Saadeh Pthreads Inhalt - Was sind Threads? - Prozess vs. Thread - Kurzer Überblick POSIX - Threads im Betriebssystem

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

> Übung Betriebssysteme Globalübung 3 Michel Steuwer Wintersemester 2012/13

> Übung Betriebssysteme Globalübung 3 Michel Steuwer Wintersemester 2012/13 > Übung Betriebssysteme Globalübung 3 Michel Steuwer Wintersemester 2012/13 Gruppe Parallele und Verteilte Systeme (PVS) Institut für Informatik Westfälische Wilhelms-Universität Münster Hinweise 2 Aufgaben

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

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

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

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

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

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

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

Mehr

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

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces Prozesse und s Begriffe und Konzepte Prozesszustände Kontrollstrukturen des BS Prozesse BS s Peter Puschner 1 Vorlesung Betriebssysteme, Prozesse; WS 05/06 2 Prozess Animated Spirit of a program ausführbares

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

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

Mehr

Der Scheduler von Windows Konzepte und Strategien

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

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes

Mehr

Prozesse and Threads WS 09/10 IAIK 1

Prozesse and Threads WS 09/10 IAIK 1 Prozesse and Threads WS 09/10 IAIK 1 Prozesse Programm in Ausführung Mit einem Prozess verbunden: Adressraum Folge von Speicherstellen auf die der Prozess zugreifen kann Enthält ausführbares Programm,

Mehr

Systemprogrammierung

Systemprogrammierung Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm

Mehr

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme Eine Zusammenstellung aus Prüfungsprotokollen bei Professor Schlageter Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung Betriebssysteme Thomas

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2016/17 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse

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

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

Freispeicherverwaltung

Freispeicherverwaltung Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt

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

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

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

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

Mehr

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

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

Aufgabe 9: recgrep rekursive, parallele Suche (letzte Aufgabe)

Aufgabe 9: recgrep rekursive, parallele Suche (letzte Aufgabe) U6 6. Übung (Mathematik / Technomathematik) U6 6. Übung (Mathematik / Technomathematik) Besprechung Aufgabe 4 (halde) Besprechung Aufgabe 5 (crawl) Besprechung der Mini-Klausur POSIX-Threads Motivation

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

Betriebssystem. Arten von Betriebssystemen. Zweiteilung des Betriebssystems. 5. Kapitel Systemsoftware: Prozesse und Prozesswechsel

Betriebssystem. Arten von Betriebssystemen. Zweiteilung des Betriebssystems. 5. Kapitel Systemsoftware: Prozesse und Prozesswechsel Wintersemester 2016/2017 5 Kapitel Systemsoftware: Prozesse und Prozesswechsel Prof Matthias Werner 5 Professur Betriebssysteme Betriebssystem Das Laden von Programmen ist ein Dienst, der zur Laufzeit

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012

Übung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012 Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)

Mehr

Was ist ein Prozess?

Was ist ein Prozess? Prozesse unter UNIX Definition Was ist ein Prozess? Zeitliche Abfolge von Aktionen Ein Programm, das ausgeführt wird Prozesshierachie Baumstruktur INIT-Prozess ist die Wurzel (pid=1) und wird beim Booten

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie

Mehr

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 8. Prüfung Betriebssysteme. Juni KNr. MNr. Zuname, Vorname Ges.)().)().)().)() Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! Synchronisation mit Semaphoren () Eine Parkgarage

Mehr

5 Kernaufgaben eines Betriebssystems (BS)

5 Kernaufgaben eines Betriebssystems (BS) 5 Kernaufgaben eines Betriebssystems (BS) Betriebssystem ist eine Menge von Programmen, die die Abarbeitung anderer Programme auf einem Rechner steuern und überwachen, insbesondere verwaltet es die Hardware-Ressourcen

Mehr

Grundlagen der Betriebssysteme

Grundlagen der Betriebssysteme Grundlagen der Betriebssysteme [CS2100] Sommersemester 2014 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 4 Prozesse und Nebenläufigkeit

Mehr

RTOS Einführung. Version: Datum: Autor: Werner Dichler

RTOS Einführung. Version: Datum: Autor: Werner Dichler RTOS Einführung Version: 0.0.1 Datum: 20.07.2013 Autor: Werner Dichler Inhalt Inhalt... 2 RTOS... 3 Definition... 3 Anforderungen... 3 Aufgaben... 3 Eigenschaften... 4 Einteilung der Betriebssysteme...

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware

Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, Dr. W. Wörndl, WS 2011/12) Die Bearbeitungsdauer beträgt 90 Minuten. Es sind keine Hilfsmittel zugelassen.

Mehr

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Kapitel III. Prozessverwaltung. VO Betriebssysteme Kapitel III Prozessverwaltung V 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

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme 4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil

Mehr

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

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

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

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

8. Foliensatz Betriebssysteme

8. Foliensatz Betriebssysteme Prof. Dr. Christian Baun 8. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/56 8. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr