Multithreading per MFC unter W2K auf Dual-Prozessor-PC

Größe: px
Ab Seite anzeigen:

Download "Multithreading per MFC unter W2K auf Dual-Prozessor-PC"

Transkript

1 Labor für Computertechnik Leitung : Prof. Dr. T. Risse Wintersemester 2002 / 2003 Multithreading per MFC unter W2K auf Dual-Prozessor-PC Von Peter Klammer TI 8 I und Jens Gardewin TI 8 I Vortragsdatum :

2 I. Vorwort Diese Ausarbeitung wurde im Rahmen des Labors für Computertechnik erstellt, um einen kleinen Eindruck vom Aufwand zu vermitteln den Entwickler von Betriebssystemen, Anwendungen und Compilern gleichermaßen betreiben, um Multithreading unter Microsoft Foundation Classes und Windows 2000 zu ermöglichen. Wir setzen Grundkenntnisse im Bereich der Betriebssysteme und im Programmieren voraus, da wir im Rahmen dieses Dokumentes lediglich eine kurze Zusammenfassung der Grundlagen liefern können. Im Rahmen unserer Arbeit ist ein Test-Programm entstanden, welches hier näher vorgestellt werden wird und die Grundlage unserer abschleißenden Beurteilung von Multithreading bildet. Seite 2 von 32 Datum:

3 II. Inhaltsverzeichnis I. Vorwort...2 II. Inhaltsverzeichnis Begriffserklärung Was ist ein Thread? Mechanismen zum Speicherschutz (vor gegenseitigem Zugriff) Was ist ein Semaphor? Was versteht man unter einer Mutex? Was ist ein Software-Monitor? Allgemeines zu Events Event - Realisierung und Fairness : Critical Section (administratives Sperren) Abschließender Vergleich der vorangegangenen Mechanismen : Scheduling Threading unter Windows Priorisierung von Threads unter Windows Priorisierung von Threads in zwei Stufen Wie uns Windows dazwischenfunkt! Prioritätsstufen unter Windows Ändern von Prioritäten Ändern von Prioritäten im Task - Manager Kommando zur Prioritätsänderung Thread Zustandsfolge unter Windows Grundlagen zum Threading in Visual C++ 6.0/.NET Wie wird ein Thread unter Visual C++ repräsentiert? Der Unterschied zwischen einem Arbeits- und einem Windowthread Erstellen eines Arbeitsthreads Zerstören eines Threads Seite 3 von 32 Datum:

4 4.4. Pro und Contra der Benutzung von (mehreren) Threads Semaphore, Mutex und Critical Sections als Klassendefinition der MFC Das Beispielprogramm Einführung Funktionsweise Messmethode / Genauigkeit Ergebnis Single Prozessor Dual Prozessor Multiprozessorsysteme Der Source-Code Fazit Vorteile Nachteile Sonderfall Hyperthreading des Pentium IV Ausblick Quellen...32 Seite 4 von 32 Datum:

5 1. Begriffserklärung 1.1 Was ist ein Thread? Threads sind als kleine berechenbare Bestandteile eines Prozesses zu verstehen. Beachte 1: Beachte 2: Bei Prozesswechsel wird der Adressraum gewechselt, bei Thread -Wechsel innerhalb eines Prozesses nicht! Bei einem Mehrprozessorsystem kann das Betriebssystem die Threads eines Prozesses von verschiedenen Prozessoren ausführen lassen ( Parallelarbeit!) 1.2. Mechanismen zum Speicherschutz (vor gegenseitigem Zugriff) Die beschriebenen Synchronisierungsmassnahmen sind in vielfacher Hinsicht schwerfällig und undurchsichtig. Wenn ein Thread sich in einem kritischen Abschnitt befindet, sollten nicht die anderen Threads ständig um Erlaubnis zum Eintritt in den kritischen Abschnitt fragen. Es sollte möglich sein, die wartenden Threads zu deaktivieren, bis sie durch die Fertig-Meldung des seinen kritischen Abschnitt verlassenden Threads aufgeweckt werden. Der wechselseitige Ausschluss sollte nicht im Anwenderprogramm kodiert sondern mit den Stammfunktionen (primitives) des Nucleus garantiert werden, so ist dieser Prozess unteilbar und kann nicht unterbrochen werden (Grundvoraussetzung) Was ist ein Semaphor? Ein Zähler, mit dem sich ein wechselseitiger Ausschluss realisieren lässt, der einen kritischen Abschnitt schützt. Solange man den Zähler noch inkrementieren kann, so dass er eine bestimmte Maximalzahl nicht überschreitet, darf man die geteilte Ressource verwenden, ansonsten muss man warten. Seite 5 von 32 Datum:

6 Ist der Maximalwert = 1, so spricht man von einem binären Semaphor, und derjenige, der den Zähler zuletzt inkrementiert hat,,,besitzt'' das Semaphor. Welches somit ähnlich einem Staffelstab mit Prozesswechsel seinen Eigentümer zum aktuellen Läufer wechselt, während sich alle anderen mit dem vorherigen Läufer zusammen auf der Bank ausruhen. Semaphore können mit Monitoren implementiert werden Die Umkehrung gilt ebenfalls. Somit sind Semaphore und Monitore hinsichtlich ihrer Synchronisationsfähigkeiten gleich mächtig Was versteht man unter einer Mutex? Mutex ist ein Kunstwort aus Mutual und Exclusion (gegenseitiger Ausschluss). Ein Mutex ist vom Semaphor abgeleitet und besitzt nur zwei Zustände. Daher wird es oft als binäres Semaphor bezeichnet. Das Mutex gehört zur zu teilenden Ressource! Eine Mutex wird in Systemen benötigt, bei denen eine Ressource (z.b. Variable, Gerät u.a.) von verschiedenen Modulen abwechselnd benutzt werden soll. Der Teil der Instruktionen, in dem Benutzung der Ressource erfolgt, wird als kritischer Abschnitt (critical section) bezeichnet. Eine Mutex wird dabei von jedem der Module am Anfang eines kritischen Abschnitts gesperrt, so dass kein anderes Modul auf die Ressource zugreifen kann. Am Ende des kritischen Abschnitts wird die Mutex wieder freigegeben. Dies geschieht durch Lock und Unlock Befehle auf die zu schützende Ressource Was ist ein Software-Monitor? Ein Monitor ist ein Objekt, das Daten und Methoden/Prozeduren enthält. Damit ein Thread in den Monitor eindringen kann, muss dieser ein monitor entry aufrufen. Viele Threads können Monitor entry's desselben Monitors aufrufen; der wechselseitige Aussschluss bleibt garantiert. Nur ein Thread ist gleichzeitig im Innern des Monitors. Threads, die in einen Monitor eintreten wollen der Seite 6 von 32 Datum:

