Technische Informatik I

Größe: px
Ab Seite anzeigen:

Download "Technische Informatik I"

Transkript

1 Vorlesung A Organisatorisches Sommersemester 24 [CS 21] 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] 1 A 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] 1 1 Dozent für den Teil Betriebssysteme 3 Termine Prof. Dr.-ng. Franz. Hauck Abteilung Verteilte Systeme (Prof. Dr. P. Schulthess) Vorlesung: Mi , H22 (Logik) Do , H22 (Betriebssysteme) hauck@informatik.uni-ulm.de Sprechstunde: Di Uhr, Raum O Übung: Di , H1 an folgenden Tagen: 4. Mai, 11. Mai, 25. Mai, 8. uni, 22. uni, 6. uli, 2. uli 2 Übungsbetreuung Beginn 4. Mai 24, 16. Uhr H1 Tobias Bindhammer bindhammer@vs.informatik.uni-ulm.de Teodora Guenkova-Luy guenkova@vs.informatik.uni-ulm.de Hubert Piontek hubert.piontek@informatik.uni-ulm.de Andreas Schmied schmied@informatik.uni-ulm.de 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] A 2 A 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] 3

2 4 Skript 5 Literatur URL zur Veranstaltung auch über Pinnwand oder Abteilungsseiten erreichbar hier findet man Termine, Folien zum Ausdrucken und Zusatzinformationen A. Tanenbaum: Modern Operating Systems. 2nd Ed. Prentice Hall, 21. Skript Folien der Vorlesung werden im Web zur Verfügung gestellt und können selbst ausgedruckt werden Ausdrucken im Pool ist jedoch nicht gestattet Gutschein und Druck durch uns zum Preis von 5 EUR für den gesamten Foliensatz weitergehende nformationen zum Nachlesen findet man am Besten in der angegebenen Literatur bzw. den angegebenen Webseiten 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] A 4 A 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] 5 6 Ablauf Rückmeldungen und Fragen Geben Sie mir Rückmeldungen über den Stoff. Nur so kann eine gute Vorlesung entstehen. Stellen Sie Fragen! Machen Sie mich auf Fehler aufmerksam! Nutzen Sie außerhalb der Vorlesung die Möglichkeit, elektronische Post zu versenden: hauck@informatik.uni-ulm.de! 22-24, Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-A-Org.fm, ] A 6

3 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache H Einführung in Betriebssysteme Ebene 4 Ebene 3 Ebene 2 Betriebssystem SA (nstruction Set Architecture) Mikroarchitektur Ebene 1 Digitale Logik Ebene Physik , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 1 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 2 2 Was ist ein Betriebssystem? 2 Was ist ein Betriebssystem? (2) DN 443 die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und überwachen. Tanenbaum eine Software-Schicht, die alle Teile des Systems verwaltet und dem Benutzer eine Schnittstelle oder eine virtuelle Maschine anbietet, die einfacher zu verstehen und zu programmieren ist [als die nackte Hardware]. Silberschatz/Galvin ein Programm, das als Vermittler zwischen Rechnernutzer und Rechner-Hardware fungiert. Der Sinn des Betriebssystems ist eine Umgebung bereitzustellen, in der Benutzer bequem und effizient Programme ausführen können. Brinch Hansen der Zweck eines Betriebssystems [liegt] in der Verteilung von Betriebsmitteln auf sich bewerbende Benutzer. Zusammenfassung Software zur Betriebsmittelverwaltung Bereitstellung von Grundkonzepten zur statischen und dynamischen Strukturierung von Programmsystemen , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 3 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 4

4 2.1 Entwicklung der Betriebssysteme 2.1 Entwicklung der Betriebssysteme (2) CPM 8 (Digital Research) Stapelverarbeitung Betriebssystem für Mikroprozessor Wechselpufferbetrieb Spooling (Trennung von Ein-, Ausgabe und Berechnung) 1981 MS/DOS (Microsoft) Durchbruch als Mikroprozessor-Betriebssystem 1964 DOS 36 (BM) allgemeines Betriebssystem mit Mehrprogrammbetrieb 1982 MacOS / Finder (Apple) graphische Oberfläche 1969 Unix (Bell Labs) Betriebssystem für Minicomputer 1985 Netware (Novell) Vernetzung von PCs 1972 MVS (BM) Virtueller Speicher 1986 MS Windows (Microsoft) die graphische Oberfläche für PC , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 5 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] Entwicklung der Betriebssysteme (3) 2.2 Struktur des Betriebssystems 199 Windows NT (Microsoft) echter Multiprogrammbetrieb nun auch auf dem PC 1996 Linux (Linus Thorvald) Open Source Unix Betriebssystem zwischen Anwendung und Hardware Anwendungen Systemanwendung Systemschnittstelle 21 Windows XP (Microsoft) bunter, schneller, besser (?) Betriebssystemkern SW/HW-Schnittstelle Hardware Anwendung Systemsoftware nteraktion Hardware , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 7 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 8

5 2.2 Struktur des Betriebssystems (2) Anwendungen laufen auf Betriebssystem Betriebssystem stellt virtuelle/abstrakte Maschine dar (Programmiermodell) nteraktion mit Betriebssystem über Systemschnittstelle Systemaufrufe (Supervisor Call): Beauftragung des Betriebssystems Systemanwendungen einige Systemdienste häufig als Systemanwendungen realisiert laufen wie Anwendungen, gehören aber zum Betriebssystem z.b. Systemdienste, Dateiserver spezielle Anwendungen z.b. Editoren, Compiler, Konfigurationsprogramme 2.3 Betriebsarten Klassifikation nach Auftragsbearbeitung Stapelverarbeitung (Batch Processing) eine Aufgabe nach der anderen interaktiver Betrieb (nteractive Processing) Rechner reagiert sofort auf Befehle Time-Sharing-Betrieb Rechenzeit wird über mehrere Benutzer oder Programme aufgeteilt Echtzeitbetrieb (Real Time Processing) Rechner reagiert unmittelbar innerhalb vorgegebener Zeitschranken Ein- oder Mehrprogrammbetrieb (Uni-Programming, Multiprogramming) Ein- oder Mehrbenutzerbetrieb (Single User, Multiuser) nteraktion zwischen Anwendungen nur über Betriebssystemkern , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 9 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] Verwaltung von Betriebsmitteln 2.4 Verwaltung von Betriebsmitteln (2) Physikalische Betriebsmittel (Memory) externe Schnittstellen (nterfaces) Virtuelle Betriebsmittel vom Betriebssystem erst geschaffene z.b. Speichersegment, Datei Prozessor (CPU, Central Processing Unit) Ein-, Ausgabegeräte/ Periphere Geräte (/O Devices) Hintergrundspeicher (Secondary Storage) Resultierende Aufgaben Belegung von Betriebsmitteln auf Anforderung Multiplexen von Betriebsmitteln für mehrere Benutzer bzw. Anwendungen Schaffung von Schutzumgebungen gegenseitiger Ausschluss des Betriebsmittelzugriffs Zugriffsberechtigungen Ermöglichen einer koordinierten gemeinsamen Nutzung von Betriebsmitteln, klassifizierbar in aktive, zeitlich aufteilbare (Prozessor) passive, nur exklusiv nutzbare (periphere Geräte, z.b. Drucker u.ä.) passive, räumlich aufteilbare (Speicher, Plattenspeicher u.ä.) Unterstützung bei der Fehlererholung , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 11 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 12

6 2.4 Verwaltung von Betriebsmitteln (3) 2.5 Programmiermodelle Typische Einzelkomponenten des Betriebssystems Betriebsystem realisiert ein Programmiermodell Verwaltung der Ein-, Ausgabegeräte Programmiermodell im Kleinen durch Programmiersprache geprägt Gerätetreiber Programmiermodell im Großen durch Betriebssystem geprägt Speicherverwaltung Anwendungs-, Prozessverwaltung große und/oder verteilte Anwendungen bestehen aus vielen kooperierenden Programmen Dateisystem Programmiermodell des Betriebssystems Systemsteuerung abstrahiert von konkreter Hardware und Hardwarekonfigurationen Kommandosprache Shell (Kommandointerpreter) grafische Benutzeroberfläche virtuelle/abstrakte Maschine begriffliche Basis zur Strukturierung von Programmsystemen und ihrer Ablaufsteuerung Komponenten, z.b. Programme, Tasks, Prozesse Ablaufsteuerung (Starten und Beenden von Programmen) nteraktionen, z.b. Aufrufe, Benachrichtigung, Datenströme Konfiguration , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 13 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 14 3 Hardware-Unterstützung 3.1 Prozessor Effiziente Betriebssysteme Wird im Laufe der Vorlesung genauer definiert Unterstützung durch Hardware Prozessor Memory-Management-Unit intelligente /O-Bausteine usw. Vorabinformation digitales Schaltwerk enthält Register für Daten und ähnliches Programmzähler (Speicheradresse des nächsten Befehls im Speicher) führt einen Befehl (nstruktion) nach dem anderen aus Programmzähler wird inkrementiert (außer bei Sprüngen) , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 15 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 16

7 3.2 Betriebsmodus des Prozessors 3.3 Externe Unterbrechungen Moderner Prozessor arbeitet in einem von mindestens zwei Modi Benutzermodus (User Mode) eingeschränkter Befehlssatz privilegierter Modus (Supervisor Mode) erlaubt Ausführung privilegierter Befehle Konfigurationsänderungen des Prozessors Moduswechsel spezielle Ein-, Ausgabebefehle Modus wird meist als Bit in speziellem Register repräsentiert (CCR, Condition Code Register) Supervisor-Flag S (z.b. 1 = priv. Modus, = Benutzermodus) Bit kann nur im privilegierten Modus verändert werden Unterbrechungen von außen (External nterrupts) nterruptleitungen Signalisieren der Unterbrechung (nterrupt Request; RQ) Prozessor unterbricht laufende Bearbeitung und führt eine definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar) vorher werden alle Register einschließlich Programmzähler gesichert (z.b. auf einem Stapelspeicher/Stack) nach einer Unterbrechung kann der ursprüngliche Zustand wiederhergestellt werden Unterbrechungen werden im privilegierten Modus bearbeitet , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 17 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] Externe Unterbrechungen (2) 3.3 Externe Unterbrechungen (2) Anwendung Schematische Befehlsabwicklung Reaktion auf externes Ereignis Fehlerbedingung Befehlsausführung [PC] [PC] + 1 ankommende Netzwerknachricht Rückmeldung durch langsame Geräte Wecker -Funktion Abwicklung der Unterbrechungsbehandlung? , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 19 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 2

8 3.3 Externe Unterbrechungen (2) 3.3 Externe Unterbrechungen (3) Schematische Befehlsabwicklung Befehlsausführung [PC] [PC] + 1 Unterbrechung? a sichere Register schalte in priv. Modus lade PC für Unterbrechungsbehandlung Nein reale Prozessoren Maskierung von Unterbrechungen Annahmeprotokoll gegen Doppelausführung Adresse der Unterbrechungsbehandlung steht fest meist konfigurierbar Rückkehr von der Unterbrechungsbehandlung spezieller Befehl, z.b. RT: Return from nterrupt Befehlsausführung von RT: Restaurieren gesicherte Register insbes. PC (alter Befehlspfad) insbes. CCR Umschaltung in alten Modus meist durch Restauration des CCR restauriere Register , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 2 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] Externe Unterbrechungen (4) 3.4 nterne Unterbrechungen Ablauf der Unterbrechung unterbrochene Befehlsfolge Befehlsfolge der Unterbrechungsbehandlung Unterbrechungen durch die Befehlsausführung (nternal nterrupt, Exceptions) bei bestimmten Fehlersituationen (z.b. Division durch Null) unterbricht Prozessor laufende Befehlsbearbeitung und führt definierte Befehlsfolge aus (ähnlich wie bei externen Unterbrechungen) unterbrochene Befehlsfolge bleibt in der Regel unberührt Unterbrechung ist transparent verschachtelte Unterbrechungen möglich Unterbrechung der Unterbrechungsbehandlung koordinierte Handhabung der gesicherten Register Unterbrechung beliebiger Betriebsmodi Unterbrechung auch des privilegierten Modus , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 22 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 23

9 3.5 Systemaufrufe 3.5 Systemaufrufe (2) Systemaufrufe (Traps; User nterrupts) Wie kommt man kontrolliert vom Benutzermodus in den privilegierten Modus? spezielle Befehle zum Eintritt in den privilegierten Modus Prozessor schaltet in privilegierten Modus und führt definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar) solche Befehle werden dazu genutzt die Betriebssystemschnittstelle zu implementieren (Supervisor Calls) Parameter werden nach einer Konvention übergeben (z.b. auf dem Stack) Schematische Befehlsabwicklung MOVE D, a TRAP #3 MOVE a, D Ausführung sichere Register, priv. Modus letzter Befehl: lade PC des Systemaufrufs RT restauriere Register nächster Befehl , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] H 24 H , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1-H-OS.fm, ] 25

10 1 Einordnung Prozesse und Nebenläufigkeit Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene Problemorientierte Sprache Assemblersprache Betriebssystem SA (nstruction Set Architecture) Mikroarchitektur Digitale Logik Physik , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 2 1 Einordnung (2) 2 Motivation Betroffene physikalische Betriebsmittel (Memory) externe Schnittstellen (nterfaces) Prozessor (CPU, Central Processing Unit) Ein-, Ausgabegeräte/ Periphere Geräte (/O Devices) Hintergrundspeicher (Secondary Storage) Mehrprogrammbetrieb (Multiprogramming) bessere Auslastung der CPU, falls Programme Wartezeiten haben z.b. bei Ein-, Ausgabe (E/A) 1 2% CPU-Auslastung in % 8 5% 6 8% E/A-Wartezeit 4 2 Anzahl der gleichzeitig bearbeiteten Programme nach Tanenbaum, 1995 einfachere Struktur bei großen Anwendungen , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 4

11 2 Motivation (2) 3 Prozesse Mehrbenutzerbetrieb (Multiuser) mehrere Benutzer führen auch mehrere Programme aus ähnlich Mehrprogrammbetrieb jedoch: Unterscheidung von Benutzern und evtl. Zugriffsberechtigungen Terminologie Programm: Folge von Anweisungen und dazugehörigen Daten hinterlegt beispielsweise als Datei auf dem Hintergrundspeicher Prozess: Programm, das sich in Ausführung befindet, und seine aktuellen Daten Beachte: ein Programm kann sich mehrfach in Ausführung befinden Prozess stellt Ausführungsumgebung bereit Adressraum (Schutzumgebung für den Speicher eines Prozesses) Kontext für Betriebsmittelanforderungen (Speicher, Dateien, etc.) Prozess als virtueller Prozessor Anweisungen des Prozesses werden abgearbeitet , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Repräsentation eines Prozesses 3.2 Prozesswechsel Datenstruktur pro Prozess: Prozesskontrollblock (Process Control Block; PCB) Konzeptionelles Modell enthält alle nötigen Daten für einen Prozess beispielsweise in UNX/Linux: A B C D Prozessnummer (PD) verbrauchte Rechenzeit vier Prozesse mit eigenständigen Befehlszählern Erzeugungszeitpunkt Kontext (Register etc.) Speicherabbildung (nformation zur Schutzumgebung) Eigentümer (UD, GD) Wurzelverzeichnis, aktuelles Verzeichnis Umschaltung zwischen den Prozessen Prozessor kann immer nur einen Prozess abarbeiten Umschaltung zwischen den Prozessen Prozesse erleben Fortschritt ihrer Programmzähler und ihrer ausgeführten Anweisungen. offene Dateien transparentes Umschalten Ein Prozess bemerkt die anderen Prozesse zunächst nicht , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 8

12 3.2 Prozesswechsel (2) Prozessumschaltung (Context Switch) Sichern der Register des laufenden Prozesses inkl. Programmzähler (Kontext), Auswahl des neuen Prozesses, Ablaufumgebung des neuen Prozesses herstellen (z.b. Speicherabbildung, etc.), gesicherte Register laden und Prozessor aufsetzen (Programmzähler laden). 3.2 Prozesswechsel (3) Umschaltung blockiert/bereit Befehlszähler Prozess A Prozessumschalter Prozess B Zeit , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Prozesswechsel (3) 3.2 Prozesswechsel (3) Umschaltung Umschaltung blockiert/bereit Prozess A blockiert/bereit Prozess A Befehlszähler Befehlszähler Prozessumschalter Prozessumschalter blockiert/bereit Prozess B blockiert/bereit Prozess B Zeit Zeit , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 1

13 3.2 Prozesswechsel (3) Schematische Darstellung von Umschaltungen (Beispiel) Befehlszähler blockiert/bereit blockiert/bereit Prozess A Prozessumschalter 3.2 Prozesswechsel (4) Prozesswechsel unter Kontrolle der Prozesse Prozess bestimmt Umschaltungszeitpunkt Konzept der Ko-Routine kein transparentes Umschalten keine Fairness Wunsch nach fairer Zuteilung des Betriebsmittels Prozessor blockiert/bereit Prozess B Zeit , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Prozesswechsel (5) 3.3 Prozesszustände Prozesswechsel unter Kontrolle des Betriebssystems Mögliche Eingriffspunkte: Systemaufrufe Unterbrechungen Wechsel nach/in Systemaufrufen Warten auf Ereignisse (z.b. Zeitpunkt, Nachricht, Lesen eines Plattenblock) Terminieren des Prozesses Wechsel nach Unterbrechungen Ablauf einer Zeitscheibe bevorzugter Prozess wurde laufbereit Auswahlstrategie zur Wahl des nächsten Prozesses Scheduler-Komponente Ein Prozess befindet sich in einem der folgenden Zustände: Erzeugt (New) Prozess wurde erzeugt, besitzt aber noch nicht alle nötigen Betriebsmittel Bereit (Ready) Prozess besitzt alle nötigen Betriebsmittel und ist bereit zum Laufen Laufend (Running) Prozess wird vom realen Prozessor ausgeführt Blockiert (Blocked/Waiting) Prozess wartet auf ein Ereignis (z.b. Fertigstellung einer Ein- oder Ausgabeoperation, Zuteilung eines Betriebsmittels, Empfang einer Nachricht); zum Warten wird er blockiert Beendet (Terminated) Prozess ist beendet; einige Betriebsmittel sind jedoch noch nicht freigegeben oder Prozess muss aus anderen Gründen im System verbleiben , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 13

14 3.3 Prozesszustände (2) Zustandsdiagramm erzeugt zugelassen Grund der Blockade ist weggefallen bereit Scheduler teilt Prozessor zu blockiert laufend Unterbrechung od. Systemaufruf wartend beendet terminiert impliziter oder expliziter Warteaufruf nach Silberschatz, 1994 Scheduler ist der Teil des Betriebssystems, der die Zuteilung des realen Prozessors vornimmt. 4 Auswahlstrategien Strategien zur Auswahl des nächsten Prozesses (Scheduling Strategies) Mögliche Stellen zum Treffen von Scheduling-Entscheidungen 1. Prozess wechselt vom Zustand laufend zum Zustand blockiert (z.b. Ein-, Ausgabeoperation) 2. Prozess wechselt von laufend nach bereit (z.b. bei einer Unterbrechung des Prozessors) 3. Prozess wechselt von blockiert nach bereit 4. Prozess terminiert bei 1. und 4. muss Neuauswahl erfolgen bei 2. und 3. kann Neuauswahl erfolgen ja verdrängend nein nicht verdrängend verdrängend = präemptiv , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Kriterien 4.2 First Come, First Served CPU Auslastung möglichst 1% ausgelastete CPU Durchsatz möglichst hohe Anzahl bearbeiteter Prozesse pro Zeiteinheit Verweilzeit möglichst geringe Gesamtzeit des Prozesses in der Rechenanlage Der erste Prozess wird zuerst bearbeitet (FCFS) Wer zuerst kommt Nicht-verdrängend Warteschlange zum Zustand bereit Prozesse werden hinten eingereiht Prozesse werden vorne entnommen Wartezeit möglichst kurze Gesamtzeit, in der der Prozess im Zustand bereit ist Antwortzeit möglichst kurze Reaktionszeit des Prozesses im interaktiven Betrieb Bewertung fair (?) Wartezeiten nicht minimal nicht für Time-Sharing-Betrieb geeignet , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 17

15 4.2 First Come, First Served (2) 4.2 First Come, First Served (3) Beispiel zur Betrachtung der Wartezeiten Beispiel zur Betrachtung der Wartezeiten Prozess 1: Prozess 2: Prozess 3: Zeiteinheiten Prozess 1: Prozess 2: Prozess 3: Zeiteinheiten Reihenfolge:,, P3 Reihenfolge:, P3, bereit P3 bereit bereit P3 mittlere Wartezeit: (+24+27)/3 = 17 mittlere Wartezeit: (6++3)/3 = 3 laufend bereit blockiert laufend bereit blockiert , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] First Come, First Served (4) 4.2 First Come, First Served (4) Behandlung deblockierte Prozesse Behandlung deblockierte Prozesse Einreihung an das Ende der Warteschlange Einreihung an das Ende der Warteschlange Beispiel: Beispiel: Laufzeitanforderung Laufzeitanforderung blockiert blockiert blockiert blockiert FCFS-Ablauf auf einem Prozessor (initial: vor ) FCFS-Ablauf auf einem Prozessor (initial: vor ) blockiert ber. ber. laufend bereit blockiert Warteschlange: Warteschlange: laufend bereit blockiert , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 2

16 4.2 First Come, First Served (4) 4.2 First Come, First Served (4) Behandlung deblockierte Prozesse Einreihung an das Ende der Warteschlange Beispiel: Laufzeitanforderung Behandlung deblockierte Prozesse Einreihung an das Ende der Warteschlange Beispiel: Laufzeitanforderung blockiert blockiert blockiert blockiert FCFS-Ablauf auf einem Prozessor (initial: vor ) FCFS-Ablauf auf einem Prozessor (initial: vor ) blockiert ber. blockiert ber. ber. ber. blockiert laufend bereit blockiert Warteschlange: Warteschlange: laufend bereit blockiert , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] First Come, First Served (4) 4.3 Shortest ob First Behandlung deblockierte Prozesse Kürzester ob wird ausgewählt (SF) Einreihung an das Ende der Warteschlange Beispiel: Länge bezieht sich auf die nächste Rechenphase bis zur nächsten Warteoperation (z.b. Ein-, Ausgabe) Laufzeitanforderung blockiert blockiert bereit -Warteschlange wird nach Länge der nächsten Rechenphase sortiert Vorhersage der Länge durch Protokollieren der Länge bisheriger Rechenphasen (Mittelwert, exponentielle Glättung) FCFS-Ablauf auf einem Prozessor (initial: vor ) Protokollierung der Länge der vorherigen Rechenphase blockiert ber. SF optimiert die mittlere Wartezeit Warteschlange: ber. blockiert laufend bereit blockiert Da Länge der Rechenphase in der Regel nicht genau vorhersagbar, nicht ganz optimal. Varianten: verdrängend (PSF) und nicht-verdrängend , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 21

17 4.3 Shortest ob First (2) Beispiel: SF Laufzeitanforderung 4.3 Shortest ob First (3) Beispiel: PSF Laufzeitanforderung blockiert blockiert P3 P3 SF-Ablauf auf einem Prozessor PSF-Ablauf auf einem Prozessor blockiert blockiert bereit bereit P3 P3 ber. P3 laufend bereit blockiert Warteschlange: Warteschlange: P3 P3 ber. P3 P3 P3 laufend bereit blockiert , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Prioritäten 4.4 Prioritäten (2) Prozess mit höchster Priorität wird ausgewählt (HPF, Highest Priority First) dynamisch statisch (z.b. SF: dynamische Vergabe von Prioritäten gemäß Länge der nächsten Rechenphase) (z.b. statische Prioritäten in Echtzeitsystemen; Vorhersagbarkeit von Reaktionszeiten) verdrängend nicht-verdrängend Probleme Prioritätenumkehr (Priority nversion) Aushungerung Prioritätenumkehr hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben P3 1 laufend bereit blockiert hoch mittel niedrig Zeit 1. P3 fordert Betriebsmittel an Priorität , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 25

18 4.4 Prioritäten (2) 4.4 Prioritäten (2) Prioritätenumkehr hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben 2 hoch mittel P3 1 niedrig Zeit Priorität Prioritätenumkehr hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben 2 hoch mittel P3 1 nversionsphase 3 niedrig Zeit Priorität laufend bereit blockiert 1. P3 fordert Betriebsmittel an 2. wartet auf das gleiche Betriebsmittel laufend bereit blockiert 1. P3 fordert Betriebsmittel an 2. wartet auf das gleiche Betriebsmittel 3. P3 gibt Betriebsmittel frei , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Prioritäten (3) 4.5 Round-Robin Scheduling Lösung dynamische Anhebung der Priorität für kritische Prozesse (im Beispiel: P3 wird von Zeitpunkt 2 bis Zeitpunkt 3 auf hohe Priorität angehoben) Zuteilung und Auswahl erfolgt reihum ähnlich FCFS aber mit Verdrängung Zeitquant (Time Quantum) oder Zeitscheibe (Time Slice) wird zugeteilt geeignet für Time-Sharing-Betrieb Aushungerung Ein Prozess kommt nie zum Zuge, da immer andere mit höherer Priorität vorhanden sind. Unterbrechungsleitung Lösung dynamische Anhebung der Priorität für lange wartende Prozesse (Alterung, Aging) Timer Wartezeit ist jedoch eventuell relativ lang , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 27

19 4.5 Round-Robin Scheduling (2) 4.5 Round-Robin Scheduling (3) Beispiel zur Betrachtung der Wartezeiten Prozess 1: Prozess 2: Prozess 3: Zeiteinheiten Zeitquant ist 4 Zeiteinheiten Reihenfolge in der bereit -Warteschlange:,, P3 Effizienz hängt von der Größe der Zeitscheibe ab kurze Zeitscheiben: Zeit zum Kontextwechsel wird dominant lange Zeitscheiben: Round-Robin nähert sich FCFS an Verweilzeit und Wartezeit hängt ebenfalls von der Zeitscheibengröße ab Beispiel: 3 Prozesse mit je 1 Zeiteinheiten Rechenbedarf Zeitscheibengröße 1 Zeitscheibengröße 1 P mittlere Wartezeit: (6+4+7)/3 = 5, , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Round-Robin Scheduling (4) 4.5 Round-Robin Scheduling (4) Zeitscheibengröße 1: P durchschnittliche Verweilzeit: 29 Zeiteinheiten = ( )/3 durchschnittliche Wartezeit: 19 Zeiteinheiten = ( )/3 Zeitscheibengröße 1: P durchschnittliche Verweilzeit: 29 Zeiteinheiten = ( )/3 durchschnittliche Wartezeit: 19 Zeiteinheiten = ( )/3 Zeitscheibengröße 1: 5 P / 2/1 durchschnittliche Verweilzeit: 2 Zeiteinheiten = (1+2+3)/3 durchschnittliche Wartezeit: 1 Zeiteinheiten = (+1+2)/3 3 3/2 3 28/18 Verweil-/Wartezeit 29/19 3/2 3 28/18 Verweil-/Wartezeit 29/19 3/2 Verweil-/Wartezeit , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 3

20 4.6 Multilevel-Queue Scheduling 4.6 Multilevel-Queue-Scheduling (2) Verschiedene Schedulingklassen z.b. Hintergrundprozesse (Batch) und Vordergrundprozesse (interaktive Prozesse) jede Klasse besitzt ihre eigenen Warteschlangen (Queues) und verwaltet diese nach einer eigenen Schedulingstrategie zwischen den Klassen gibt es ebenfalls eine Schedulingstrategie z.b. feste Prioritäten (Vordergrundprozesse immer vor Hintergrundprozessen) Prozessauswahl 1. Schedulingklasse auswählen 2. in ausgewählter Klasse Prozess auswählen Beispiel: Solaris/SunOS Schedulingklassen Systemprozesse Real-Time Prozesse Time-Sharing Prozesse interaktive Prozesse Scheduling zwischen den Klassen mit fester Priorität (z.b. Real-Time-Prozesse vor Time-Sharing-Prozessen) , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Multilevel-Queue-Scheduling (3) 4.7 Multilevel-Feedback-Queue Scheduling Beispiel: Solaris/SunOS (fortges.) Ähnlich Multilevel-Queue-Scheduling Auswahlstrategien der Schedulingklasen: Schedulingklassen Systemprozesse: FCFS Real-Time Prozesse: statische Prioritäten Time-Sharing und interaktive Prozesse: ausgefeiltes Verfahren zur Sicherung von: kurzen Reaktionszeiten fairer Zeitaufteilung zwischen rechenintensiven und /O-intensiven Prozessen gewisser Benutzersteuerung realisiert mit Multilevel-Feedback-Queue-Scheduling meist viele Klassen, doch innerhalb der Klasse gleiche Strategie (z.b. Round-Robin) Strategie zur Auswahl der Schedulingklassen meist prioritätengesteuert mit statischen Prioritäten (z.b. 1. Klasse vor 2. Klasse) Zusätzlich bei MLFB: Transfer von Prozessen von einer Klasse in die andere (Feedback) , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 34

21 4.7 Multilevel-Feedback-Queue Scheduling (2) 4.7 Multilevel-Feedback-Queue Scheduling (3) Beispiel: 5 Schedulingklassen mit eigener Bereit-Warteschlange und Strategie Prozesse können von einer zur anderen Warteschlange transferiert werden Beispiel: Solaris/SunOS 6 Schedulingklassen mit jeweils Round-Robin-Strategie unterschiedliche Zeitscheibenlänge Auswahl der Klasse über statische Priorität solange Prozesse in hochpriorer Klasse kommen keine anderen zum Zuge Transfer von Prozessen in andere Klassen/Prioritäten Prozesse, die lange rechnen, wandern langsam in Klasse mit niedrigerer Priorität (bevorzugt interaktive Prozesse) Prozesse, die lange warten müssen, wandern langsam wieder in höherpriore Klassen (Aging) , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 36 5 Prozesskommunikation 5 Prozesskommunikation (2) nter-process-communication (PC) Klassifikation nachrichtenbasierter Kommunikation mehrere Prozesse bearbeiten eine Aufgabe Klassen Verkürzung der Bearbeitungszeit durch Parallelisierung (gleichzeitige Nutzung und Bearbeitung von Daten) übersichtlichere Struktur der Anwendung Kanäle (Pipes) Kommunikationsendpunkte (Sockets, Ports) Briefkästen, Nachrichtenpuffer (Queues) Kommunikation durch Nachrichten Unterbrechungen (Signals) Nachrichten werden zwischen Prozessen ausgetauscht Übertragungsrichtung Kommunikation durch gemeinsamen Speicher unidirektional Datenaustausch durch gemeinsam zugreifbare Speicherzellen bidirektional (voll-duplex, halb-duplex) , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 38

22 5 Prozesskommunikation (3) 6 Aktivitätsträger (Threads) Übertragungs- und Aufrufeigenschaften Mehrere Prozesse zur Strukturierung von Problemlösungen zuverlässig unzuverlässig gepuffert ungepuffert blockierend nichtblockierend stromorientiert nachrichtenorientiert RPC Aufgaben eines Prozesses leichter modellierbar, wenn in mehrere kooperierende Prozesse unterteilt z.b. Anwendungen mit mehreren Fenstern (ein Prozess pro Fenster) z.b. Anwendungen mit vielen gleichzeitigen Aufgaben (Webbrowser) Adressierung implizit: UNX Pipes Multiprozessorsysteme werden erst mit mehreren parallel laufenden Prozessen ausgenutzt z.b. wissenschaftliches Hochleistungsrechnen (Aerodynamik etc.) explizit: Sockets globale Adressierung: Sockets, Ports Gruppenadressierung: Multicast, Broadcast Client-Server-Anwendungen unter UNX: pro Anfrage wird ein neuer Prozess gestartet z.b. Webserver , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Prozesse mit gemeinsamem Speicher 6.2 Aktivitätsträger Gemeinsame Nutzung von Speicherbereichen durch mehrere Prozesse Nachteile viele Betriebsmittel zur Verwaltung eines Prozesses notwendig Dateideskriptoren Speicherabbildung Prozesskontrollblock Prozessumschaltungen sind aufwändig. Vorteil n Multiprozessorsystemen sind echt parallele Abläufe möglich. Alternative: Aktivitätsträger (Threads) oder leichtgewichtige Prozesse (Lightweighted Processes, LWPs) Eine Gruppe von Threads nutzt gemeinsam eine Menge von Betriebsmitteln. nstruktionen Datenbereiche Dateien, Sockets etc. eder Thread repräsentiert eine eigene Aktivität: eigener Programmzähler eigener Registersatz eigener Stack , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 42

23 6.2 Aktivitätsträger (2) Umschalten zwischen zwei Threads einer Gruppe ist erheblich billiger als eine normale Prozessumschaltung. Es müssen nur die Register und der Programmzähler gewechselt werden (entspricht dem Aufwand für einen Funktionsaufruf). Speicherabbildung muss nicht gewechselt werden. Alle Systemressourcen bleiben verfügbar. Ein UNX-Prozess ist ein Adressraum mit einem Thread Solaris: Prozess kann mehrere Threads besitzen mplementierungen von Threads User-level Threads Kernel-level Threads 6.3 User-Level-Threads mplementierung nstruktionen im Anwendungsprogramm schalten zwischen den Threads hin- und her (ähnlich wie der Scheduler im Betriebssystem) Betriebssystem sieht nur einen Thread Vorteile keine Systemaufrufe zum Umschalten erforderlich effiziente Umschaltung Schedulingstrategie in der Hand des Anwenders Nachteile Bei blockierenden Systemaufrufen bleiben alle User-Level-Threads stehen. Kein Ausnutzen eines Multiprozessors möglich , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Kernel-Level-Threads 6.5 Beispiel: LWPs und Threads (Solaris) mplementierung Betriebssystem kennt Kernel-Level-Threads Betriebssystem schaltet Threads um Vorteile kein Blockieren unbeteiligter Threads bei blockierenden Systemaufrufen Solaris kennt Kernel-, User-Level-Threads und LWPs Adressraum 1 Adressraum 2 Adressraum 3 User-level Threads Solaris LWPs Nachteile weniger effizientes Umschalten Fairnessverhalten nötig (zwischen Prozessen mit vielen und solchen mit wenigen Threads) Schedulingstrategie meist vorgegeben Kernel Prozessor Kernel-level Threads nach Silberschatz, , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 46

24 7 Parallelität und Nebenläufigkeit 7 Parallelität und Nebenläufigkeit (2) Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden. parallele Bearbeitung nur auf Multiprozessorsystemen zwei oder mehr Prozessoren können parallel Anweisungen bearbeiten Prozessor parallele Bearbeitung Monoprozessor keine parallele Abarbeitung von Befehlen möglich Zeit Nebenläufigkeit Zwei Prozesse heißen nebenläufig, wenn ihre Anweisungen unabhängig voneinander abgearbeitet werden. Dabei spielt es keine Rolle, ob die Anweisungen zeitlich durchmischt oder auch echt gleichzeitg bearbeitet werden. parallele Bearbeitung ist nebenläufig nebenläufige Bearbeitung auch auf Monoprozessoren möglich zeitliche Durchmischung der Befehle mehrerer Prozesse oder Threads Schedulingstrategie oft unabhängig von den bearbeiteten Befehlen (z.b. Round Robin, MLFB) Prozessor nebenläufige Bearbeitung auf Monoprozessor Zeit , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 48 8 Koordinierung 8 Koordinierung (2) Beispiel: zwei Prozesse, Beobachter und Protokollierer Mittels nduktionsschleife werden Fahrzeuge gezählt. Alle 1min druckt der Protokollierer die im letzten Zeitraum vorbeigekommene Anzahl aus. int cnt= ; Effekte: Fahrzeuge gehen verloren Fahrzeuge werden doppelt gezählt Observer on indication cnt= cnt+1; Logger every 1 minutes println( "Count="+cnt+"\n" ); cnt= ; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 5

25 8 Koordinierung (2) 8 Koordinierung (3) Effekte: Fahrzeuge gehen verloren Fahrzeuge werden doppelt gezählt Ursachen: Befehle einer Programmiersprache werden nicht unteilbar (atomar) abgearbeitet, da sie auf mehrere Maschinenbefehle abgebildet werden. Keinesfalls werden mehrere Anweisungen zusammen atomar abgearbeitet. Prozesswechsel innerhalb einer Anweisung oder zwischen zwei zusammengehörigen Anweisungen können zu nkonsistenzen führen. Fahrzeuge gehen verloren Nach dem Drucken wird der Protokollierer unterbrochen. Beobachter zählt weitere Fahrzeuge. Anzahl wird danach ohne Beachtung vom Protokollierer auf Null gesetzt. Observer cnt= cnt+1; cnt= cnt+1; Logger println( "Count="+cnt+"\n" ); cnt= ; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 51 8 Koordinierung (4) 8 Koordinierung (5) Fahrzeuge werden doppelt gezählt: Beobachter will Zähler erhöhen und holt sich diesen dazu in ein Register. Er wird unterbrochen und der Protokollierer setzt Anzahl auf Null. Beobachter erhöht Registerwert und schreibt diesen zurück. Dieser Wert wird erneut vom Protokollierer registriert. Observer MOVE #1, D ADD cnt, D MOVE D, cnt [cnt= cnt+1;] Logger println( "Count="+cnt+"\n" ); cnt= ; Problem gekoppelt an gemeinsame Nutzung von Daten oder Betriebsmitteln Lösung: kritische Abschnitte nur einer soll Zugang zu Daten oder Betriebsmitteln haben (gegenseitiger Ausschluss, Mutual Exclusion, Mutex) kritische Abschnitte erscheinen als zeitlich unteilbar Wie kann der gegenseitige Ausschluss in kritischen Abschnitten erzielt werden? Vorkehrungen, dass nicht mehrere Prozesse gleichzeitig im kritischen Abschnitt sind , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 53

26 8 Koordinierung (6) 8.1 Gegenseitiger Ausschluss Koordinierung allgemein: Einschränkung der zeitlichen Durchmischung von Befehlsfolgen in nebenläufigen Prozessen/Aktivitätsträgern letztlich Einschränkung der Nebenläufigkeit gezielte Aufgabe der Unabhängigkeit bei der Befehlsausführung Lösung des Beispiels zwei zusammengehörige kritische Abschnitte int cnt= ; Observer on indication Hinweis: m Folgenden wird immer von Prozessen die Rede sein. Koordinierung kann/muss selbstverständlich auch zwischen Threads stattfinden. cnt= cnt+1; Logger every 1 minutes nur ein Prozess in einem der kritischen Abschnitte println( "Count="+cnt+"\n" ); cnt= ; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (2) 8.2 Gegenseitiger Ausschluss (3) Zwei Prozesse wollen regelmäßig kritischen Abschnitt betreten Annahme: Maschinenbefehle sind unteilbar (atomar) 1. Versuch int turn= ; Probleme der Lösung nur alternierendes Betreten des kritischen Abschnitts durch P und P 1 möglich mplementierung ist unvollständig aktives Warten Prozess while( 1 ) { while( turn == 1 ); /* critical sec. */ turn= 1; Prozess 1 while( 1 ) { while( turn == ); /* critical sec. */ turn= ; Ersetzen von turn durch zwei Variablen ready und ready1 ready zeigt an, dass Prozess bereit für den kritischen Abschnitt ist ready1 zeigt an, dass Prozess 1 bereit für den kritischen Abschnitt ist } /* uncritical */ } /* uncritical */ , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 57

27 8.2 Gegenseitiger Ausschluss (4) 8.2 Gegenseitiger Ausschluss (5) 2. Versuch boolean ready= false; boolean ready1= false; Prozess while( 1 ) { ready= true; while( ready1 ); /* critical sec. */ ready= false; Prozess 1 while( 1 ) { ready1= true; while( ready ); /* critical sec. */ ready1= false; Gegenseitiger Ausschluss wird erreicht leicht nachweisbar durch Zustände von ready und ready1 Probleme der Lösung aktives Warten Verklemmung möglich } /* uncritical */ } /* uncritical */ , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (6) 8.2 Gegenseitiger Ausschluss (7) Betrachtung der nebenläufigen Abfolgen P P 1 ready= true; ready1= true; while( ready1 ); + while( ready ); + <critical> + <critical> + ready= false; ready1= false; <noncritical> + <noncritical> + ready= true; ready1= true; + = mehrfach, mind. einmal * = mehrfach oder gar nicht Durchspielen aller möglichen Durchmischungen Harmlose Durchmischung P P 1 ready= true; while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; ausgeführte Anweisungen , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 61

28 8.2 Gegenseitiger Ausschluss (7) 8.2 Gegenseitiger Ausschluss (7) Harmlose Durchmischung Harmlose Durchmischung P P 1 2 P P 1 3 ready= true; ausgeführte Anweisungen ready= true; while( ready1 ); ausgeführte Anweisungen while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (7) 8.2 Gegenseitiger Ausschluss (7) Harmlose Durchmischung Harmlose Durchmischung P P 1 4 P P 1 5 ready= true; while( ready1 ); <critical> ausgeführte Anweisungen ready= true; while( ready1 ); <critical> ready1= true; ausgeführte Anweisungen <critical> * ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; <critical> * ready= false; <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 61

29 8.2 Gegenseitiger Ausschluss (7) Harmlose Durchmischung P P 1 ready= true; while( ready1 ); <critical> ausgeführte ready1= true; Anweisungen while( ready ); Gegenseitiger Ausschluss (7) Harmlose Durchmischung P P 1 <critical> ready1= true; while( ready ); while( ready ); 7 aktives Warten <critical> * ready= false; <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; <critical> * ready= false; <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (7) 8.2 Gegenseitiger Ausschluss (7) Harmlose Durchmischung Harmlose Durchmischung P P 1 ready1= true; while( ready ); while( ready ); ready= false; 8 P P 1 ready1= true; while( ready ); while( ready ); ready= false; while( ready ); 9 <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; <noncritical> + ready= true; <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 61

30 8.2 Gegenseitiger Ausschluss (8) 8.2 Gegenseitiger Ausschluss (8) Verklemmung Verklemmung P P 1 1 P P 1 2 ausgeführte Anweisungen ready= true; ausgeführte Anweisungen ready= true; while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (8) 8.2 Gegenseitiger Ausschluss (8) Verklemmung Verklemmung P P 1 3 P P 1 4 ready= true; ready1= true; ausgeführte Anweisungen ready= true; while( ready1 ); ready1= true; ausgeführte Anweisungen while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 62

31 8.2 Gegenseitiger Ausschluss (8) Verklemmung (Lifelock) P P 1 ready= true; while( ready1 ); while( ready1 ); + <critical> + ready= false; <noncritical> + ready= true; ready1= true; while( ready ); while( ready ); + <critical> + ready1= false; <noncritical> + ready1= true; 5 beide Prozesse warten aktiv 8.2 Gegenseitiger Ausschluss (9) 3. Versuch (Algorithmus von Peterson, 1981) boolean ready= false; boolean ready1= false; int turn= ; while( 1 ) { Prozess ready= true; turn= 1; while( ready1 && turn == 1 ); } /* critical sec. */ ready= false; /* uncritical */ while( 1 ) { Prozess 1 ready1= true; turn= ; while( ready && turn == ); } /* critical sec. */ ready1= false; /* uncritical */ , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Gegenseitiger Ausschluss (1) 8.3 Spezielle Maschinenbefehle Algorithmus implementiert gegenseitigen Ausschluss vollständige und sichere mplementierung turn entscheidet für den kritischen Fall von Versuch 2, welcher Prozess nun wirklich den kritischen Abschnitt betreten darf in allen anderen Fällen ist turn unbedeutend Problem der Lösung aktives Warten Algorithmus auch für mehrere Prozesse erweiterbar Lösung ist relativ aufwendig Spezielle Maschinenbefehle können die Programmierung kritischer Abschnitte unterstützen und vereinfachen Test-and-Set nstruktion Swap nstruktion Test-and-set Maschinenbefehl mit folgender Wirkung (ava-ähnliche Syntax) boolean test_and_set( MemmoryBit lock ) { boolean tmp= lock.getbit(); lock.setbit(true); return tmp; } Bit wird gesetzt; vorheriger Wert wird zurückgegeben Ausführung ist atomar , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 65

32 8.3 Spezielle Maschinenbefehle (2) 8.3 Spezielle Maschinenbefehle (3) Kritische Abschnitte mit Test-and-Set Befehlen MemoryBit lock= new MemoryBit(false); Prozess while( 1 ) { while( test_and_set(lock) ); Prozess 1 while( 1 ) { while( test_and_set(lock) ); Swap Maschinenbefehl mit folgender Wirkung void swap( MemoryWord mem1, MemoryWord mem2 ) { int tmp= mem1.getword(); mem1.setword( mem2.getword() ); mem2.setword( tmp ); } /* critical sec. */ lock.setbit(false); /* critical sec. */ lock.setbit(false); nhalt zweier Speicherworte wird vertauscht Ausführung ist atomar } /* uncritical */ } /* uncritical */ Code ist identisch und für mehr als zwei Prozesse geeignet , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] Spezielle Maschinenbefehle (4) 8.4 Kritik an den bisherigen Verfahren Kritische Abschnitte mit Swap-Befehlen MemoryWord lock= new MemoryWord( ); Spinlock bisherige Verfahren werden auch Spinlocks genannt aktives Warten MemoryWord key= Prozess new MemoryWord( ); while( 1 ) { key.setword(1); while( key.getword()==1 ) swap( lock, key ); /* critical sec. */ lock.setword(); /* uncritical */ } MemoryWord key= Prozess 1 new MemoryWord( ); while( 1 ) { key.setword(1); while( key.getword()==1 ) swap( lock, key ); /* critical sec. */ lock.setword(); /* uncritical */ } Code ist identisch und für mehr als zwei Prozesse geeignet Problem des aktiven Wartens Verbrauch von Rechenzeit ohne Nutzen Behinderung nützlicher Prozesse Abhängigkeit von der Schedulingstrategie nicht anwendbar bei nicht-verdrängenden Strategien schlechte Effizienz bei langen Zeitscheiben Spinlocks kommen heute fast ausschließlich in Multiprozessorsystemen zum Einsatz bei kurzen kritischen Abschnitten effizient Koordinierung zwischen Prozessen von mehreren Prozessoren , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] , Franz. Hauck, Verteilte Systeme, Univ. Ulm [24s-T1--Proc.fm, ] 69

I Einführung in Betriebssysteme

I Einführung in Betriebssysteme I Einführung in Betriebssysteme I.1 1 Einordnung Ebene 6 Ebene 5 Ebene 4 Problemorientierte Sprache Assemblersprache Betriebssystem Ebene 3 ISA (Instruction Set Architecture) Ebene 2 Ebene 1 Ebene 0 Mikroarchitektur

Mehr

G Einführung in Betriebssysteme

G Einführung in Betriebssysteme Einführung in Betriebssysteme 1997-2003, Franz J. Hauck, Verteilte Systeme, Univ. Ulm [2003s-TI1--OS.fm, 2003-06-23 16.28] 1 1 Einordnung Ebene 6 Problemorientierte Sprache Ebene 5 Assemblersprache Ebene

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

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

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden. 7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit

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

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

D Einführung Betriebssysteme

D Einführung Betriebssysteme 1 Was sind Betriebssysteme? DIN 44300...die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems

Mehr

D Einführung Betriebssysteme

D Einführung Betriebssysteme 1 Was sind Betriebssysteme? DIN 44300...die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems

Mehr

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

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

Mehr

F Prozesse und Nebenläufigkeit

F Prozesse und Nebenläufigkeit F Prozesse und Nebenläufigkeit F Prozesse und Nebenläufigkeit Einordnung Prozessor (CPU, Central processing unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen

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

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

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

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

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

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

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

F Prozesse und Nebenläufigkeit. F.1 UNIX Prozeßverwaltung. 2 Datenstrukturen zur Ausführung eines Programms (2) 3 Multiprogramming, Scheduling

F Prozesse und Nebenläufigkeit. F.1 UNIX Prozeßverwaltung. 2 Datenstrukturen zur Ausführung eines Programms (2) 3 Multiprogramming, Scheduling F Prozesse und Nebenläufigkeit Einordnung Hauptspeicher (Memory) externe Schnittstellen (Interfaces) F Prozesse und Nebenläufigkeit Prozessor (CPU, Central processing unit) Ein-, Ausgabegeräte/ Periphere

Mehr

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

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

Mehr

Systeme I: Betriebssysteme Kapitel 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

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

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

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

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

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

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr Betriebssysteme FU Berlin SS 2003 Klaus-Peter Löhr 1 Einführung Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch findet man unter http://www.babylonia.org.uk Software zwischen Hardware

Mehr

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1 Betriebssysteme FU Berlin WS 2004/05 Klaus-Peter Löhr bs-1.1 1 1 Einführung Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch findet man unter http://www.babylonia.org.uk bs-1.1 2 Software

Mehr

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Aufgabe 1: Sie haben in der Vorlesung einen hypothetischen Prozessor kennen

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

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

Überlegungen beim Entwurf eines Betriebssystems

Überlegungen beim Entwurf eines Betriebssystems Überlegungen beim Entwurf eines Betriebssystems Schnelligkeit Schutz und Sicherheit Korrektheit Wartbarkeit Kommerzielle Faktoren Standards und offene Systeme Schnelligkeit Es ist schwierig, Kenngrößen

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

Operating System Kernels

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

Mehr

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme Maren Bennewitz 1 Überblick Betriebssysteme Aufgabe von Betriebssystemen Historische Entwicklung von Betriebssystemen Unterschiedliche Arten

Mehr

JJ Prozesse und Nebenläufigkeit

JJ Prozesse und Nebenläufigkeit 1 Wiederholung: Algorithmus von Peterson boolean ready0=false, ready1=false; int turn=0; JJ Prozesse und Nebenläufigkeit (Auszug aus der Vorlesung) while( 1 ) Prozess 0 ready0 = true; turn = 1; while(

Mehr

Einführung Betriebssysteme

Einführung Betriebssysteme Einführung Funktion eines Betriebssystems Ein Programm, das die Ausführung von Anwendungsprogrammen kontrolliert Eine Schnittstelle zwischen Anwendungen und Hardware Verwaltung der Systemressourcen (CPU,

Mehr

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

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

Mehr

Ü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

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

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

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

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

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

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

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

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

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

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

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme Wolfram Burgard 1 Überblick Betriebssysteme Aufgabe von Betriebssystemen Historische Entwicklung von Betriebssystemen Unterschiedliche Arten

Mehr

3.3 Strategien zur Ablaufsteuerung

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

Mehr

Betriebssysteme (BS)

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

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

(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

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

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

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp 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]:

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

(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

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

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

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

Mehr

CPU-Scheduling - Grundkonzepte

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

Mehr

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

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

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Sommersemester 2005 Uni Erlangen Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebsysteme Tarek Gasmi Tarek.Gasmi@informatik.stud.uni-erlangen.de

Mehr

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

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

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

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

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

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele: Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:

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 2013 Kapitel 2: Betriebssysteme Vorlesung:

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

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann Speicher- und Cacheverwaltung unter Linux Ralf Petring & Guido Schaumann Übersicht Virtueller Adressraum Virtuelle Speicheraufteilung Reale Speicheraufteilung Speicherverwaltung Speicherzugriff Auslagerungsstrategien

Mehr

Verteilte Betriebssysteme

Verteilte Betriebssysteme Vorlesung Wintersemester 2003/2004 [CS 6930] 1 Einleitung 1 1 Dozent Prof. Dr.-Ing. Franz J. Hauck bteilung Verteilte Systeme (Prof. Dr. P. Schulthess) E-mail: hauck@informatik.uni-ulm.de Sprechstunde:

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 1. Thomas Kolarz. Folie 1 Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

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

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

Prüfung WS 1997/98. Studiengang: Informatik Fächergruppe: Software (I4) Tag: Bearbeitungszeit: 4 Stunden. Name:... Matr.Nr.:...

Prüfung WS 1997/98. Studiengang: Informatik Fächergruppe: Software (I4) Tag: Bearbeitungszeit: 4 Stunden. Name:... Matr.Nr.:... Prüfung WS 1997/98 Studiengang: Informatik Fächergruppe: Software (I4) Tag: 4.3.1998 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel: Vorlesungsskripte und Lehrbücher

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

2. Aufgabenblatt Threads

2. Aufgabenblatt Threads Fakultät Informatik Institut für Systemarchitektur, Professur für Betriebssysteme Betriebssysteme und Sicherheit, WS 2016/17 2. Aufgabenblatt Threads Geplante Bearbeitungszeit: drei Wochen TEIL A THREADS

Mehr

Betriebssysteme. FU Berlin WS 2006/07 Klaus-Peter Löhr. bs-1.1 1

Betriebssysteme. FU Berlin WS 2006/07 Klaus-Peter Löhr. bs-1.1 1 Betriebssysteme FU Berlin WS 2006/07 Klaus-Peter Löhr bs-1.1 1 1 Einführung Betriebsmittelverwaltung Entwicklungsgeschichte Architektur Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch

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

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

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

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

Softwarelösungen: Versuch 4

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

Mehr

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13. DOSEMU Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren Matthias Felix filo@icip.de FAU 13. Juni 2007 Matthias Felix (FAU) DOSEMU 13. Juni 2007 1 / 22 Inhalt 1 Einführung

Mehr

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme Basisinformationstechnologie I Wintersemester 2011/12 23. November 2011 Betriebssysteme Seminarverlauf 12. Oktober: Organisatorisches / Grundlagen I 19. Oktober: Grundlagen II 26. Oktober: Grundlagen III

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

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

Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase

Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase Verteilte Systeme Nebenläufigkeit Prof. Dr. Oliver Haase 1 Arten der Nebenläufigkeit 1-Prozessor(kern)-System quasiparallele Ausführung erhöht Interaktivität durch Umschalten zwischen Threads kann Parallelitätsgrad

Mehr

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

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

Mehr

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

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

3. Scheduler und Schedulingstrategien

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

Mehr