Nicht-blockierende Synchronisation für Echtzeitsysteme

Größe: px
Ab Seite anzeigen:

Download "Nicht-blockierende Synchronisation für Echtzeitsysteme"

Transkript

1 Nicht-blockierende Synchronisation für Echtzeitsysteme Seminar Mobile Systeme Florian Schricker 15. März 2005 Seminarleiter: Prof. Dr. Dieter Zöbel 1

2 INHALTSVERZEICHNIS INHALTSVERZEICHNIS Inhaltsverzeichnis 1 Einleitung 3 2 Synchronisation Multi-Threading Mutual Exclusion Deadlocks[2] Synchronisation und Echtzeitsysteme Mutual Exclusion und Echtzeitsysteme Fazit: Anforderungen an Synchronisation in Echtzeitsystemen 6 4 Nicht-blockierende Synchronisation für Echtzeitsysteme Wait-free Synchronization Lock-free Synchronisation CAS

3 1 Einleitung 1 EINLEITUNG In letzter Zeit haben nicht-blockierende Synchronisationstechniken in der Forschung und der praktischen Anwendung Einzug gehalten. Dabei gibt es zwei Herangehensweisen: Entweder werden Algorithmen in nicht-blockierende Algorithmen transformiert oder es wird versucht eziente Datenstrukturen zu entwerfen, die sich ohne Blockierung synchronisieren lassen. Basierend auf ezienten, nicht-blockierenden Datenstrukturen stellt [1] eine Vorgehensweise vor, ein nicht-blockierendes Echtzeitsystem zu bauen: den Fiasco Mikrokernel. Grundlage dieser Ausarbeitung ist die Dissertation von Michael Hohmuth, Pragmatic nonblocking synchronization for real-time systems [1]. Es wird zuerst beschrieben, was Synchronisation im Zusammenhang mit Betriebssystemen generell bedeutet, um nicht-blockierende Synchronisation einordnen zu können (Kapitel 2). Im Anschluss daran wird Synchronisation allgemein bei Echtzeit-Systemen (Kapitel 3) und die nicht-blockierende Synchronisation im Speziellen (Kapitel 4) vorgestellt. 3

4 2 SYNCHRONISATION 2 Synchronisation Moderne Betriebssysteme sind aufgeteilt in eine Reihe von Prozessen, die von einem Scheduler zur Ausführung gebracht werden. Um die Illusion einer gleichzeitigen Ausführung mehrerer Prozesse auf einem Ein-Prozessor- System zu erreichen, müssen Prozesse jederzeit vom Scheduler unterbrochen werden können. Dies wird als präemptives Multi-Tasking bezeichnet. 2.1 Multi-Threading Prozesse selbst bestehen aus mindestens einem, meist aber mehreren Threads, die ebenfalls dem Scheduler zur Ausführung übergeben werden - das sogenannte Multi-Threading. Die Threads eines Prozesses arbeiten zusammen auf demselben (virtuellen) Speicher, der dem Prozess vom System zur Verfügung gestellt wurde. Dieser gemeinsam genutzte Speicher muss vor ungewolltem Zugri der Threads geschützt werden, der Zugri also synchronisiert werden, da sonst Inkonsistenzen auftreten können. Synchronisation wird erreicht, indem der Zugri auf eine gemeinsam verwendete Ressource nur einem der beteiligten Threads exklusiv ermöglicht wird. Ein Thread, der exklusiven Zugri auf eine gemeinsame Ressource erhalten hat, bendet sich in seinem kritischen Bereich. Kritisch in dem Sinne, dass der exklusive Zugri nicht durch andere Threads unterbrochen werden darf. 2.2 Mutual Exclusion Die herkömmliche Technik zur Synchronisation von Threads ist die Mutual Exclusion 1. Kritische Bereiche werden bei der Mutual Exclusion durch Locks 2 geschützt. Will ein Thread X auf eine Ressource zugreifen, so versucht er, das zur Ressource gehörende Lock zu besetzen. Ist das Lock frei, erhält X das Lock und somit exklusiven Zugri auf die Ressource. Nach dem Zugri gibt X die Ressource wieder frei, indem er das Lock freigibt. Andere Threads, die auf das Lock zugreifen wollen und das Lock ihrerseits erhalten wollen, während X exklusivem Zugang gewährt wird, warten auf die Freigabe durch X. Ein Vorteil dessen ist, dass wartende Threads vom Scheduler deaktiviert werden können, um andere Threads auszuführen. 1 Mutual Exclusion: gegenseitiges Ausschlieÿen 2 Lock: Schloss, Semaphore 4