7 bereits besetzt ist, müssen warten. Die Prozeduren/Methoden eines Monitors können auf globale Daten zugreifen. Die lokalen Daten des Monitors sind aber von aussen nicht zugänglich (verstecken von Information). Vorteile : vollständige Datenabstraktion vollständiger wechselseitiger Ausschluss zwischen allen seinen Operationen Im Innern eines Monitors ist es aber unter Umständen nötig, dass ein Thread wartet. Ein solcher Thread wird, durch den Monitor, aus dem Monitor ausgelagert. Auf diese Weise bleibt der Monitor nicht blockiert und ein anderer Thread kann in den Monitor eintreten. Falls ein anderer Thread den Wartenden weckt, so kann diese, sobald der Monitor frei ist, diesen wieder betreten. Abbildung 1: Critical Section Für die Synchronisation im Innern des Monitors müssen folgende Bedingungen gelten: - Während dem Wecken darf keine anderer Thread dazwischen treten. Seite 7 von 32 Datum:

8 - Um zu verhindern, dass die 'Weckbedingung' durch den noch aktiven Thread wieder geändert wird, verlangt man, dass die Steuerung sofort an den aufgeweckten Thread übergeht. Das bedeutet, dass wartende Threads eine höhere Priorität gegenüber dem neu eingetretenen haben Allgemeines zu Events Prozesse warten auf Ereignisse (engl.: events), die von anderen Prozessen bzw. deren Threads ausgelöst werden. Events dienen zur Prozess- und somit ebenfalls zur Threadkommunikation, bzw. deren Synchronisation. Events sind Objekte vom Typ Monitor. Mehrere Threads können auf ein Ereignis warten: beim Eintreten des Ereignisses werden entweder alle Threads oder nur ein Thread aufgeweckt. das Ereignis geht verloren, wenn keiner wartet Event - Realisierung und Fairness : 1. Fairness bei Monitor-Freigabe: im Monitor blockierte Threads haben Vorrang vor eintrittswilligen Prozessen 2. signal-and-wait: Ein aus wait aufgeweckter Prozess übernimmt den Monitor, und der aufweckende Prozess blockiert in signal (!). Begründung: Monitorübergabe ohne Zustandsänderung. 3. signal-and-continue: Ein aus wait aufgeweckter Prozess übernimmt Monitor erst dann, wenn der aufweckende Prozess ihn freigibt. Begründung: Effizienz. 4. signal-and-return: signal ist mit Verlassen des Monitors verbunden. Begründung: Vorteile von 2 und 3. Seite 8 von 32 Datum:

9 1.2.4 Critical Section (administratives Sperren) Ein vom Programmierer selbst geschützter Bereich wird als atomar gekennzeichnet. D.h. dieser Abschnitt darf nicht von anderen Threades oder Prozessen unterbrochen werden und der Speicherbereich gehört exklusiv zu diesem Abschnitt. Der betreffende Thread kann nicht unterbrochen und sein zugewiesener Speicherbereich nicht betreten werden, bevor der Thread nicht beendet oder unterbrochen wurde. Diese Möglichkeit ist bei richtigem gebrauch höchst effizient, aber auch gefährlich bei Fehlern! Der Schutz dieses Speicherbereiches wird meist durch einen Mutex als einfachstes Mittel realisiert. Auch andere Mechanismen zum Schutz vor fehlerhaftem Speicherzugriff sind denkbar, hier werden auch die von vielen Betriebssystemen implementierten Ereignisse verwendet Abschließender Vergleich der vorangegangenen Mechanismen : Mutex: eignet sich lediglich um einzelne Ressourcen nacheinander mehreren Threads zur Verfügung zu stellen. Semaphor: Mächtiges, wenn auch einfaches Werkzeug um Threads zu organisieren, bei richtiger Anwendung wird nicht vergessen einen wartenden Thread auszuführen. Monitor: Erste konsequente Entwicklung eines Objekts, welches Threads und Prozesse überwacht, richtig eingesetzt eine gute Methode. Ereignisse: Sonderform der Monitore, oft implementiertes Mittel (auch in Windows 2000), um Prozesse und Threads zu kontrollieren und dient zur Kommunikation unter Prozessen und Threads. Seite 9 von 32 Datum:

