Semaphore void Passieren (semaphore &s) { if (s > 0) { s--;

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
10.2 Wechselseitiger Ausschluss in Hardware
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
Hochschule Fulda – FB ET Sommersemester 2010
„Such-Algorithmen“ Zusammenfassung des Kapitels 11
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Seminar: "Einführung in C/C++" Einführung in die Programmiersprache C/C++ Donnerstag Andreas Döring SS 2004.
der Universität Oldenburg
der Universität Oldenburg
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Threads Richard Göbel.
Java: Grundlagen der Objektorientierung
Nebenläufige Programmierung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung Funktionen und Parameter
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
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 Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
1DVG3 - Einführung Einführung DVG3. DVG3 - Einführung 2.
Struktogramme IF-ELSE FOR – Schleife
Codierer / Decodierer Basisinformationstechnologie I
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Prozesskoordination Prof. Dr. W. Riggert.
Einführung in die Programmierung
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
Die Zählschleife int s = 0 for (int k=1; k
Informatik 1 Übung 4.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
2. Zustandsorientiertes Modellieren 2.1 Einfachauswahl
Prozess-synchronisation
Thread Synchronisation in JAVA
Unterprogramme in JAVA
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Algorithmen und Datenstrukturen Übungsmodul 8
MODULA-2.
Programmiervorkurs WS 2014/15 Methoden
2. Kommunikation und Synchronisation von Prozessen 2
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
JAVA lernen: Methoden.
Der kritische Abschnitt
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Netzwerk - Programmierung
Implementieren von Klassen
Kara: act()-Methode.
 Präsentation transkript:

Semaphore void Passieren (semaphore &s) { if (s > 0) { s--; } else { WaitOn (s); } void Verlassen (semaphore &s) { if (ProcessAreWaitingOn (s)) { Signal (s); s++; Semaphore

Was sind Semaphore? Semaphore sind geschützte Variablen. binäre Semaphore/zählende Semaphore Semaphore können nur über die Funktionen P(s) und V(s) verändert werden. P(s) und V(s) sind nicht unterbrechbar (uninterruptible). Verwendung von Semaphoren gegenseitiger Ausschluss von Prozessen Synchronisation von Prozessen

Wie arbeiten Semaphore? void Passieren (semaphore &s) { if (s > 0) { s--; } else { WaitOn (s);} } void Verlassen (semaphore &s) { if (ProcessAreWaitingOn (s)) { Signal (s); } else { s++;}

gegenseitiger Ausschluss zwei Prozesse sollen nicht gleichzeitig im kritischen Bereich sein. semaphore aktiv= 1; void prozess_1() { for (;;) { P(aktiv); kritischer Bereich_1(); V(aktiv); macheWasAnderes(); } } void prozess_2() { for (;;) { P(aktiv); kritischer Bereich_2(); V(aktiv); macheWasAnderes(); } }

Prozess-Synchronisation notwendig z.B. wenn ein Prozess von anderem Prozess abhängig ist semaphore ereignis=0; void prozess_1() { vorher_1(); P(ereignis); nachher_1(); } void prozess_2() { vorher_2(); V(ereignis); nachher_2(); }

Erzeuger-Verbraucher Problem semaphore geleert=1; semaphore gefuellt = 0; int puffer; void erzeuger () { int ergebnis; for (;;) { berechne (ergebnis) P(geleert); puffer = ergebnis; V(gefuellt); } } void verbraucher () { int wert; for (;;) { P(gefuellt) V(geleert); wert = puffer; verarbeite (wert); } }

Monitore Ein Monitor enthält Daten und Methoden/Prozeduren. Nur eine Zugangsmethode kann zur gleichen Zeit aktiv sein. Der Monitor ist besetzt, sobald eine Zugangsmethode ausgeführt wird, Prozesse müssen warten. Pascal, Modula, Java unterstützen Monitor-Konzept.

Literatur www.pst.informatik.uni-muenchen.de/personen/ kroeger/Info-NF-2-Skript.pdf Stefan Middendorf, Reiner Singer: Java, dpunkt.verlag, 1999 Holger Jakobs: Betriebssysteme - Theorie, Skript b.i.b.