5 2.3 Deadlocks[2] 2 SYNCHRONISATION 2.3 Deadlocks[2] Deadlocks sind ein klassischer Problemfall der Mutual Exclusion, bei der Threads auf die Freigabe einer Ressource warten, möglicherweise ohne sie jemals zu erhalten [ref:en.wikipedia.org/wiki/deadlock]. Da es keinen generellen Ansatz zur Vermeidung von Deadlocks bei Mutual Exclusion gibt, ist es immer Aufgabe des Entwicklers, Deadlocks zu vermeiden. Kondition für Deadlocks 1. Durch Mutual Exclusion geschützte Ressourcen sind nur von einem Thread zugreifbar. 2. Threads warten auf die Freigabe von Ressourcen, haben aber bereits selbst exklusiv Ressourcen erhalten Nur der Thread, der das Lock auf eine Ressource erhalten hat, kann diese auch wieder freigeben. 4. Zirkuläres Deadlock; zwei Threads warten gegenseitig auf die Freigabe einer Ressource, die der andere Thread hält. 3 Hold and wait 5

6 3 SYNCHRONISATION UND ECHTZEITSYSTEME 3 Synchronisation und Echtzeitsysteme Das obige Kapitel erklärt, dass die Synchronisation gemeinsam genutzter Ressourcen in einer Multi-Threading-Umgebung unbedingt notwendig ist. In klassischen Echtzeit-Scheduling-Methoden wurde Synchronisation aber bisher ignoriert. EDF 4 und RMS 5 erlaubten keine gemeinsam genutzten Ressourcen. 3.1 Mutual Exclusion und Echtzeitsysteme Echtzeitsysteme mit klassischen Schedulern wie EDF oder RMS sind Prioritätenbasiert. Durch Prioritäten wird sichergestellt, dass wichtige Prozesse, insbesondere Event-Handler 6, vom Scheduler schnellstmöglich ausgeführt werden. Diese wichtige Anforderung kann durch die klassische Synchronisation, der Mutual Exclusion, nicht erfüllt werden. Werden gemeinsam verwendete Ressourcen durch Mutual Exclusion gesichert, kann die sogenannte Priority- Inversion auftreten. Priority-Inversion Priority-Inversion tritt immer dann auf, wenn ein Thread Y mit niedriger Priorität eine Ressource belegt, die von einem Thread X mit höherer Priorität benötigt wird. In diesem Fall ist die hohe Priorität von X eektiv invertiert auf die niedrige Priorität von Y, denn X kann nicht zur Ausführung gebracht werden. Das Problem der Priority-Inversion steigert sich weiter, wenn ein Thread Z mittlerer Priorität anstelle von X vom Scheduler zur Ausführung gebracht wird. Dies könnte geschehen, wenn zum Beispiel die Ausführungszeit von Y abgelaufen ist. 3.2 Fazit: Anforderungen an Synchronisation in Echtzeitsystemen Es ist es wichtig, dass hoch-priorisierte Threads vom Scheduler eines Echtzeitsystems möglichst schnell zur Ausführung gebracht werden können. Diese wichtige Anforderung kann für die Synchronistion nur erfüllt sein, wenn sie voll präemptiv ist und Priority-Inversion verhindert. Beides wird von der Synchronisation durch Mutual Exclusion nicht erfüllt. 4 EDF: Earliest Deadline First 5 RMS: Rate-Monotonic Scheduling 6 Zum Beispiel könnte ein Event-Handler die Auslösung eines Airbags veranlassen. 6