10 1.3 Scheduling Die am häufigsten verwendete Methode in modernen Betriebssystemen um Prozesse und Threads für den Nutzer fast gleichzeitig auszuführen. So bedeutet Multitasking nicht, dass Anwendungen tatsächlich gleichzeitig den Prozessor verwenden, sondern vielmehr, das die zugehörigen Threads nacheinander die CPU verwenden können. Diesen Ablauf steuert im Betriebssystem eine Software, die Scheduler genannt wird, dem Anwender wird diese Ablaufsteuerung verborgen. Unter Windows 2000 z.b. kann man sich im Task - Manager lediglich die Ausführungszeiten ansehen. Den zeitlichen Gebrauch der CPU kann der Anwender lediglich durch Verändern der Prioritäten der Prozesse ändern (dies wird später genauer erläutert). Allgemein gilt : Je höher die Priorität, desto mehr Zeit wird einem Prozess bzw. Thread zur Verfügung gestellt. Abbildung 2: Scheduling Es müssen nicht immer alle Threads eines Prozesses unmittelbar nacheinander ausgeführt werden. Bestandteile eines Prozesses können vom Scheduler nach Bedarf zerstückelt und aufgeteilt werden, d.h. der Prozess 5 kann durchaus noch einen Thread e haben, der später erst verarbeitet wird. Seite 10 von 32 Datum:

11 Der Scheduler bedient sich hierzu der vorher erläuterten Verfahren und aktiviert immer nur einen Thread je verfügbarer Ressource. Da in Multiprozessor-Systemen mehrere Prozessoren zur Verfügung stehen, kann man sich dort vereinfacht zwei Zeitscheiben vorstellen. Jedoch muss von beiden ein Sektor von mindestens 10% für die Kommunikation unter den CPUs abgezogen werden. Dieser Overhead ist leider unvermeidbar. 2. Threading unter Windows 2000 Allgemeine Übersicht wie Threading unter Windows 2000 funktioniert. Da wir nun die allgemeinen Begrifflichkeiten und grundlegenden Fakten erarbeitet haben, wird hier nun speziell darauf eingegangen wie Threads unter Windows 2000 manipuliert werden können. Um die Manipulation der Prioritäten genauer zu verstehen werden aber zunächst noch die folgenden zwei Unterpunkte zu Windows 2000 aufgeführt. Dies soll Ihr Verständnis vertiefen und Ihnen die Interna der Priorisierung in diesem Betriebssystem näher bringen. 2.1 Priorisierung von Threads unter Windows 2000 Threads lassen sich ihrer Priorität entsprechend ordnen und damit in ihrer Ausführung beeinflussen. So wird ein Thread A durch einen anderen Thread B mit einer höheren Priorität unterbrochen. Somit erfolgt eine Kontextänderung (Wechsel) zum Thread B und dieser wechselt in den Zustand breit. Seite 11 von 32 Datum:

12 Windows 2000 kennt 32 Prioritätsstufen, diese sind von 0 bis 31 durchnummeriert, wobei 31 die höchst mögliche Prioritätsstufe ist. Vereinfacht lässt sich sagen: Der Bereich 0 bis 15 wird dynamisch vergeben, oberhalb fallen die Prioritäten in den so genannten Echtzeitbereich Priorisierung von Threads in zwei Stufen Die Basispriorität : o Diese Priorität erbt der Thread von seinem Prozess also: HOCH, HÖHER ALS NORMAL, NORMAL, NIEDRIGER ALS NORMAL, NIEDRIG oder IDLE Die relative Priorität : o Sie ergänzt die Basispriorität um weitere Stufen: ZEITKRITISCH, MAXIMAL, ANGEHOBEN, NORMAL, ABGESENKT, MINIMAL oder IDLE. o Idle bezeichnet die Prioritätsstufe 0. Solche Threads werden nur ausgeführt, wenn keine anderen Aufgaben anstehen. Die später noch erwähnte Basis-Prioritätsstufe Echtzeit kann nur von Administratoren und entsprechend berechtigten Benutzern ausgeführt werden und ist daher für die Anwendungsprogrammierung kritisch Wie uns Windows dazwischenfunkt! Im dynamischen Bereich (0-15), kann die Priorität vom Betriebssystem frei angepasst werden, d.h. Veränderungen von Prioritäten ohne Rückfragen oder Information des Benutzers. Prioritäten im Echtzeitbereich (15-31) werden nicht angetastet. Seite 12 von 32 Datum:

13 2.1.3 Prioritätsstufen unter Windows 2000 So entsteht eine Kombination der Prozess - Priorität und der relativen Thread-Priorität, die in der folgenden Tabelle zusammengefasst wird: Prozess-Priorität System Echtzeit System Hoch Höher als Normal Niedriger als Niedrig Idle Kern Dienste normal Normal Zeitkritisch Maximal Angehoben Normal Abgesenkt Minimal Die fett gedruckten Zahlen entsprechen den Prioritäten die durch den Task - Manager zugeteilt oder angegeben werden. Für System- und Idle- Prozesse kann leider keine genauere Angabe gemacht werden, diese Stufen lassen sich als Anwender überhaupt nicht verändern! Die Thread -Prioritäten wirken auf IRQL 0 oder 1, d.h. Threads werden nicht durch Interrupts behindert. Das Scheduling der Threads findet auf IRQL 2 statt. Es handelt sich hierbei ausschließlich um Software-IRQs! Seite 13 von 32 Datum:

14 2.2 Ändern von Prioritäten Die Prioritäten der laufenden Prozesse und der dazugehörigen Threads lassen sich im Task - Manager ändern. Ausnahme bilden die Echtzeitprioritäten, denn hierzu ist zusätzlich das Systemrecht ANHEBEN DER ZEITPLANUNGSPRIORITÄT notwendig. Sollten Sie nicht über diese Berechtigung verfügen, ist die maximal erreichbare Prioritätsstufe Hoch. In den Standardeinstellungen von Windows 2000 ist diese Berechtigung lediglich den Administratoren vorbehalten. Wenn Sie einer Anwendung direkt beim Start eine Priorität zuweisen möchten, dann verwenden Sie bitte das Kommando start mit dem entsprechenden Parameter z.b. aus dem Ausführungs-Fenster, oder der Kommandozeile Ändern von Prioritäten im Task - Manager Abbildung 3: Taskmanager Seite 14 von 32 Datum:

15 2.2.2 Kommando zur Prioritätsänderung Das Kommando: start /abovenormal notepad ruft den Editor Notepad mit der Priorität HÖHER ALS NORMAL auf. Die Arbeit mit der Kommandozeile erfordert unter Windows 2000 in der Regel die Eingabe der englischen Bezeichnungen (sind in der Hilfe zu start zu finden). Seite 15 von 32 Datum:

16 3. Thread Zustandsfolge unter Windows 2000 Es wird immer der Thread ausgeführt, der die höchste Priorität hat und Bereit ist. Die folgende Grafik soll das Scheduling und den Wechsel der Ausführungszustände näher veranschaulichen: Abbildung 4: Zustandsfolgediagram Ein Thread kann sich nach erfolgreicher Initialisierung in folgenden Zuständen befinden : Bereit: Diese Threads warten auf Ausführung (gestaffelt nach ihrer Priorität) Standby : Für Multiprozessorsysteme!! Thread ist einem Prozessor zugewiesen und wartet auf Ausführung. Ausgeführt: Bezeichnet den momentan aktiven Thread mit höchster Priorität. Bleibt solange aktiv: o bis der Kernel ihn unterbricht, um einen Thread höherer Priorität auszuführener beendet wird o er sich in den Wartezustand begibt, da er von anderen Daten abhängig ist Seite 16 von 32 Datum:

17 4. Grundlagen zum Threading in Visual C++ 6.0/.NET 4.1. Wie wird ein Thread unter Visual C++ repräsentiert? Abbildung 5: Hierarchy Chart (Auszug) Ein Thread wird unter Visual C++ als CWinThread Klasse realisiert. Zu bemerken ist hierbei, dass diese Klasse eine übergeordnete Klasse zur CWinApp Klasse darstellt. Eine CWinApp Klasse repräsentiert innerhalb eines Visual C++ Projektes die eigentliche Hauptklasse, vergleichbar der Main() Funktion von anderen C++ Dialekten, von der alle anderen Vorgänge, wie zum Beispiel das Öffnen des/der Dialogfenster, oder des Anwendungsfensters, gestartet bzw. gesteuert werden. Beim Programmstart wird als erstes eine CWinApp Klasse erstellt. Da die CWinApp Klasse von der CWinThread Klasse geerbt hat, ist die erstellte CWinApp Klasse auch eine Seite 17 von 32 Datum:

18 CWinThread Klasse, die innerhalb von Visual C++ einen Thread darstellt. Das bedeutet beim Erstellen einer CWinApp Klasse wird auch ein neuer Thread erstellt, in dem alle von der Klasse aufgerufenen Funktionen durchgeführt werden. Als Besonderheit von Visual C++ ist zu erwähnen, dass alle Dialogfenster in einem eigenen Thread gestartet werden, eventuell darunter liegende Dialogfelder (-threads) bleiben dadurch in ihrem eigenen Thread voll funktionsfähig Der Unterschied zwischen einem Arbeits- und einem Windowthread Die MFC unterscheidet zwischen zwei Formen von Threads: Ein Windowthread: Diese Form wird fast immer im Rahmen eines Dialogfeldes automatisch erstellt. Vom Programmier erwartet der Compiler kein weiteres Zutun, um das dazugehörige CWinThread Objekt zu erstellen. Ferner wird es automatisch beim schließen des Dialogs zerstört. Ein Arbeitsthread: Diese Form wird immer durch den Programmierer erstellt, und dient dazu, z.b. aufwendige Berechnungen im Hintergrund unabhängig von Dialog ausführen zu lassen. Dieses Objekt wird automatisch zerstört, wenn die Arbeit (die dem Thread übergebene Funktion) beendet ist Erstellen eines Arbeitsthreads Ein Arbeitsthread wird durch ein Compilermakro automatisch erstellt. Das Makro hat folgende Syntax: CWinThread* AfxBeginThread( AFX_THREADPROC pfnthreadproc, LPVOID pparam, int npriority = THREAD_PRIORITY_NORMAL, UINT nstacksize = 0, Seite 18 von 32 Datum:

19 DWORD dwcreateflags = 0, LPSECURITY_ATTRIBUTES lpsecurityattrs = NULL ); Die Variablen haben dabei folgende Bedeutung: AFX_THREADPROC pfnthreadproc : Der Zeiger(!) auf die im Thread auszuführende Funktion. LPVOID pparam : Ein Zeiger auf eine Datenstruktur für die aufzurufende Funktion. Es findet hier keine Typenprüfung statt, so dass die Typüberprüfung durch den Programmierer stattfinden muss. int npriorty = THREAD_PRIORITY_NORMAL : Mit diesem Parameter stellt man die Priorität des Threads ein. DWORD dwcreateflags = 0 :Mit diesem Parameter kann man einstellen, wie das Objekt erstellt werden soll. Man kann zum Beispiel ein Thread erstellen, der nach der Erstellung noch nicht gestartet wird, um ihm über die Mitgliedsfunktionen noch weitere Parameter mitgeben zu können. Alle anderen Parameter sollten in einem normalen Programm so bleiben wie sie sind, denn sie setzen sehr gute Kenntnisse in Windows 2000/XP voraus Zerstören eines Threads In der Standardeinstellung wird das CWinThread Klasse automatisch, nach Beendigung der in ihr gestarteten Funktion, zerstört. Dadurch gehen die RETURN Werte der im Thread ausgeführten Funktion verloren, so dass man das Schüsselwort RETURN in diesem Zusammenhang nicht als Ergebnisrückgabe nutzen kann. Stattdessen verwendet man den Zeiger LPVOID pparam. Wie oben ausgeführt zeigt dieser Zeiger auf eine Datenstruktur, die die Parameter der Funktion, sowie das Ergebnis der Funktion enthalt. Da die Datenstruktur vor dem Aufruf des AfxBeginThread Makros erstellt wird, ist sie auch nach Beendigung der Funktion noch vorhanden. So dass das Ergebnis innerhalb der Struktur weiterverwendet werden kann. Seite 19 von 32 Datum:

20 4.4. Pro und Contra der Benutzung von (mehreren) Threads Pro o Aufwendige Arbeitsvorgänge behindern bzw. blockieren keine Dialogfelder o Unterstützung von Mehrprozessorsystemen, speziell ist hier Hyperthreading (PentiumIV) zu erwähnen. o Durch die Nutzung von Mehrprozessorssystem und mehreren Threads verkürzt sich die Rechenzeit beträchtlich. Contra o Die Programmierung wird im Vergleich zu einem Singlethread sehr aufwendig. Zwei Dinge sind zu bedenken: Voneinander abhängige Threads, z.b. Arbeits- und Dialogthread, müssen über Events miteinander kommunizieren, so dass das Dialogfeld beispielsweise die neuen, im Hintergrund berechneten Werte anzeigt. Die Datensicherheit muss explizit vom Programmierer gewährleistet werden. Die einzigste MFC Unterstützung sind hier bei die aus EBS bekannten Semaphore, Mutex, und Critical Sections. Seite 20 von 32 Datum:

21 4.5. Semaphore, Mutex und Critical Sections als Klassendefinition der MFC Semaphore, Mutex und Critical Sections sind unter der MFC als von CSyncObject abgeleitete Klassen realisiert. Abbildung 6: Hierachy Chart (Auszug) CCriticalSection Diese Klasse verhindert, dass ein im Sourcecode markierter Bereich von mehr als einem Thread zu gleich ausgeführt wird. CEvent dieses Objekt dient zum Nachrichtenaustausch zwischen den Threads. CMutex repräsentiert das aus dem EBS Unterricht bekannte MUTEX CSemaphore repräsentiert das aus dem EBS Unterricht wiederum bekannte Semaphore. Wobei hier ausdrücklich zu bemerken ist, dass sich die MFC bzw. der Compiler überhaupt nicht darum kümmert, ob Ressourcen bzw. Variablen gleichzeitig von mehren Threads gelesen oder beschrieben werden. Das ist ausdrücklich Sache des Programmierers. Seite 21 von 32 Datum:

22 5. Das Beispielprogramm 5.1. Einführung Um nun die Funktionsweise und die Performancesteigerung ermitteln zu können, wurde das Programm Threading geschrieben. Es handelt sich dabei um ein einfaches dialogbasiertes Visual C++ - Programm Funktionsweise Zur Erläuterung wurde ein einfaches Programm geschrieben, welches das Flächenintregral einer halben Sinusschwingung ausrechnet. Verwendet wurde hier ein sehr einfacher Algorithmus: 1,2 1 0,8 0,6 0,4 0, , , ,5236 0, , ,0472 1, , ,5708 1, , ,0944 2, , , , , ,14159 Abbildung 7: Sinusalgorithmus Als erstes wird die Fläche eines Streifens unterhalb der Sinuskurve berechnet. Anschließend wird die Fläche eines Streifens oberhalb der Sinuskurve berechnet. Nun werden diese Flächen addiert und anschließend durch 2 geteilt, um den Mittelwert der beiden Flächen zu erhalten. Seite 22 von 32 Datum:

23 Der Rechenvorgang wird dabei in \1\2\4\8\16\32 Threads aufgeteilt und jeweils in den drei höchsten Prioritätsstufen (Normal, Hoch und Echtzeit) ausgeführt. Angegeben wird jeweils die komplette Berechnungsdauer (bis die gesamte Fläche berechnet wurde) in Millisekunden Messmethode / Genauigkeit Die Berechnungszeit für den auf die mehreren Threads aufgeteilte Flächenintregral wird auf zwei Arten bestimmt. Zum einen mit Hilfe des im Windows - Kernel enthaltenen Timers. Dieser Timer zählt die Anzahl der Millisekunden nach dem Start von Windows. Dieser Timer ist unter Win9x/ME auf etwa eine Millisekunde genau. Unter Windows 2000/XP beträgt die Genauigkeit nur noch etwa 5 Millisekunden. So dass nun der so genannte high-resolution performance counter genutzt wird. Dieser Timer ist prozessorbasierend und ist auf manchen Systemen gar nicht und wenn äußerst unterschiedlich implementiert. Allen ist einzig gemein, dass es Zähler sind, die zeitabhängig hoch gezählt werden. Die tatsächliche Zeit wird bei diesem Timer mit Hilfe von zwei Funktionen bestimmt. Die erste Funktion bestimmt die Zahl des Counters, die zweite die Anzahl der Zählschritte (Counts) pro Sekunde. Teilt man das Ergebnis der ersten Funktion durch das Ergebnis der zweiten Funktion so erhält man den Wert des Counters in Sekunden. Aufgrund der äußerst unterschiedlichen Implementierung dieses Counters kann man keine Angaben zu dessen Genauigkeit machen. Sie beträgt auf dem Entwicklungssystem (AMD AthlonXP 1700+, KT266A) beispielsweise 2,79*10-7 s entsprechend 2,79*10-4 ms. Die Endergebnisse der Test waren selbst unter unterschiedlichsten Einflüssen reproduzierbar. Selbst der Einsatz eines CPU-Kühlers wie CPU-Idle hat keinen Einfluss auf das Ergebnis. Lediglich Abweichungen von etwa 20 ms waren zu bemerken, was bei einer Berechnungszeit von 1 s aber zu vernachlässigen ist Ergebnis Bevor nun der Sourcecode erklärt wird, möchte ich das Ergebnis vorweg nehmen, um die nicht C++ - Interessierten nicht weiter zu langweilen. Als erstes wird das Ergebnis eines Single Prozessors dargestellt. Hier bei handelt es sich um einen AMD AthlonXP mit 1466 MHz, 512 MByte DDR-RAM, und einem KT266A Chipsatz. Als Betriebssystem kam Windows 2000 Pro SP3 zum Einsatz Seite 23 von 32 Datum:

24 Single Prozessor Abbildung 8: Ergebnis auf einem AMD AthlonXP mit 1466 Mhz, 512 MByte DDR-RAM Wie zu sehen ist, ergibt sich kein Performancevorteil durch das Multithreading. Bei den beiden Prioritätsstufen Highest und Time Critical läuft die Berechnung in mehren Threads genauso schnell ab, als ob diese in einem Thread gestartet wird. Dieses Ergebnis konnte bei einem ein Prozessorsystem so erwartet werden. Wo sollte die zusätzliche Rechenleistung auch herkommen? Interessanter ist vielmehr, dass der Overhead der Threadwechsel auf Prozessorebene bei aktuellen Prozessoren so gering ist, dass dieser fast nicht mehr messbar ist. In der Prioritätsstufe Normal stellt sich eine scheinbare Performancesteigerung durch Multithreading ein. Dies lässt sich folgendermaßen erklären. Da Normale Thread sich die Rechenleistung mit allen anderen normalen Threads (denen der Tray-Icons, Systemdienste...) teilen müssen, kann man sich durch mehrere Threads zusätzliche Rechenleistung erschleichen. Unter Win2K erhält ein Thread eine bestimmte vorgegebene Rechenzeit. Wenn diese dann abgelaufen ist, ist der nächste Thread im Scheduling dran. Hat man nun 32 statt 1 Thread erhält man die 32 fache Rechenzeit. Da beim Scheduling Threads mit höherer Priorität bevorzugt werden, funktioniert dies in höheren Stufen nicht mehr, da es nicht mehr so viele Nebenthreads gibt, so dass Seite 24 von 32 Datum:

25 sich so die Rechenleistung wieder gleichmäßig aufteilt. Ferner ist festzustellen, dass man selbst mit 32 normalen Threads nicht die Rechenleistung eines highest Threads erreicht Dual Prozessor Nun folgt das Ergebnis eines Dual Prozessor Systems. Hierbei handelte es sich um ein Dual Pentium III B 600 MHz, 256 MByte SD-RAM und einem Intel BX Chipsatz. Als Betriebssystem kam wiederum Windows 2000 Pro SP3 zum Einsatz: Abbildung 9: Dual Pentium IIIB 600Mhz, 256 Mbyte SD-RAM Bei der normalen Prioritätsstufe stellt sich nicht der erwartete Performancevorteil ein. Aufgrund der oben beschriebenen Tatsache, dass es noch viele normale Nebenthreads gibt, geht die Rechleistung bzw. Rechenzeit für all die anderen Prozesse/Threads verloren. Erst durch das Aufteilen auf 32 Threads und entsprechender Rechenzeit Zuteilung erreicht man eine Halbierung der Rechenzeit. Es kann aber nicht sicher gesagt werden, ob sich durch die Aufteilung auf zwei Prozessoren oder nur um den oben beschrieben Effekt handelt. Bei den beiden anderen Prioritätsstufen stellt sich das erwartete Ergebnis ein. Beim Aufteilen in mehrere Threads halbiert sich die Rechenzeit. Allerdings stellt sich hier die Ideallösung dar, da alle Threads unabhängig von einander arbeiten. Treten Abhängigkeiten auf, d.h. ein Thread muss auf Seite 25 von 32 Datum:

26 das Ergebnis eines anderen warten, oder es entstehen Ressourcenkonflikte, zwei Threads wollen etwa ein Gerät benutzen, bricht dieser Performancevorteil zusammen. Im schlimmsten Fall erreicht man nur noch die Geschwindigkeit eines ein Prozessorsystems Multiprozessorsysteme Auf Multiprozessorsystem sollte sich ein ähnliches Verhalten wie zu einstellen. Die Anzahl der Threads zur Berechnung sollte für eine optimale Ausnutzung der Performance gleich oder größer der Anzahl von den Prozessoren im System sein. Leider konnte dies mangels eines Multiprozessorsystems (4 oder mehr Prozessoren) nicht verifiziert werden Der Source-Code Hier sollen nun Auszüge gezeigt werden, die die Anwendung des Multithreading im Testprogramm zeigen. Als erstes der Datentyp SUebergabe der zur Parameterübergabe genutzt wird. struct SUebergabe { double ngrenzeunten; }; untere Grenze des zu berechenden Flächenintregrals obere Grenze des zu berechenden Flächenintregrals double ngrenzeoben; long ncount; Anzahl der zuberechenden Streifen double nergebnis; das zurückgegebene Ergebnis Als nächstes folgt die Berechnungsfunktion, die jeweils von den CWinThread Objekten gestartet wird. UINT FSimpSin(LPVOID pparam ) { Diese Funktion berechnet Fläche unterhalb der Sinuskurve. Die Grenzen werden als Parameter über den Zeiger pparam übergeben. Interne Variabelen double nschrittweite = 0; Breite eines Streifens bei Integration double nzwischenl = 0; Ergebnis des Streifen Bezugspunkt linke Kante double nzwischenr = 0; Ergebnis des Streifen Bezugspunkt rechte Kante double nergebnis = 0; Das Endergebnis double nwert = 0; Aktuelle zu berechnender Wert SUebergabe* Param = (SUebergabe*)pParam; Übergebenen Zeiger in einsprechenden Typ umwandeln nschrittweite = (Param->nGrenzeOben - Param->nGrenzeUnten)/Param->nCount; Schrittweite berechnen nwert = Param->nGrenzeUnten; Anfangswert festlegen Seite 26 von 32 Datum:

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

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

Der Scheduler von Windows Konzepte und Strategien

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

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

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

9 Multithreading. 1 Idee des Multithreading

9 Multithreading. 1 Idee des Multithreading 9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

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

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

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

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

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation SS 2003 KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation 1 Sequentielle Prozesse Zu jedem Zeitpunkt t wird genau eine einzige Instruktion ausgeführt Hängt ab vom Abstraktionsgrad

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

(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

Tutorial Windows XP SP2 verteilen

Tutorial Windows XP SP2 verteilen Tutorial Windows XP SP2 verteilen Inhaltsverzeichnis 1. Einführung... 3 2. Windows XP SP2 bereitstellen... 3 3. Softwarepaket erstellen... 4 3.1 Installation definieren... 4 3.2 Installationsabschluss

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

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

Nebenläufige Programmierung

Nebenläufige Programmierung Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH

DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH 6 DriveLock und das Windows Sicherheitsproblem mit LNK Dateien CenterTools Software GmbH 2010 Copyright Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URLs und anderen Verweisen

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

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

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2) Inhalt Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)... 1 1. Die integrierte Firewall von Windows XP... 2 2. Convision ActiveX und Internet Explorer 6... 3 3. Probleme

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

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

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

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret 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

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

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

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

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

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

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

Mehr

9 Verteilte Verklemmungserkennung

9 Verteilte Verklemmungserkennung 9 Verteilte Verklemmungserkennung 9.1 Grundlagen Für die Existenz einer Verklemmung notwendige Bedingungen Exklusive Betriebsmittelbelegung Betriebsmittel können nachgefordert werden Betriebsmittel können

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Microsoft Office SharePoint Services Workflow Limitierungen

Microsoft Office SharePoint Services Workflow Limitierungen Microsoft Office SharePoint Services Workflow Limitierungen Dorner Stefan, namics AG April 2007 Inhaltsverzeichnis Allgemeines... 3 Workflow Foundation Thread Pool-Modelle... 5 DefaultWorkflowSchedulerService...

Mehr

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2011 / 2012

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2011 / 2012 Name: Matrikelnummer: Studiengang: INF CV IM Lehramt BSc MSc BEd MEd Diplom Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 0 / 0 Montag, den. Februar 0, 09: Uhr 0: Uhr Prof. Dr. D. Zöbel, Dipl.

Mehr

Tutorial. Tutorial. Microsoft Office 2010 Standard Edition verteilen. 2011 DeskCenter Solutions AG

Tutorial. Tutorial. Microsoft Office 2010 Standard Edition verteilen. 2011 DeskCenter Solutions AG Tutorial Microsoft Office 2010 Standard Edition verteilen 2011 DeskCenter Solutions AG Inhaltsverzeichnis 1. Einführung...3 2. Office 2010 Ressourcen bereitstellen...3 3. Anpassung der Office Installation...4

Mehr

WINDOWS 7 Guide BIAS ANLEITUNG

WINDOWS 7 Guide BIAS ANLEITUNG WINDOWS 7 Guide BIAS 1 ANLEITUNG zur Vorbereitung von Windows 7 auf Messungen mit BIAS und VIAS Während Windows XP den BIAS Meßkopf und die VIAS-Interfacebox für Saiteninstrumente nach dem Verbinden mit

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

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

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

Warum also mit einem 32-Bit-System arbeiten, wenn es Systeme für 64 Bit gibt?

Warum also mit einem 32-Bit-System arbeiten, wenn es Systeme für 64 Bit gibt? Mehr als 4GB RAM mit 32-Bit Windows XP nutzen ( Mit freundlicher Erlaubnis: https://grafvondiepelrath.wordpress.com/2015/01/10/windowsxp-mit-8-gb-ram-betreiben/) Das Windows XP -32-Bit-System wird auch

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

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

Kapitel 4. Monitore und wechselseitiger Ausschluss

Kapitel 4. Monitore und wechselseitiger Ausschluss Seite 1 Kapitel 4 Monitore und wechselseitiger Ausschluss Prof. Dr. Rolf Hennicker 28.05.2015 4.1 Interferenzen Seite 2 Parallel ablaufende Prozesse können sich gegenseitig (störend) beeinflussen. Beispiel

Mehr

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

InterCafe 2010. Handbuch für Druckabrechnung

InterCafe 2010. Handbuch für Druckabrechnung Handbuch für InterCafe 2010 Der Inhalt dieses Handbuchs und die zugehörige Software sind Eigentum der blue image GmbH und unterliegen den zugehörigen Lizenzbestimmungen sowie dem Urheberrecht. 2009-2010

Mehr

Zusammenfassung Modul 223

Zusammenfassung Modul 223 Zusammenfassung Modul 223 von Christian Roth Powered by Schuschu Bison Schweiz AG, Surentalstrasse 10, CH-6210 Sursee, www.bison-group.com Inhaltsverzeichnis 1 Entwurfmuster... 3 1.1 Singleton... 3 1.1.1

Mehr

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse) 5 CPU-Scheduling Im folgenden wird von Threads gesprochen. Bei Systemen, die keine Threads unterstützen, ist der einzige "Thread" eines Prozesses gemeint. Früher wurde dieser Thread synonym mit dem Begriff

Mehr

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Die NXT-Motoren im Detail

Die NXT-Motoren im Detail Die NXT-Motoren im Detail In diesem Tutorial werden wir uns die verschiedenen Betriebsarten der NXT-Motoren anhand von Beispielen anschauen. Teil 1: Regulation Lässt man einen Motor mit dem OnFwd oder

Mehr

Erste Schritte Server und automatische Clientinstallation. Auto Shutdown Manager Version 5

Erste Schritte Server und automatische Clientinstallation. Auto Shutdown Manager Version 5 Erste Schritte Server und automatische Clientinstallation Auto Shutdown Manager Version 5 Serverinstallation zuerst Laden Sie zuerst die neuste Testversion herunter: http://www.enviprot.com/en/free-downloads-auto-shutdown-manager-green-it.html

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Offlinedateiendienst Synchronisierungs-Center unter Kontrolle bringen

Offlinedateiendienst Synchronisierungs-Center unter Kontrolle bringen In dieser Anleitung behandeln wir das Thema; das automatische sowie manuelle starten und stoppen des Dienstes Offlinedateiendienst cscservice. Man kann einen Dienst über verschiedene Wege wie z.b. über

Mehr

Übung Betriebssysteme 11

Übung Betriebssysteme 11 Übung Betriebssysteme 11 Christian Motika Christian-Albrechts-Universität zu Kiel Institut für Informatik AG Echtzeitsysteme / Eingebettete Systeme Kiel, Germany 29-JAN-2013 CAU - WS 2012/13 Übung Betriebssysteme

Mehr

BitDisk 7 Version 7.02

BitDisk 7 Version 7.02 1 BitDisk 7 Version 7.02 Installationsanleitung für Windows XP, Vista, Windows 7 QuickTerm West GmbH Aachenerstrasse 1315 50859 Köln Telefon: +49 (0) 2234 915 910 http://www.bitdisk.de info@bitdisk.de

Mehr

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP). Produktbeschreibung Februar 2014 RTX RTOS-Plattform Mit der RTX-Echtzeitsoftware von IntervalZero wird aus Microsoft Windows ein Echtzeitbetriebssystem (RTOS). RTX64 von IntervalZero unterstützt 64-Bit-Betriebssysteme

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

7.11 Besprechungen planen und organisieren

7.11 Besprechungen planen und organisieren 7. Effektive Zeitplanung und Organisation von Aufgaben 7.11 Besprechungen planen und organisieren Wie bereits zu Beginn des Kapitels erwähnt, nehmen im Gegensatz zu einem normalen Termin mehrere Teilnehmer

Mehr

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen?

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen? Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen? Umgebung Getestet wurde auf einem Linux-System mit voller invis-server Installation, auf dem eine virtuelle Maschine

Mehr

Überschrift/Caption. Eigenschaftenfenster

Überschrift/Caption. Eigenschaftenfenster UsserrForrm errssttel llen Dass Codeffensstterr 22000044 NNi iikkoo BBeecckkeerr Öffnen Sie EXCEL und wechseln Sie mit der Tastenkombination Alt + F11 in den Visual Basic-Editor. Alternativ können Sie

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

Mehr

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

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

Mehr

Kompatibilitätsmodus und UAC

Kompatibilitätsmodus und UAC STEITZ IT-Solutions Kompatibilitätsmodus und UAC Der nachfolgenden Artikel beschreibt, wie Sie die UAC (User Account Control = Benutzerkontensteuerung) für ausgewählte Anwendungen deaktivieren. Mit der

Mehr

Round-Robin Scheduling (RR)

Round-Robin Scheduling (RR) RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange

Mehr

juliteccrm Dokumentation

juliteccrm Dokumentation Customer Relationship Management für kleine und mittelständische Unternehmen juliteccrm Dokumentation 2012, julitec GmbH Page 1 of 12 julitec GmbH Flößaustraße 22 a 90763 Fürth Telefon: +49 911 979070-0

Mehr

#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt

#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt 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

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

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Version Datum Grund 1.01 12.04.05 Abschnitt Automatische Umstellung hinzugefügt und Hilfe ergänzt um Webseiten

Version Datum Grund 1.01 12.04.05 Abschnitt Automatische Umstellung hinzugefügt und Hilfe ergänzt um Webseiten Outlook-Umstellung (im Rahmen der Exchange-Server-Umstellung am 15.-17.04.2005) Änderungen in diesem Dokument Version Datum Grund 1.01 Abschnitt Automatische Umstellung hinzugefügt und Hilfe ergänzt um

Mehr

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg Prozess-Monitoring auf CPU-Takt Ebene Einleitung Unser Arbeitsgebiet: ALICE Teilchenphysik Experiment Cluster

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

LPT1 Anschluss mit PCMCIA Karte

LPT1 Anschluss mit PCMCIA Karte 1. Allgemeines LPT1 Anschluss mit PCMCIA Karte verwendete Hardware: Lenze PC Systembusadapter EMF 2173-V003 PCMCIA Karte Firma QUATECH Typ SPP-100 Auf die Installation der PCMCIA Karte wird hier nicht

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network Rembo/mySHN Version 2.0 Kurzanleitung das selbstheilende Netzwerk my selfhealing network Stand: 01.05.2006 Postanschrift: SBE network solutions GmbH Edisonstrasse 21 74076 Heilbronn IV Inhalt Kurzanleitung...i

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

FLASH USB 2. 0. Einführung DEUTSCH

FLASH USB 2. 0. Einführung DEUTSCH DEUTSCH FLASH ROTE LED (GESPERRT) GRÜNE LED (ENTSPERRT) SCHLÜSSEL-TASTE PIN-TASTEN BLAUE LED (AKTIVITÄT) Einführung Herzlichen Dank für Ihren Kauf des Corsair Flash Padlock 2. Ihr neues Flash Padlock 2

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

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

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

Der Task-Manager von Windows 7

Der Task-Manager von Windows 7 Der von Windows 7 Der kann mehr als nur Programme abschießen: Er hilft beim Konfigurieren der Windows-Dienste und beim Lösen von Problemen. Der Windows wird oft nur dazu benutzt, um hängende Anwendungen

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

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr