1 3.3.4 Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten.

Slides:



Advertisements
Ähnliche Präsentationen
Klassen - Verkettete Liste -
Advertisements

Leistung.
7.3 Scheduling Zur Erinnerung:
10.2 Wechselseitiger Ausschluss in Hardware
C Tutorium – Semaphoren –
Kapitel 26 BS-Kerne Laufzeitplattform = abstrakte Maschine für den Anwender Komfortabler Zugang Geschützte Adreßräume Traps, privilegierter Zustand Monolithische.
Institut MD Universität Rostock Real-Time Linux Szenario –Board, liest (sampled) analoge Daten –produziert 8 Bit Ergebnis und gibt dieses alle 100 ms aus.
Nsp Semaphore sind einfache Synchronisationsobjekte, ähnlich wie Ereignisse, aber unabhängig von Monitoren: (das) Semaphor: altes Flügelsignal.
6.3 Ereignisbasierte Systeme Ereignis (event) : eine Ereignis-Quelle (event source, publisher) generiert Benachrichtigung (event notification), an der.
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
4 Gerätetreiber Gerätetreiber (device driver)
Real - Time Java Seminar Asynchrone Ereignisse und Asynchroner Kontrolltransfer in Real - Time Java Sönke Eilers.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 5 Scheduling WS 2009/10.
Systeme 1 Kapitel 5.1 Unix Scheduling WS 2009/101.
Threads Richard Göbel.
Java: Dynamische Datentypen
Listen Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Portierung von Java nach C
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Das Roboterprojekt Einführung Der erste Entwurf Das Thread-Konzept Hindernisse Website.
Informatikunterricht mit Java
Interrupt Bei dem Transport von Daten zu einem Speichermedium oder zu einer Schnittstelle, muss der PC seine aktuelle Arbeit unterbrechen Man bemüht sich,
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Entwicklung verteilter eingebetteter Systeme - Einführung
Grundkonzepte Java - Klassendefinition
Verbesserung der Reaktivität des Linux-Kernels Steffen Mazanek.
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Prozess-synchronisation
Thread Synchronisation in JAVA
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Systemsoftware und Betriebssysteme
Vorgeschichte:. Der Prozess X befindet sich in der CPU in Ausführung
Scheduling- Algorithmen. Bedeutung nicht-verdängende Strategie Prozesse werden nacheinander ausgeführt Kein Prozess wird bevorzugt Hängt ein Prozess,
Unity 4.x Cookbook Softwaretechnologie II (Teil 2) - Maximilian Berndt.
Muster nebenläufiger Programmierung concurrent Packet von Java Alois Schütte AOSD1.
Prof. Dr. Alois Schütte Advanced System Programming 1 Das concurrent Paket 1 Überblick 2 Lock 3 Condition 4 Queue 5 Executors.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
10 Graphen gerichtete und ungerichtete, mit Marken an Ecken und/oder Kanten Anwendungsgebiete: Verkehrsnetze, Kommunikationsnetze, Netzpläne, Spiele,...
2.3 Implementierung von Prozessen
2 Datenabstraktion Geheimnisprinzip:
Nsp Bedingungssynchronisation Motivation: Wenn für eine Operation auf einem Objekt die Voraussetzung nicht erfüllt ist, ist es häufig angebracht,
5.1.2 Sequentielle Konsistenz
5 Implementierung von Prozessen und Synchronisationskonstrukten
4 Ablaufsteuerung. Ablaufsteuerung (scheduling) = Zuteilung von Betriebsmitteln (resources) – wiederverwendbaren oder verbrauchbaren – an Prozesse, z.B.
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
Parallel Programming Semaphores / Reader - Writer - Lock
Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Tutorium Software-Engineering SS14 Florian Manghofer.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Flexibles Job-Shop Scheduling in einer Glasfabrik
Der kritische Abschnitt
Die Klasse Vielfrass in Java
Die Struktur einer Java-Klasse
 Präsentation transkript:

Dynamische Prioritäten Statische Prozess-Prioritäten sind sinnvoll, falls Prozesse in wenige Klassen einteilbar (3.3.3) Dynamische Prioritäten bringen mehr Flexibilität, falls Verhaltensprofil der Prozesse nicht vorhersagbar; befördern typische Betriebsziele wie hohe Auslastung der Ressourcen, hoher Durchsatz.

2 Grundprinzip: die Peripherie so stark wie möglich beschäftigen, jedenfalls so stark, wie es das Verhaltensprofil der Benutzerprozesse hergibt; Folgerung: Dringlichkeit eine Prozesses orientieren  an seiner E/A-Intensität  an der Geschwindigkeit der benutzten E/A-Geräte demnach vermeiden, dass ein Gerät untätig ist, obwohl es Prozesse gibt, die es benutzen wollen.

3 2 Beispiele für Operationalisierung dieses Prinzips:  diskrete Vorgehensweise mit der Annahme Programme haben E/A-Phasen und CPU-Phasen:  in regelmäßigen Abständen E/A-Intensität messen und Priorität entsprechend umsetzen  kontinuierliche Anpassung an CPU-Verbrauch:  Rangzahl entspricht akkumulierter Rechenzeit, allerdings mit Dämpfungsfaktor für länger zurückliegende Aktivität

4 Bei Zeitscheibenende bzw. Blockade von Prozess p: bestimme neuen Rang von p und aktiviere den Prozess i mit minimaler Rangzahl rank i ohne Dämpfung: incr = elapsed rank p ‘ = rank p + incr rank p ‘ = akkumulierte CPU-Zeit

5 Bei Zeitscheibenende bzw. Blockade von Prozess p: bestimme neuen Rang von p und aktiviere den Prozess i mit minimaler Rangzahl rank i ohne Dämpfung:mit Dämpfung: incr = elapsedincr =  * elapsed * weight weight= weight + incr rank p ‘ = rank p + incr rank p ‘ = akkumulierte  > 0, anfangs weight = 1 CPU-Zeit(bei Überlauf von weight alle rank i und weight durch weight dividieren)

Deadline Scheduling bei Echtzeitsystemen System mit harten Echtzeit-Anforderungen (hard real-time system): auf bestimmte Ereignisse muß durch den behandelnden Prozess unbedingt binnen bestimmter Zeit reagiert werden  Prozessattribut deadline = zukünftiger Zeitpunkt, zu dem der Prozess beendet sein muß

7 Probleme: 1. keine Erfolgsgarantie, sofern man nicht vollständige Kenntnis vom Verhalten des externen Prozesses und sichere obere Grenzen für die Behandlungszeiten hat; 2. nicht gut geeignet, wenn sowohl hard deadlines als auch soft deadlines einzuhalten sind. Deadline Scheduling: zu jedem Zeitpunkt muß der Prozess mit der nächstliegenden Deadline aktiv sein

8 3.4 Synchronisation  Kurzzeitige Sperrsynchronisation ohne Prozesswechsel:  Unterbrechungsunterdrückung,  Spin Locks  Allgemeine Synchronisation mit Prozesswechsel bei Blockade:  Semaphore u.ä.

Unterbrechungsunterdrückung Achtung: Unterbrechungen - Zeitgeberunterbrechung, - Geräteunterbrechung, - Inter-Prozessor-Unterbrechung, führen in der Regel zurProzessumschaltung - daher darf die Prozessumschaltung selbst nicht unterbrochen werden! Alternative Sicht: Operationen der Prozessverwaltung müssen unteilbar sein (interrupt inhibition)

10  Die Operationen der Prozessverwaltung arbeiten zuverlässig nur in einem Prozessorzustand mit vollständiger Unterbrechungsunterdrückung (interrupt inhibition), erreicht durch  Unterbrechungssystem, das beim Auftreten einer Unterbrechung weitere Unterbrechungen unterdrückt - nach Maßgabe des neu geladenen Prozessorstatus -  oder durch explizite Unterdrückung durch einen Maschinenbefehl DISABLE_INTERRUPTS ( ENABLE_INTERRUPTS hebt Unterdrückung auf)

11 Unterbrechungsunterdrückung ist einfaches und an verschiedenen Stellen im System eingesetztes Mittel zur kurzfristigen Sperrsynchronisation und dient auf einem Einprozessorsystem zu Realisierung unteilbarer Befehlsfolgen: DISABLE_INTERRUPTS();... // critical... ENABLE_INTERRUPTS(); ... // critical...  (vgl. NSP 1.2.2)

12 Beachte: Unterdrückte Unterbrechungen gehen nicht verloren („pending interrupts“); sie unterbrechen den Prozessor, sobald sie wieder zugelassen werden. Differenzierte Unterbrechungsunterdrückung (  ):  Unterbrechungsarten selektiv unterdrücken, z.B. über Bitfeld im Prozessorstatus  Unterbrechungsprioritäten berücksichtigen, z.B. über Prozessorpriorität im Prozessorstatus – dringlichere Unterbrechungen werden dann zugelassen ! Ungeeignet für zuverlässige Sperrsynchronisation !

Spin Locks Bei Mehrprozessorsystemen benötigt man zusätzlich Spin Locks (NSP 5.1.1), um kurze Befehlsfolgen unteilbar zu machen. Die Operationen auf einem Boole‘schen Spin Lock sind: LOCK(lock); bewirkt while(TAS(lock)); UNLOCK(lock); bewirkt lock = false;

14 Ein mit LOCK geschützter kritischer Abschnitt sieht so aus: DISABLE_INTERRUPTS(); LOCK(lock);... // critical... UNLOCK(lock); ENABLE_INTERRUPTS(); (Testfrage: warum muss die Schachtelung genau so aussehen und nicht anders?)

Semaphore (Zur Erinnerung: NSP 5.2.2) class Semaphore { private boolean lock = false; private int count = 0; private Set waitingList = new Queue ();... Zwecks Fairness wird die Warteliste gemäß FCFS bedient.

16 public void P() { DISABLE_INTERRUPTS(); LOCK(lock); count--; if(count < 0) { waitingList.enter(Process.current()); Process.current().block() } UNLOCK(lock); ENABLE_INTERRUPTS(); } Beachte: 1.kurzfristiges Sperren mit Unterbrechungsunterdrückung und Spin Locks ! 2.Wenn der Prozess blockiert, wird die Sperre an den aktivierten Prozess „weitergereicht“.

17 public void V() { DISABLE_INTERRUPTS(); LOCK(lock); count++; if(count <= 0) waitingList.remove().wake(); UNLOCK(lock); ENABLE_INTERRUPTS(); } } // end of class Semaphore