7 4 NICHT-BLOCKIERENDE SYNCHRONISATION FÜR ECHTZEITSYSTEME 4 Nicht-blockierende Synchronisation für Echtzeitsysteme Unter nicht-blockierender Synchronisation versteht man Protokolle zur gemeinsamen Verwendung von Ressourcen. Sie verhindert, dass beim Zugri Blockierungen auftreten. Nicht-blockierende Synchronisation ist voll präemptiv und es tritt keine Priority-Inversion auf. Es gibt zwei Arten von nicht-blockierender Synchronisation: Wait-free und Lock-free Synchronisation, die im Folgenden vorgestellt werden. 4.1 Wait-free Synchronization Bei dieser Art nicht-blockierender Synchronisation blockieren Threads nicht beim Zugri auf eine belegte Ressource, sondern unterstützen den Blocker. Jede Ressource wird zu diesem Zweck über einen Helfer-Stack gesichert. Ablauf beim Zugri auf eine gemeinsam verwendete Ressource Wenn ein hoch-priorisierter Thread X beim Zugri auf eine gemeinsam verwendete Ressource erkennt, dass diese von einem niedrig-priorisierten Thread Y gehalten wird, hilft X dem Thread Y. Das heisst: 1. X fügt sich dem Helfer-Stack der Ressource zu. 2. Anstatt zu warten gibt X seine CPU-Zeit an Y weiter, um schnellstmöglich Zugri auf die Ressource zu erlangen. Das bedeutet eektiv, dass X seine Priorität an Y überträgt. Durch die vorübergehende Erhöhung der Priorität von Y ist sichergestellt, dass kein anderer Thread vom Scheduler zur Ausführung gebracht wird. Diese Vorgehensweise wird als Priority-Inheritance bezeichnet. 3. Wenn Y seinen Zugri auf die Ressource beendet hat Der Helfer-Stack hat einen entscheidenden Vorteil: Da bei einem Echtzeitsystem der Scheduler Threads Prioritäten-basiert zur Ausführung bringt, ist der höchst-priorisierte Thread immer der erste im Helfer-Stack. Niederpriorisierte Threads können nicht davor gestellt werden und die CPU erhalten; somit ist auch das Problem der Priority-Inversion bei der Wait-free Synchronisation gelöst. 7

8 4 NICHT-BLOCKIERENDE SYNCHRONISATION FÜR 4.2 Lock-free Synchronisation ECHTZEITSYSTEME 4.2 Lock-free Synchronisation Lock-free Synchronisation funktioniert ohne die Notwendigkeit, gemeinsam genutzte Ressourcen durch Locks zu sichern. Dies wird ermöglicht, indem Threads das Berechnungsergebnis ihrer kritischen Bereichs vorbereiten und anschlieÿend versuchen, das Ergebnis in einem Schritt zu übertragen. Ermöglicht wird Lock-free Synchronisation durch den atomaren Maschinenbefehl CAS - Compare-And-Swap. Durch CAS, anschlieÿend im Detail vorgestellt, können Konikte erkannt werden, wenn zwei Threads gleichzeitig versuchen, eine Speicheradresse zu verändern. Durch Compare wird sichergestellt, dass an der Speicheradresse der erwartete Wert vorliegt. Ist dies der Fall, wird das Berechnungsergebnis übertragen - Swap. Hat sich die Speicheradresse in der Zwischenzeit, zum Beispiel durch einen anderen Thread, geändert, so schlägt Compare fehl und die Operation wird neu gestartet (Retry-Loop). Lock-free Synchronisation mit CAS hat folgende Vorteile: Ohne Locks kann es nie zu Deadlocks kommen. Threads sind besser voneinander isoliert, weil keine Locks auf Ressourcen von gecrashten Threads gehalten werden können. Daraus folgt eine bessere Fehlertoleranz und Robustheit des Systems. Lock-free Synchronisation eignet sich gut für Multi-Prozessor-Systeme. 4.3 CAS CAS ist eine Vorbedingung für die Lock-free Synchronisation und arbeitet auf typ-sicherem Speicher [ref:usenix7]. Durch CAS werden eine Reihe von Datenstrukturen ermöglicht, die dadurch Lock-free synchronisiert werden. Diese sind Zähler Stacks FIFO Queue Liste (single-linked) Um komplexere Datenstrukturen zu ermöglichen, wird das sogenannte MW- CAS (Multi-Word-Compare-And-Swap) benötigt. Bei MWCAS werden zwei Speicherstellen gleichzeitig überprüft und gegebenenfalls neu gesetzt. MW- CAS ist kein atomarer Prozessorbefehl der x86-familie und muss deshalb als 8

9 4.3 CAS 4 NICHT-BLOCKIERENDE SYNCHRONISATION FÜR ECHTZEITSYSTEME Software-Implementation bereitgestellt werden. In dieser Ausarbeitung wird MWCAS nicht behandelt. Im Folgenden wird CAS in Form einer C-Beispielimplementation vorgestellt und eine Lock-free Stack-Implementation damit realisiert. CAS in C bool CAS(int* address, int old_val, int new_val) if (*address == old_val) *address == new_val; return TRUE; } else return FALSE; } Lock-free Stack mit CAS in C Ein Stack stellt die Operationen push (füge dem Stack ein neues Element hinzu) und pop (entferne das oberste Element vom Stack und gebe es zurück) zur Verfügung. Die Datenstruktur des Stacks ist ein struct: struct StackElement int value; struct StackElement* next; } Push-Operation Bei der Push-Operation wird eine Endlos-Schleife ausgeführt. In dieser Schleife wird der next-pointer des neuen Stack-Elements auf das oberstes Stack-Element (top) gesetzt. Eine CAS-Operation überprüft anschlieÿend, ob das oberste Stackelement verändert wurde. Ist dies nicht der Fall, so wird das neue Stackelement als top gesetzt und die Schleife verlassen. Wurde top, zum Beispiel durch einen anderen Thread, verändert, so wird die Schleife neu gestartet und der next-pointer auf das neue, oberste Stack-Element gesetzt. 9

10 4.3 CAS 4 NICHT-BLOCKIERENDE SYNCHRONISATION FÜR ECHTZEITSYSTEME void push(stackelement* top, StackElement* new) do ADDR a = ⊤ new->next = *top; } while (!CAS(&top, a, &(new->next))); Pop-Operation Die Pop-Operation verläuft ähnlich der Push-Operation. Dabei wird die Adresse des top-elementes sowie die Adresse des neuen top- Elementes lokal gespeichert. Die CAS-Operation überprüft, ob sich das top- Element in der Zwischenzeit verändert hat und setzt das next-element von top als neues, oberstes Stackelement. Schlägt der Vergleich fehl, so wird die Operation neu gestartet. StackElement* pop(stackelement* top) if (top->next!= NULL) ADDR topaddr, next; do topaddr = ⊤ next = &(top->next); } while(!cas(&(top->next), next, next)); *top = next; return topaddr; } else return NULL; } Fazit Lock-free Synchronisation Obwohl die Lock-free Synchronisation wichtige Vorteile bietet (keine Priority-Inversion, keine Deadlocks) und sich so generell gut für Echtzeitsysteme zu eignen scheint, gibt es doch Schwierigkeiten. Diese müssen beim Einsatz der Lock-free Synchronisation berücksichtigt werden: CAS muss als Maschinenbefehl vorhanden sein. 10

11 4.3 CAS 4 NICHT-BLOCKIERENDE SYNCHRONISATION FÜR ECHTZEITSYSTEME MWCAS ist oft (z.b. bei der x86-familie) nicht als atomarer Prozessorbefehl vorhanden und muss aufwändig als Software-Lösung bereitgestellt werden. Schlägt das Compare fehl, so muss das Ergebnis in einem Retry-Loop neu berechnet werden. Für höchst-priorisierte Threads eines Echtzeitsystems ist dies zwar nur maximal einmal notwendig, es kann aber keine generelle Aussage für nieder-priorisierte Threads getroen werden (aktuelle Forschungen versuchen dieses Problem zu lösen [ref]). Lock-free Synchronisation funktioniert nur durch CAS- / MWCAS- Datenstrukturen. Komplexere Algorithmen müssen dahingehend angepasst werden oder gänzlich neu entwickelt werden. 11

12 LITERATUR LITERATUR Literatur [1] Michael Hohmuth: Pragmatic nonblocking synchronization for real-time systems, Dresden University of Technology, 10/2002 [2] Wikipedia.org - Deadlocks, 12

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

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

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C

Mehr

Linked Lists The Role of Locking

Linked Lists The Role of Locking Clara Lüling, Stephan Bittner Linked Lists The Role of Locking Verkettete Liste - Die Rolle des Sperrens Gliederung Linked Lists The Role of Locking 1. Verkettete Listen 2. Algorithmen 1. Coarse-Grained

Mehr

13. Dynamische Datenstrukturen

13. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen

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

Lock-free Datenstrukturen

Lock-free Datenstrukturen Lock-free Datenstrukturen Eine Einführung in die lock-free Programmierung Burak Ok Friedrich-Alexander Universität Erlangen-Nürnberg (FAU) 24. Januar 2017 burak.ok@fau.de Lock-free Datenstrukturen (24.

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

Arten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation

Arten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation Koordination nebenläufiger Prozesse Arten der Synchronisation Systemaufrufe Programmverwaltung Zugriffskontrolle Dateiverwaltung Ein /Auslagerung Vernetzung Ein /Ausgabe Fadenverwaltung Koordination Prozesseinplanung

Mehr

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume) Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen,

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

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

Praxis der Programmierung

Praxis der Programmierung Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen

Mehr

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

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

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

12. Dynamische Datenstrukturen

12. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty

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

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

Beispiel für überladene Methode

Beispiel für überladene Methode Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.713 Prüfung Echtzeitsysteme 27. März 2015 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(25) 3.)(15) 4.)(25) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Grundlagen

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Klausur. Betriebssysteme SS

Klausur. Betriebssysteme SS Klausur FB Informatik und Mathematik Prof. R. Brause Betriebssysteme SS 2011 14.7.2011 Vorname: Nachname: Matrikelnummer: Geburtsdatum: Studiengang: Bitte tragen Sie auf jeder Seite Ihre Matrikelnummer

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

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

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

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

Mehr

6. Verkettete Strukturen: Listen

6. Verkettete Strukturen: Listen 6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Gegenseitiger Ausschluss 102

Gegenseitiger Ausschluss 102 Gegenseitiger Ausschluss 102 MX = M (P 1... P n ) M = (lock unlock M) P i = (lock begin_critical_region i end_critical_region i unlock private_work i P i ) n Prozesse P 1... P n wollen konkurrierend auf

Mehr

Schnittstellen, Stack und Queue

Schnittstellen, Stack und Queue Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

1 Abstrakte Datentypen

1 Abstrakte Datentypen 1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;

Mehr

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack). Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

Mehr

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

librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation

librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation librtipc - Bibliothek für echtzeitfähige Interprozesskommunikation Josef Raschen Diplomarbeit: Hardwareunabhängige Interprozesskommunikation für Echtzeitanwendungen Lehrstuhl für Betriebssysteme RWTH Aachen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

9. Vorlesung Betriebssysteme

9. Vorlesung Betriebssysteme Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian

Mehr

Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung

Tafelübung zu BSRvS1. 3. Philosophen.  Fortsetzung Grundlagen C-Programmierung Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Tafelübung zu BSRvS1 3. Philosophen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/

Mehr

Lock-freie Konzepte für parallele Software. Ein Überblick. Klaus Kusche, September 2014

Lock-freie Konzepte für parallele Software. Ein Überblick. Klaus Kusche, September 2014 Lock-freie Konzepte für parallele Software Ein Überblick Klaus Kusche, September 2014 Mein Bezug zum Thema Ich habe Lock-freie Algorithmen und Datenstrukturen als zentrale Komponente eines Betriebssystems

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

Java Concurrency Utilities

Java Concurrency Utilities Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),

Mehr

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin Scheduling in Echtzeitbetriebssystemen Prof. Dr. Margarita Esponda Freie Universität Berlin Echtzeitsysteme Korrekte Ergebnisse zum richtigen Zeitpunkt Hart Echtzeitsysteme Eine verspätete Antwort ist

Mehr

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen

Mehr

Programmieren I. Kapitel 13. Listen

Programmieren I. Kapitel 13. Listen Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen

Mehr

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010 Klausurort: Vorname Name: Adresse: Matrikelnummer:

Mehr

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

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

Mehr

POSIX Echtzeit: Kernel 2.6 und Preempt-RT

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

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Kapitel 4. Kontrollstrukturen

Kapitel 4. Kontrollstrukturen Kapitel 4 Kontrollstrukturen Kontrollstrukturen 1 Ziele Kontrollstrukturen in imperativen Programmen kennenlernen und verstehen. Realisierung der Kontrollstrukturen in Java. Kontrollstrukturen 2 Anweisungen

Mehr

Nebenläufige Programme mit Python

Nebenläufige Programme mit Python Nebenläufige Programme mit Python PyCon DE 2012 Stefan Schwarzer, SSchwarzer.com info@sschwarzer.com Leipzig, Deutschland, 2012-10-30 Nebenläufige Programme mit Python Stefan Schwarzer, info@sschwarzer.com

Mehr

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme Wilhelm Haas Wilhelm.Haas@informatik.stud.uni-erlangen.de Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 4

Mehr

Echtzeitscheduling (1)

Echtzeitscheduling (1) Echtzeitscheduling (1) Scheduling in Betriebssystemen Ressourcenausteilung (CPU, Speicher, Kommunikation) Faire Ressourcenvergabe, insbesondere CPU Hohe Interaktivität / kurze Reaktionszeit für interaktive

Mehr

Ausgewählte Kapitel eingebetteter Systeme

Ausgewählte Kapitel eingebetteter Systeme Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg 08.06.2005 Übersicht Problemdefinition Scheduling-Strategien

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Hinweis: Weitere ufgaben zu diesem Thema finden sie in den egleitbüchern zur Vorlesung.

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

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

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

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

Prüfung Informatik D-MATH/D-PHYS :00 17:00

Prüfung Informatik D-MATH/D-PHYS :00 17:00 Prüfung Informatik D-MATH/D-PHYS 9. 8. 0 5:00 7:00 Prof. Bernd Gartner Kandidat/in: Name:. Vorname:. Stud.-Nr.:. Ich bezeuge mit meiner Unterschrift, dass ich die Prufung unter regularen Bedingungen ablegen

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

Informatik II Übung, Woche 14

Informatik II Übung, Woche 14 Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation

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

Musterlösung zur KLAUSUR

Musterlösung zur KLAUSUR Johann Wolfgang Goethe-Universität Frankfurt am Main FB 15 Institut für Informatik Praktische Informatik PD Dr. R. Brause Musterlösung zur KLAUSUR zur Vorlesung Betriebssysteme I WS 2003/04 Name Vorname

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Multi-Threading wie in C++11

Multi-Threading wie in C++11 Multi-Threading wie in C++11 Franco Chiappori Embedded Computing Conference 2013 Reiseroute Guards Lock-Free Data Structures Futures Promises Atomic Types Memory Barriers Compiler / Prozessor Compiler

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September

Mehr

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem

Deadlocks. Christoph Lindemann. Betriebssysteme. Betriebssysteme WS 2004/05. Fahrplan. Inhalt. Das Deadlock Problem Betriebssysteme WS 2004/05 Deadlocks Christoph Lindemann Fahrplan 14.10. Organisation der Vorlesung, Einführung in Betriebssysteme 21.10. Strukturen von Betriebssystemen 28.10. Prozesse und Threads 4.11.

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

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung

Mehr

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12

Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12 Stand der Folien: 15. November 2011 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (5) 1 Übersicht über die Operationen Mutual-Exclusion

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil III Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung

Mehr

(b.) Welche Möglichkeit gibt es, die Methode run so zu verändern, dass Bora Bora IMMER zuletzt ausgegeben wird?

(b.) Welche Möglichkeit gibt es, die Methode run so zu verändern, dass Bora Bora IMMER zuletzt ausgegeben wird? Threads - Seite 1 Threads (1.) (a.) Nehmen Sie das Beispiel 2 von der Folie und ändern Sie dies ab, so dass sie z.b. ein Array von 100 Threads starten können! Testen Sie aber zunächst ihren Kode mit einem

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

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Klausur. Betriebssysteme SS 2007

Klausur. Betriebssysteme SS 2007 Matrikelnummer: 9999999 Klausur FB Informatik und Mathematik Prof. R. Brause Betriebssysteme SS 2007 Vorname: Nachname: Matrikelnummer: Geburtsdatum: Studiengang: Bitte tragen Sie auf jeder Seite Ihre

Mehr

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

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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

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

3.2 Prozessumschaltung

3.2 Prozessumschaltung 3.2 Prozessumschaltung (dispatching) deaktiviert einen Prozess und aktiviert einen anderen. Wann? aktiver Prozess wird vom Prozessor verdrängt zugunsten eines bereiten Prozesses aktiver Prozess blockiert,

Mehr

Algorithmen implementieren. Implementieren von Algorithmen

Algorithmen implementieren. Implementieren von Algorithmen Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente

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

( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Wartende Prozesse in einer (FIFO-) Warteschlange organisieren

( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Wartende Prozesse in einer (FIFO-) Warteschlange organisieren 22 2.2 Prozesse Prozess-Scheduling Scheduler: ( Faire ) Zuteilung eines Prozesses an den Prozessor (Entscheidung über Swapping) Scheduling-Verfahren Round Robin (einfach und häufig verwendet) Wartende

Mehr

Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware

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

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2010 / 2011

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2010 / 2011 Name: Matrikelnummer: Studiengang: INF CV IM Lehramt BSc MSc BEd MEd Diplom Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2010 / 2011 Montag, den 21. Februar 2011, 14:15 Uhr 15:45 Uhr Prof. Dr.

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 17. JAVA Kommunikation von Threads 1 Motivation

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr