Kapitel 2 Prozesse und Threads

Größe: px
Ab Seite anzeigen:

Download "Kapitel 2 Prozesse und Threads"

Transkript

1 Kapitel 2 Prozesse und Threads 2.1 Prozesse 2.2 Threads 2.3 Interprozesskommunikation 2.4 Klassische Probleme der Interprozesskommunikation 2.5 Scheduling

2 Prozesse Das Prozessmodell Unterschied Prozess / Programm Prozess ist eine Aktivität Besteht aus Programm, Input, Output und Zustand a) Multiprogramming von vier Programmen b) Konzeptionelles Modell von vier unabhängigen sequentiellen Prozessen c) Zu einem Zeitpunkt ist nur ein Programm aktiv. Anwendugen - Prozesse und Threads 2

3 Prozesserzeugung OS muss sicherstellen, dass alle wichtigen Prozesse existieren. Manchmal: alle Prozesse die jemals benötigt werden, werden beim Startup erzeugt Im allgemeinen: Möglichkeit zur Erzeugung / Beendigung erforderlich Anwendugen - Prozesse und Threads 3

4 Prozesserzeugung Ereignisse, die die Erzeugung eines Prozesses auslösen 1. Initialisierung des Systems (boot) 2. Systemaufruf zum Erzeugen eines Prozesses durch einen anderen Prozess 3. Benutzeranfrage, einen neuen Prozess zu erzeugen 4. Start eines Batch Jobs Anwendugen - Prozesse und Threads 4

5 Prozesserzeugung Booten Mehrere Prozesse werden gestartet Prozesse zur Interaktion mit Anwender Prozesse für bestimmte Funktionen -service Drucker-Warteschlange Firewall Anwendugen - Prozesse und Threads 5

6 Windows Taskmanager Prozessliste Anwendugen - Prozesse und Threads 6

7 Prozessbeendigung Bedingungen, die zum Beenden von Prozessen führen 1. Normales Beenden (freiwillig) 2. Beenden auf Grund eines Fehlers (freiwillig) 3. Beenden auf Grund eines schwerwiegenden Fehlers(unfreiwillig) 4. Beenden durch einen anderen Prozess (unfreiwillig) Anwendugen - Prozesse und Threads 7

8 Prozesshierarchien Elternprozess erzeugt Kindprozess. Kindprozess kann weitere Prozesse erzeugen. In UNIX ist das eine Prozessfamilie Unter Windows gibt es kein Konzept einer Prozesshierarchie, alle Prozesse sind gleichwertig. Anwendugen - Prozesse und Threads 8

9 Prozesszustände (1) 1. Prozess blockiert wegen Eingabe 2. Schedular wählt einen anderen Prozess 3. Schedular wählt diesen Prozess 4. Eingabe vorhanden Mögliche Prozesszustände rechnend (running) blockiert (blocked) rechenbereit (ready) Es existieren die dargestellten Übergänge zwischen diesen Zuständen Anwendugen - Prozesse und Threads 9

10 Prozesszustände (2) Die unterste Schicht eines prozessstrukturierten Betriebssystems behandelt Interrupts und Scheduling Oberhalb befinden sich sequentielle Prozesse Anwendugen - Prozesse und Threads 10

11 Implementierung von Prozessen Einige Felder eines typischen Eintrags einer Prozesstabelle Anwendugen - Prozesse und Threads 11

12 Umschalten zwischen Prozessen Context Switch Aufgaben der untersten Schicht des Betriebssystems bei Auftreten einer Unterbrechung 1. Hardware sichert Befehlszähler etc 2. Hardware holt neuen Befehlszähler vom Interruptvektor 3. Assemblerfunktion speichert Register 4. Assemblerfunktion erzeugt neuen Stack 5. C-Unterbrechungsroutine läuft (puffert Ein/- Ausgaben) 6. Schedular sucht nächsten Prozess 7. C-Funktion kommt zur Assemblerfunktion zurück 8. Assemblerfunktion startet neuen aktuellen Prozess Anwendugen - Prozesse und Threads 12

13 Schritte für den Systemaufruf Adresse 0xFFFFFFFF Return zum Aufrufer Systemaufruf in den Kern 5. Put code for read in register Bibliotheksprogramm read Benutzerraum 11. Erhöhe Stackpointer 6. Rufe read auf 3. Push fd Benutzerprogramm ruft read auf count = read (fd, buffer, nbytes 2. Push &buffer 1. Push nbytes 9. fd : filedescriptor buffer : Ziel nbytes : Länge Kernadressraum Verteilung Systemaufrufbehandlung 13

14 Threads Das Threadmodell (1) Traditionelles Modell: Prozess hat einen Adressraum einen Ausführungsfaden Manchmal ist es wünschenswert, mehrere Ausführungsfäden zu haben Drei Prozesse mit jeweils einem Thread Anwendugen - Prozesse und Threads 14

15 Threads Das Threadmodell (2) Traditionelles Modell: Prozess hat einen Adressraum einen Ausführungsfaden Manchmal ist es wünschenswert, mehrere Ausführungsfäden zu haben wie eigene Prozesse, aber gemeinsamer Adressraum Ein Prozess mit drei Threads Anwendugen - Prozesse und Threads 15

16 Das Threadmodell (3) 1. Spalte: Elemente werden zwischen den Threads eines Prozesses aufgeteilt 2. Spalte: Thread-eigene Elemente Anwendugen - Prozesse und Threads 16

17 Das Threadmodell (3) Jeder Thread hat seinen eigenen Stack Anwendugen - Prozesse und Threads 17

18 Einsatz von Threads (1) Ein Textprogramm mit drei Threads Anwendugen - Prozesse und Threads 18

19 Einsatz von Threads (2) Ein Web-Server mit mehreren Threads Anwendugen - Prozesse und Threads 19

20 Einsatz von Threads (3) Grober Auszug des Codes zur vorherigen Folie. (a) Dispatcher thread (b) Worker thread Anwendugen - Prozesse und Threads 20

21 Einsatz von Threads (4) Drei Möglichkeiten, einen Server zu bauen: Modell Threads Prozesse (ein Thread) Endlicher Automat Eigenschaften Parallel, blockierende Systemdienste Nicht parallel, blockierende Systemdienste Parallel, nicht blockierende Systemdienste Anwendugen - Prozesse und Threads 21

22 Einsatz von Threads (5) Was Threads zu bieten haben: Sie ermöglichen es, das Konzept von sequenziellen Prozessen, die blockierende Systemaufrufe (z.b. für Platten E/A) machen, beizubehalten und troztdem Parallelität zu erzielen Blockierende Systemaufrufe vereinfachen die Programmierung und die Parallelität verbessert die Performance Der Einzel-Thread-Server behält die Einfachheit von blockierenden Systemaufrufen bei, gibt jedoch die Performance auf. Der dritte Ansatz bringt hohe Performance durch Parallelität, benutzt aber nicht blockierende Aufrufe und ist deshalb schwieriger zu programmieren Anwendugen - Prozesse und Threads 22

23 Realisierung von Threads im Benutzeradressraum (1) Ein Benutzer-Level Thread Paket Vorteile: kann auch auf Betriebssystemen realisiert werden, die Threads nicht unterstützen Umschalten zwischen Threads geht vergleichsweise schnell Run-time system Laufzeitsystem, enthält eine Sammlung von Prozeduren, die auch Threads verwalten (thread_create, thread_exit,...) Anwendugen - Prozesse und Threads 23

24 Realisierung von Threads im Benutzeradressraum (2) Ein Benutzer-Level Thread Paket Probleme: Ruft ein Thread einen blockierenden Systemaufruf auf (z.b. read von Tastatur), werden alle Thread blockiert Systemaufrufe müssten nicht blockierend implementiert werden und Anwendungsprogramme müssten dafür modifiziert werden (sehr aufwendig) Seitenfehler eines Threads blockieren ebenso alle Threads Startet ein Thread, kommt kein anderer an die Reihe, bis der erste von sich aus die CPU freigibt Anwendugen - Prozesse und Threads 24

25 Realisierung von Threads im Kern(1) Ein Thread Paket, verwaltet vom Kern Kern hat Thread-Tabelle, die alle Threads im System verwaltet Zur Sicherheit: Exkurs über Betriebssystemkern! Anwendugen - Prozesse und Threads 25

26 Betriebssystemkern (1) Wikipedia: Ein Betriebssystemkern oder Systemkern (engl. kernel ) ist der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen. Er ist meist in der untersten Softwareschicht, hat also Zugriff auf die Hardware. Die Konstruktion eines Betriebssystemkerns gehört zum Themenbereich der Informatik und des Softwareengineerings. Gängige Anforderungen an einen Systemkern sind Parallelverarbeitung verschiedener Aufgaben (Multitasking), Einhaltung zeitkritischer Grenzen, Offenheit für unterschiedlichste Anwendungen und Erweiterungen. Nicht zum Systemkern gehörende Teile werden als Userland bezeichnet. Anwendugen - Prozesse und Threads 26

27 Betriebssystemkern (2) Bestandteile Ein Systemkern ist in Schichten (oder Layer, siehe Schichtenmodell) aufgebaut, wobei die unteren (maschinennahen) Schichten die Basis für die darüberliegenden bilden. Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt. Folgende Schichten sind vorhanden (von unten nach oben): Schnittstelle zur Hardware (Geräte, Speicher, Prozessoren) Speicherverwaltung (evtl. einschließlich virtuellem Hauptspeicher) Prozessverwaltung (auch Scheduler genannt) Geräteverwaltung (auch Device Management genannt) Dateisysteme Wenn alle diese Funktionen im Systemkern selbst integriert sind, spricht man von einem monolithischen Kernel. Bei einem Mikrokernel finden wesentliche Teile in getrennten Prozessen statt. Daneben, bzw. zwischen den beiden liegend, gibt es noch den sogenannten Makrokernel. Auf jeden Fall außerhalb des Kernels laufen die Anwenderprozesse, die sich der vom Kernel angebotenen Funktionen bedienen, um mit der Maschine zu kommunizieren. Anwendugen - Prozesse und Threads 27

28 Betriebssystemkern (3) Aufgaben eines Kernels : Schnittstelle zu Anwenderprogrammen (Starten, Beenden, Ein-/Ausgabe, Speicherzugriff) Kontrolle des Zugriffs auf Prozessor, Geräte, Speicher (Scheduler, Gerätetreiber, Speicherschutz). Möglichst alleiniger Zugriff des Kernels auf diese Ressourcen. Verteilung der Ressourcen, etwa der Prozessorzeit(en) (bzw. der Prozessoren) auf die Anwenderprogramme Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplatten, Netzwerkprotokoll-Stack auf Netzwerkkarten. Auflösung von Zugriffskonflikten, etwa Verriegelung bei Mehrprozessorsystemen, Warteschlangen bei knappen Ressourcen Virtualisierung der Ressourcen (Prozessor: Prozesse, Festplatte: Dateien, Netzwerkkarte: z. B. Sockets, Speicher: virtueller Speicher, Geräte: Spezialdateien) Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen Anwendugen - Prozesse und Threads 28

29 Betriebssystemkern (4) Schichten eines Unix Betriebssystems User Interface Anwendugen - Prozesse und Threads 29

30 Betriebssystemkern (5) Kernel Mode User Mode Kernel und user space sind unterschiedliche Teile des Adressraumes. User space ist reservierter Bereich für applikationen (jede einen eigenen Bereich). Kernel space ist auch ein reservierter Bereich, jedoch nur einer für alle Anwendungen, die dort nicht schreiben können. Nur das Betriebssystem kann den Prozessor auf kernel mode umschalten und auf diesen Bereich zugreifen... Anwendungen laufen dagegen normalerweise nur im user mode des prozessors, und verwenden damit einen eingeschränkten Befehlssatz ist. Anwendugen - Prozesse und Threads 30

31 Betriebssystemkern (6) CPU- Betriebsarten: Kernel Mode User Mode Das Programmstatuswort der CPU enthält die aktuelle Betriebsart: kernel mode, user mode Damit wird ein Schutzsystem realisiert kernel mode: - privilegierte Betriebsart (nur für Betriebssystem) - alle Instruktionen sind erlaubt, inbes. IO auf Hardware user mode:- nicht privilegierte Betriebsart - nicht alle Instruktionen sind erlaubt (z.b. Zugriff auf Ein-/Ausgabe) - nicht alle Register dürfen verändert werden (z.b. Register für Speicherkonfiguration) Umschaltung in Kernmodus: mittels Interrupt (über SW oder HW ausgelöst) Umschaltung in Benutzermodus: mittels Maschinenbefehl bzw. PSW- Modifikation Anwendugen - Prozesse und Threads 31

32 Realisierung von Threads im Kern(2) Ein Thread Paket, verwaltet vom Kern Kern hat Thread-Tabelle, die alle Threads im System verwaltet Thread-Tabelle enthält Informationen über Register, Zustand... der einzelnen Threads Alle Aufrufe, die blockieren können, sind als Systemaufrufe realisiert mit höheren Kosten als Aufrufe im Laufzeitsystem aber: wenn ein Thread blockiert, hat der Kern die Möglichkeit, einen anderen (prozesseigegnen oder fremden) Thread zu starten Fazit: flexibel, aber teuer Anwendugen - Prozesse und Threads 32

33 Hybride Implementierung Multiplexen von Benutzer-Level-Threads in Kern-Threads = Versuch, die Vorteile beider Implementierungen zu verbinden Anwendugen - Prozesse und Threads 33

34 Scheduler Activations Ziel: Verbindung der Funktionalität von Kern-Threads mit der Performance von Benutzeradressraum Threads Vermeiden von unnötigen user/kernel Umschaltungen Kern ordnet jedem Prozess virtuelle Prozessoren zu und veranlasst das Laufzeitsystem (im Benutzeradressraum) den Prozessoren Threads zuzuordnen (geht auch bei Multiprozessorsystemen) Grundidee: Wenn der Kern weiss, dass ein Thread durch einen blockierenden Systemaufruf oder Seitenfehler blockiert hat, benachrichtigt er das Laufzeitsystem (Upcall) Das Laufzeitsystem kann seine Threads darauf hin neu schedulen, also den gegenwärtigen Thread als blockiert markieren und einen anderen starten Problem: Fundamental reliance on kernel (lower layer) calling procedures in user space (higher layer) Anwendugen - Prozesse und Threads 34

35 Pop-Up Threads Erzeugen eines neuen Threads, wenn eine Nachricht eintrifft (a) bevor die Nachricht eintrifft (b) nachdem die Nachricht eintrifft Anwendugen - Prozesse und Threads 35

36 Multithreading Üblich: zuerst nur ein Thread Startet weitere threads(z.b. thread_create (proc_name)) Manchmal hierarchisch, manchmal flach Wenn thread fertig: thread_exit Warten auf thread-ende: thread_wait CPU freiwillig hergeben: thread_yield Anwendugen - Prozesse und Threads 36

37 Posix Thread Beispiel 1 Main 1 PROGRAM ForThreads!! Funktionsbeschreibung:! Thread Testprogramm!! Programm kreiert und startet mehrere Threads:! - Worker wird mehrmals kreiert (Master-Worker) und gestartet.! Diese Workerthreads arbeiten periodisch mit Hilfe eines Timers.! Sie stoßen wiederum alle den selben Thread an! - Thread2 ist der mittels pthread_cond_signal von Worker ange-! stossene Thread, der in einer Endlosschleife mit pthread_cond_wait! auf Aufträge wartet. Er muss vom Hauptprogramm mit pthread_cancel! explizit beendet werden! - Thread3 läuft als unabhängiger Thread und führt eine Anzahl Ite-! rationen aus. Für ihn werden Scheduling-Parameter (Priorität)! gesetzt.! - Das Programm endet erst, wenn alle Threads abgearbeitet oder beendet sind.! Geprüft wird dies mit pthread_join.!! Anwendugen - Prozesse und Threads 37

38 Posix Thread Beispiel 2 benutzte Posix Funktionen! Functions:! pthread_cond_init Conditionvariable erzeugen und mit! Defaultwert initialisieren! pthread_cond_broadcast Alle Thread, die auf eine bestimmte! Condition-Variable hören, benachrichtigen! pthread_cond_signal Einen Thread, der auf eine bestimmte! Condition-Variable hört, benachrichtigen! pthread_create Einen Thread erzeugen! pthread_join Synchronisieren mehrerer Threads! pthread_mutex_init Mutexvariable erzeugen und mit! Defaultwert initialisieren! pthread_mutex_lock Mutex locken vor broadcast! pthread_mutex_unlock Mutex unlocken nach broadcast! pthread_setschedparam Scheduling Verfahren und Priorität! für einen Thread festlegen!!d- Anwendugen - Prozesse und Threads 38

39 Posix Thread Beispiel 3 Datendeklaration INCLUDE 'GEN_INCL:ST(PThreads)' EXTERNAL Test_Thread1 EXTERNAL TestF_Thread2 EXTERNAL Test_Thread3 PARAMETER PTHREAD_MUTEX_DEFAULT = 0 PARAMETER anzworkers = 4 INTEGER *4 ThrCount, SchedNr INTEGER *4 INDX, IStatus INTEGER *4 ThreadStackSize /819200/!size_t INTEGER *4 exitval RECORD /pthread_mutex_t/ SlowMutex, WeckMutex, CountMutex, RECORD /pthread_cond_t/ WeckCond, CountCond COMMON /COM_Threads/ SlowMutex, WeckMutex, CountMutex, WeckCond, 1 CountCond, ThrCount REAL *4 x /1.0/ RECORD /pthread_t/ Worker (anzworkers) RECORD /pthread_t/ Thread2 RECORD /pthread_t/ Thread3 RECORD /pthread_attr_t/s_gl_pthread_attr RECORD /pthread_attr_t/s_gl_pthread_attr2 RECORD /sched_param/schedparam Anwendugen - Prozesse und Threads 39

40 Posix Thread Beispiel 4 Threads erzeugen ThrCount = 0 schedparam.sched_priority = 9!PRI_FG_MIN_NP 8-15! CALL pthread_mutex_init(countmutex,%val(pthread_mutex_default)) CALL pthread_mutex_init(weckmutex,%val(pthread_mutex_default))! Thread Condition Varibale initialisieren IStatus = pthread_cond_init(weckcond, ) IStatus = pthread_cond_init(countcond,) IStatus = pthread_attr_init(s_gl_pthread_attr) IStatus = pthread_attr_init(s_gl_pthread_attr2) IStatus = pthread_attr_setstacksize(s_gl_pthread_attr, ThreadStackSize) IStatus = pthread_attr_setstacksize(s_gl_pthread_attr2, ThreadStackSize) DO INDX = 1,anzworkers! Eine Prozedur mehrmals als Thread erzeugen (anzworkers) IStatus = pthread_create(worker(indx), %VAL(PTHREAD_CREATE_JOINABLE), 1 test_thread1, %VAL(Indx)) ENDDO IStatus = pthread_create(thread2, %VAL(PTHREAD_CREATE_JOINABLE), test_thread2, %VAL(anzworker+1)) IStatus = pthread_create(thread3, %VAL(PTHREAD_CREATE_JOINABLE), test_thread3, %VAL(anzworker+2)) Anwendugen - Prozesse und Threads 40

41 Posix Thread Beispiel 5 benachrichten und beenden!! Prioritäten der Threads festlegen! IStatus = pthread_setschedparam (%VAL(Thread3.Pointer), %VAL(Sched_Other), schedparam)!! Mittels Broadcast alle Threads der Variante Worker wecken! IStatus = pthread_cond_broadcast (%REF(WeckCond)) PRINT*,'alle Threads aktiviert, Main wartet noch auf Rückmeldung '!! Mittels Signal Thread2 wecken! IStatus = pthread_cond_signal(%ref(countcond))!! Ende aller Threads abwarten/oder herbeiführen! DO INDX = 1, anzworkers IStatus = pthread_join32(%val(worker(indx).pointer),exitval) ENDDO IStatus = pthread_join32(%val(thread3.pointer),exitval) IStatus = pthread_cancel (%VAL(Thread2.Pointer)) IStatus = pthread_join32(%val(thread2.pointer),exitval) END Anwendugen - Prozesse und Threads 41

42 Posix Thread Beispiel 6 test_thread1,arbeitet periodisch, terminiert selbst SUBROUTINE test_thread1(thrnum) IMPLICIT NONE!! Thread wird mehrfach (Anzahl= anzworkers), konkurrierend in MAIN erzeugt! und mittels Broadcast geweckt.!! Verwendete Prozeduren:!! pthread_cond_wait Warten auf Ereignis und aufwachen des Threads mit Mutex! pthread_cond_timedwait Warten auf Ereignis mit Timeout (verwendbar als Timer bei Threads)! pthread_get_expiration_np Bestimmung der Ablaufzeit des Timers indem zur Systemzeit ein! Delta in Sekunden addiert wird! pthread_mutex_lock WeckMutex locken für pthreadcond_wait! INCLUDE 'GEN_INCL:ST(PThreads)' INTEGER *4 ThrCount RECORD /pthread_mutex_t/ SlowMutex RECORD /pthread_mutex_t/ WeckMutex RECORD /pthread_mutex_t/ CountMutex RECORD /pthread_cond_t/ WeckCond RECORD /pthread_cond_t/ CountCond COMMON /COM_Threads/ SlowMutex, WeckMutex, CountMutex, WeckCond, 1 CountCond, ThrCount CHARACTER * 8 CTime INTEGER *4 a, thrnum, Error, INDX /0/, IStatus RECORD /PThread_TimeSpec_T/ WaitTime, ResWaitTime Anwendugen - Prozesse und Threads 42

43 Posix Thread Beispiel 7 test_thread1,arbeitet periodisch, terminiert selbst CALL TIME (CTime) a = %LOC(thrnum) PRINT *, a,%loc(a), ' thread ',a,' gestartet um:',ctime,%loc(ctime), %LOC(WaitTime.tv_sec) WaitTime.tv_sec = 4 WaitTime.tv_nsec = 0! Synchronisierung der Threads mit dem Hauptprogramm mittels einer! Condition Variablen IStatus = pthread_mutex_lock(weckmutex) IStatus = pthread_cond_wait(weckcond, WeckMutex) IStatus = pthread_mutex_unlock (WeckMutex)!! Timer definieren! IStatus = pthread_get_expiration_np (%REF(waittime),%REF(reswaittime)) Anwendugen - Prozesse und Threads 43

44 Posix Thread Beispiel 8 test_thread1,arbeitet periodisch, terminiert selbst DO INDX = 1,4 IStatus = pthread_mutex_lock(countmutex) thrcount = thrcount + 1 IStatus = pthread_mutex_unlock(countmutex) IStatus = pthread_mutex_lock (WeckMutex) IStatus = pthread_cond_timedwait(weckcond, WeckMutex, reswaittime) Error = pthread_mutex_unlock (WeckMutex) CALL TIME (CTime) IF (IStatus.EQ. 0)THEN PRINT*,a,%LOC(a),' ', IStatus,' über Mutex/Condition rausgekommen' ELSEIF (IStatus.EQ. ETIMEDOUT) THEN PRINT*,a,%LOC(a),' Timer abgelaufen thread ',a,' Lauf:',INDX,' ',CTime ELSE PRINT*,a,%LOC(a),' Ende von Condition Wait Lauf ',INDX,' um',ctime,' Fehler ', IStatus ENDIF IStatus = pthread_get_expiration_np (%REF(waittime),%REF(reswaittime)) IStatus = pthread_cond_signal(countcond)! Signal an einen anderen Thread, einen anderen Thread anstoßen ENDDO PRINT*,a,%LOC(a), ' Fertig...thread',a RETURN END Anwendugen - Prozesse und Threads 44

45 Posix Thread Beispiel 9 Endlos Thread, wird von main gestoppt SUBROUTINE test_thread2(thrnum) IMPLICIT NONE!! Endlos-Thread sitzt in ConditionWait und wird von anderen Threads! via SIGNAL geweckt um dann irgendeinen Unsinn zu machen! Zusätzlich: Sperren und Freigeben einer globalen Variablen mittels! Mutex Lock und Unlock! Beenden des Endlos-Threads via PTHREAD_CANCEL in MAIN!! Verwendete Prozeduren:!! pthread_mutex_init Initialisierung der Mutexvariablen! für pthread_cond_wait! pthread_cond_wait Aufwachen des Threads mit Mutex! pthread_mutex_lock WeckMutex locken für pthread_cond_wait! pthread_mutex_unlock WeckMutex freigeben nach! pthread_cond_wait INCLUDE 'GEN_INCL:ST(PThreads)' INTEGER *4 ThrCount RECORD /pthread_mutex_t/ SlowMutex RECORD /pthread_mutex_t/ WeckMutex RECORD /pthread_mutex_t/ CountMutex RECORD /pthread_cond_t/ WeckCond RECORD /pthread_cond_t/ CountCond COMMON /COM_Threads/ SlowMutex, WeckMutex, CountMutex, WeckCond, 1 CountCond, ThrCount RECORD /pthread_mutex_t/ WaitMutex Anwendugen - Prozesse und Threads 45

46 Posix Thread Beispiel 10 Endlos Thread, wird von main gestoppt CHARACTER * 8 CTime REAL *4 count /3.0/, x, y INTEGER *4 a, thrnum, I, IStatus IStatus = pthread_mutex_init(waitmutex,) a = %LOC(thrnum) IStatus = 0 DO WHILE (IStatus.EQ. 0) x = SIN(count) Count = Count + 1 CALL Time (CTime) IStatus = pthread_mutex_lock(waitmutex) IStatus = pthread_cond_wait(countcond, WaitMutex) IStatus = pthread_mutex_unlock(waitmutex)! Bereich der globalen Variablen thrcount schuetzen IStatus = pthread_mutex_lock(countmutex) thrcount = INT(Count) + 1 DO I =2,3 y = y+(y*(i+1)/(i-1)) ENDDO PRINT*,a,' y in Thread Typ 2',y PRINT*,a,' Absolute Anzahl in Thread Typ 2 ',thrcount IStatus = pthread_mutex_unlock(countmutex) ENDDO RETURN END Anwendugen - Prozesse und Threads 46

47 Posix Thread Beispiel 11 test_thread3-1 SUBROUTINE test_thread3 (thrnum) IMPLICIT NONE!! Thread wird in MAIN gestartet und führt Berechnungen mit! vielen Iterationsschritten durch. Getestet (demontriert) wird die! Prioriätssteuerung (Scheduling) dieses Threads im Verhältnis! zu den konkurrierenden Threads.! INCLUDE 'GEN_INCL:ST(PThreads)' LOGICAL *4 Thread_Hold INTEGER *4 ThrCount RECORD /pthread_mutex_t/ SlowMutex RECORD /pthread_mutex_t/ WeckMutex RECORD /pthread_mutex_t/ CountMutex RECORD /pthread_cond_t/ WeckCond RECORD /pthread_cond_t/ CountCond COMMON /COM_Threads/ SlowMutex, WeckMutex, CountMutex, WeckCond, 1 CountCond, ThrCount CHARACTER *8 CTime REAL *4 x REAL *4 y /1.0/ INTEGER *4 a INTEGER *4 count1 /1/ INTEGER *4 count /3/ INTEGER *4 I INTEGER *4 thrnum Anwendugen - Prozesse und Threads 47

48 Posix Thread Beispiel 12 test_thread3-2 a = %LOC(thrnum) CALL TIME (CTime) PRINT *, a,' thread ',a,' gestartet um:',ctime DO count = 1, y = 1.0 x = sin(float(count)) DO I =3, 5 y = y+(y*(i+1)/(i)) ENDDO IF(MOD (count,10000).eq. 0) THEN PRINT*,a,' x = sin(float(count))',x,' count ',count PRINT*,a,' y in Thread Typ 3 ',y ENDIF ENDDO PRINT*,a,' y in Thread Typ 3 ',y PRINT*,a,' Fertig!..thread ',a RETURN END Anwendugen - Prozesse und Threads 48

49 Singlethread-Programme multithreadfähig machen (1) Konflikte zwischen Threads beim Gebrauch globaler Variablen Anwendugen - Prozesse und Threads 49

50 Singlethread-Programme multithreadfähig machen (2) Threads können private globale Variablen haben Anwendugen - Prozesse und Threads 50

51 Interprozesskommunikation IPC Weil Prozesse vom Betriebssystem gegenseitig von einander geschützt werden (Speicherschutz!), braucht man eine Interprozesskommunikationen, falls Prozesse untereinander kommunizieren, aufeinander warten oder Daten und Ressourcen austauschen müssen. Typische Fälle dafür sind: Mehrere Prozesse müssen spezielle Daten gemeinsam verwenden. Die Prozesse sind untereinander abhängig und müssen aufeinander warten. Daten müssen von einem Prozess zu einem anderen weitergereicht werden. Die Verwendung von Systemressourcen muss koordiniert werden Anwendugen - Prozesse und Threads 51

52 IPC Techniken unter Linux Entnommen dem openbook von Galileo unter: Namenlose Pipes Benannte Pipes (FIFO Pipes) Message Queue (Nachrichtenspeicher) Semaphore Shared Memory (gemeinsamer Speicher) STREAMS Sockets Lock Files (Sperrdateien) Datei Sperren (Record Locking) Anwendugen - Prozesse und Threads 52

53 IPC Techniken unter Linux Namenlose Pipes Pipes, wie auch FIFOs (named Pipes), sind die einzigen beiden IPCs, die garantiert auf jedem System vorhanden sind. Eine Pipe ist ein unidirektionaler Kommunikationskanal zwischen zwei verwandten Prozessen $ ps ax less startet in der Shell zwei Prozesse. Einer führt das Kommando ps ax aus und schreibt das Ergebnis an die Standardausgabe. Durch die Pipe ( ) wird allerdings diese Standardausgabe an den Prozess less weitergeleitet. less liest hierbei die Daten von der Standardeingabe ein und gibt aus, was ihm das Kommando ps durch die Pipe zuschickt Anwendugen - Prozesse und Threads 53

54 IPC Techniken unter Linux -Pipes Wenn Daten in beide Richtungen ausgetauscht werden, muss eine zweite Pipe dazu verwendet werden. Eine Pipe ist wie ein Rohr, wo Daten in die eine Seite (Prozess A) hineingesteckt werden und bei Prozess B wieder herauskommen. Eine Pipe dient außer zur Kommunikation zwischen zwei Prozessen zur Flusskontrolle, weil eine Pipe nur eine bestimmte Menge an Daten aufnehmen kann. Ist die Pipe voll, wird ein Prozess mindestens so lange angehalten, bis mindestens ein Byte aus der vollen Pipe gelesen wurde und Platz vorhanden ist, um die Pipe wieder mit Daten zu befüllen. Andersherum: ist die Pipe leer, wird der lesende Prozess so lange angehalten, bis der schreibende Prozess etwas in diese Pipe schickt. Anwendugen - Prozesse und Threads 54

55 IPC Techniken unter Linux -Pipes Es gibt also eine Schreibseite und eine Leseseite bei einer Pipe. Somit ist also nur eine Kommunikation in einer Richtung möglich (half-duplex): Eigenschaften von elementaren E/A-Funktionen bei Pipes read() liest Daten vom Ende des Puffers der Pipe, entweder synchron (blockierend), bis sich genügend Daten in der Pipe befinden. Schreibt kein Prozess in die Pipe, blockiert read() so lange, bis der schreibende Prozess den Systemaufruf close() aufruft. Dieses Blockieren von read() eignet sich zum Synchronisieren von Prozessen. oder asynchron (nicht blockierend), indem mit der Funktion fcntl() das Flag O_NONBLOCK oder O_NDELAY gesetzt wird. Ist die Pipe fürs Schreiben geöffnet worden, aber momentan leer, liefert read() 0 (nicht EOF) zurück Anwendugen - Prozesse und Threads 55

56 IPC Techniken unter Linux -Pipes write() schreibt die Daten immer ans Ende des Pipe-Puffers, entweder. synchron (blockierend): Ist die Pipe voll, wird der schreibende Prozess so lange blockiert, bis wieder genügend Platz zum Schreiben vorhanden ist oder asynchron (nicht blockierend), indem mit der Funktion fcntl() das Flag O_NONBLOCK oder O_NDELAY gesetzt wird. Bei vollem Puffer liefert der schreibende Prozess 0 zurück.. Meistens betreibt man eine Pipe blockierend. Ein Schreiben innerhalb der PIPE_BUF-Grenze ist atomar, kein anderer Prozess kann dieses Schreiben unterbrechen und selbst in die Pipe schreiben. Versucht ein Prozess, in eine Pipe zu schreiben, die noch von keinem anderen Prozess zum Lesen geöffnet wurde, wird dem Prozess das Signal SIGPIPE (broken pipe) gesendet, was standardmäßig den Abbruch des schreibenden Prozesses bedeutet. Anwendugen - Prozesse und Threads 56

57 IPC Techniken unter Linux Benannte Pipes Mit Pipes können nur miteinander verwandte Prozesse (fork()) kommunizieren. Mit FIFOs (benannten Pipes) kann man mit einem völlig fremden Prozess kommunizieren, da solche Pipes über einen Dateinamen angesprochen werden können. Anwendugen - Prozesse und Threads 57

58 IPC Techniken unter Linux Benannte Pipes - ein Beispiel Auf der Shell lässt sich ein FIFO folgendermaßen erstellen: $ mkfifo fifo1 Bei einem Blick ins aktuelle Arbeitsverzeichnis finden Sie das FIFO unter folgendem Eintrag: $ ls -l prw-r--r-- 1 tot users :53 fifo1 Am p am Anfang erkennen Sie das FIFO. Sie könnten jetzt etwas in das FIFO schreiben: [tty1] $ echo Der erste Eintrag in das FIFO > fifo1 [tty2] $ echo Der zweite Eintrag in das FIFO > fifo1 Beide Dialogstationen blockieren im Augenblick und warten, bis die Daten im FIFO ausgelesen werden. Wir öffnen eine dritte Konsole und lesen ihn aus: [tty3] $ cat fifo1 Der zweite Eintrag in das FIFO Der erste Eintrag in das FIFO Anwendugen - Prozesse und Threads 58

59 IPC Techniken unter Linux Benannte Pipes - Kommunikationsmodell eines FIFO (First In - First Out) Anwendugen - Prozesse und Threads 59

60 IPC Techniken unter Linux Message Queue (Nachrichtenspeicher) ist ein Mechanismus zum Austausch von Nachrichten zwischen Prozessen. Die Nachrichten werden dabei von einem Prozess an einen Speicher (der Message Queue = Nachrichtenschlange) geschickt und können dort von einem anderen Prozess abgeholt werden. Größe und Anzahl der Nachrichten werden vom System festgelegt. Die Nachricht selbst besteht aus einem Text und einem Nachrichtentyp. Die Nachrichten werden in der Reihenfolge, in der diese eintreffen, auch wieder ausgelesen. Fordert ein Prozess eine Nachricht an, so kann über eine Option angegeben werden, dass dieser entweder so lange angehalten wird, bis eine Nachricht eingeht, oder sofort zur Programmausführung zurückkehrt und eventuell einen Fehlercode ausgibt. Anwendugen - Prozesse und Threads 60

61 IPC Techniken unter Linux Message Queue Anwendugen - Prozesse und Threads 61

62 IPC Techniken unter Linux Shared Memory Mehrere Prozesse können auf einen gemeinsamen Datenspeicherbereich zugreifen. 1. Ein Prozess muss diesen gemeinsamen Datenspeicher anlegen. 2. Prozesse, die ebenfalls darauf zugreifen sollen, werden mit diesem Datenspeicher bekannt gemacht, indem der Speicherbereich im Adressraum der entsprechenden Prozesse eingefügt wird. Ebenfalls muss hierbei den Prozessen mitgeteilt werden, wie diese auf den Speicherbereich zugreifen können (lesend/schreibend). Leider wurde mit dem Shared Memory IPC keine explizite Synchronisation zur Verfügung gestellt, weshalb man diese Kontrolle selbst noch mit z. B. Sperren oder Semaphoren herstellen muss. Anwendugen - Prozesse und Threads 62

63 IPC Techniken unter Linux Sockets Sockets wurden im Berkeley-UNIX-System (BSD) als Kommunikation zwischen Prozessen auf verschiedenen Rechnern über ein Netzwerk eingeführt. Sockets können zur Kommunikation verschiedenste Protokolle benutzen, z. B. TCP/IP, UDP/IP oder UNIX Domain Sockets. Anwendugen - Prozesse und Threads 63

64 Interprozess Kommunikation IPC Race Conditions Wettlaufsituationen Was passiert, wenn zwei Prozesse auf gemeinsam genutzten Speicher gleichzeitig zugreifen wollen? Beispiel Druckerspooler Prozess A liest in = 7 A wird unterbrochen Prozess B liest in = 7 B trägt Dateinamen an Stelle 7 und aktualisiert in auf 8 A wird aktiviert und trägt ebenfalls den Dateinamen auf Stelle 7. Datei von B wird nicht gedruckt Anwendugen - Prozesse und Threads 64

65 IPC - Race Conditions Wettlaufsituationen Situationen, in denen zwei oder mehr Prozesse einen gemeinsamen Speicher lesen oder beschreiben und das Endergebnis davon abhängt, wer wann genau läuft, werden Race Conditions genannt. Programme, die Race Conditions enthalten, zu debuggen, macht keinen Spaß, weil Abläufe nicht reproduzierbar sind. Sie müssen vermieden werden! Anwendugen - Prozesse und Threads 65

66 IPC - Kritische Abschnitte (1) Die Teile des Programms, in denen auf gemeinsam genutzten Speicher (Resourcen) zugegriffen wird, nennt man kritische Region oder kritischer Abschnitt Keine zwei Prozesse dürfen gleichzeitig in ihren kritischen Bereichen sein Es dürfen keine Annahmen über Anzahl und Geschwindigkeiten von CPUs gemacht werden Kein Prozess, der außerhalb seines kritischen Bereichs läuft, darf andere Prozesse blockieren Kein Prozess sollte ewig darauf warten müssen, in seine kritische Region einzutreten Anwendugen - Prozesse und Threads 66

67 IPC - Kritische Abschnitte (2) Wechselseitiger Ausschluss (Mutual exclusion) unter Verwendung von kritischen Regionen Anwendugen - Prozesse und Threads 67

68 IPC - Wechselseitiger Ausschluss durch aktives Warten - Unterbrechungen ausschalten Einfachste Möglichkeit: jeder Prozess kann die Interruptbehandlung im Prozessor ausschalten, wenn er in seinen kritischen Bereich eintritt. -> Schedular kann Prozess nicht unterbrechen keine Raceconditions - Problem gelöst! Aber: Was ist, wenn der Prozess nachher die Interruptbehandlung nicht wieder aktiviert? Anwendugen - Prozesse und Threads 68

69 IPC - Wechselseitiger Ausschluss durch aktives Warten - Variablen sperren Softwarelösung: es wird eine gemeinsame Sperrvariable (SV) beutzt. Ist SV 0, darf ein Prozess den Bereich betreten, zuvor setzt er SV 1. Notwendige Schritte: 1. SV aus dem Speicher laden 2. SV auf null testen 3. wenn nicht, weiter bei SV auf 1 setzten 5. kritischen Bereich betreten Angenommen, SV = 0. Was passiert, wenn der Scedular P1 im Schritt 2 unterbricht und P2 mit Schritt eins beginnt? Anwendugen - Prozesse und Threads 69

70 IPC - Wechselseitiger Ausschluss durch aktives Warten - Strikter Wechsel (a) Process 0. (b) Process 1. a betritt, wenn turn = 0 b betritt, wenn turn = 1 "Kein Prozess, der außerhalb seines kritischen Bereichs läuft, darf andere Prozesse blockieren" kann hier verletzt werden! Anwendugen - Prozesse und Threads 70

71 IPC - Wechselseitiger Ausschluss durch aktives Warten - Petersons Lösung Anwendugen - Prozesse und Threads 71

72 IPC - Wechselseitiger Ausschluss durch aktives Warten - Petersons Lösung Angenommen, beide Prozesse rufen enter_region beinahe gleichzeitig auf: Beide speichern ihre Prozessnummern in turn Wer zuletzt kam gewinnt. Das erste Ergebnis geht verloren. z.b. turn = 1: Wenn beide Prozesse zur while Schleife kommen, führt sie Prozess 0 null mal aus und betritt die kritische Region. Prozess 1 geht in die Schleife und betritt seine kritische Region so lange nicht, bis Prozess 0 seine kritische Region verlässt. Petersons Lösung für wechselseitigen Ausschluss Anwendugen - Prozesse und Threads 72

73 IPC - Wechselseitiger Ausschluss durch aktives Warten - TSL Anweisung Eintreten und Verlassen der kritischen Region unter Verwendung der TSL Anweisung Anwendugen - Prozesse und Threads 73

74 IPC - Wechselseitiger Ausschluss durch aktives Warten - Nachteile Nachteile des aktiven Wartens: Warten verbraucht CPU Zeit Ist ein Process mit sehr hoher Priorität in enter_region, kommt er aus der while Schleife nicht mehr heraus, wenn ein Prozess mit sehr niedriger Priorität in leave_region einfach nie dran kommt Anwendugen - Prozesse und Threads 74

75 IPC - Sleep and Wakeup Erzeuger- Verbraucher Problem Zwei Prozesse benutzen einen gemeisamen allgemeinen Puffer mit fester Größe. Der Erzeuger legt Informationen hinein, der Verbraucher nimmt sie heraus. Synchronisation ist notwendig bei Aufruf von sleep blockiert der Schedular den thread nach Aufruf von wakeup setzt ihn der Schedular wieder auf laufbereit Erzeuger-Verbraucher Problem Anwendugen - Prozesse und Threads 75

76 IPC - Sleep and Wakeup - Ermitteln Sie die Race Condition! Anwendugen - Prozesse und Threads 76

77 IPC-Sleep and Wakeup Race Condition Beispiel: 1. Puffer ist leer 2. consumer hat gerade count gelesen (= = 0) und will sleep aufrufen. 3. Schedular unterbricht consumer 4. Schedular startet producer 5. producer fügt Nachricht ein, erhöht count um 1 6. producer merkt, dass count = 1 ist und weckt den consumer, der offensichtlich schlafen muss. consumer schläft aber noch gar nicht, Weckruf geht verloren. 7. Schedular startet wieder consumer 8. consumer prüft den count, den er vorher gelesen hat (==0) und geht schlafen 9. Irgendwann erzeugt der producer neuen Eintrag und geht auch Problem ist nur, dass ein Wecksignal verloren gehen kann! schlafen. 10. Jetzt schlafen beide für immer! Anwendugen - Prozesse und Threads 77

78 IPC - Semaphoren : Erzeuger-Verbraucher Problem Die down Operation eines Semaphors prüft, ob der Wert größer 0 ist. S > 0, down erniedrigt den Wert um eins (z.b. um einen gespeicherten Weckruf zu verbrauchen) und macht einfach weiter S = 0, Prozess oder Thread wird sofort schlafen gelegt down ist atomare (nicht unterbrechbare) Operation und verhindert deshalb Race Conditions up und down werden in der Regel als Systemaufrufe realisiert, bei denen das BS alle Unterbrechungen ausschaltet, solange es die Semaphore überprüft, sie aktualisiert und den Prozess ggf. schlafen legt Anwendugen - Prozesse und Threads 78

79 IPC Semaphoren : Erzeuger-Verbraucher Problem Die up Operation erhöht den Wert um eins gibt es schlafende Prozesse ( in der Operation down) wird einer von ihnen geweckt, dekrementiert das Semaphore wieder auf 0 und kommt aus dem down zurück. Somit bleibt nach einem up an ein Semaphore, auf das schlafende Prozesse warten, der Wert des Semaphores immer noch auf 0, aber es gibt einen Prozess weniger, der wegen des Semaphores schläft. up ist ebenfalls eine atomare Operation. Anwendugen - Prozesse und Threads 79

80 IPC - Semaphoren Die Mutex Semaphoren werden für gegenseitigen Ausschluss verwendet. Sie schützen den Puffer vor gleichzeitigem Lesen und Schreiben. Full und empty sind Synchronisationssemaphoren. Empty hält den producer an, wenn der Puffer voll ist. Full hält den Verbraucher an, wenn der Puffer leer ist kein wechselseitiger Ausschluss! Anwendugen - Prozesse und Threads 80

81 IPC - Mutexes Realisierung von mutex_lock und mutex_unlock vereinfachte Semaphore (kann nicht zählen, binäre Semaphore) dient dem gegenseitigen Ausschluss, Schutz für kritischen Bereich Ähnlich wie Folie Wechselseitiger Ausschluss durch aktives Warten (5) aber: thread_yield gibt die CPU wieder frei, kein aktives Warten Anwendugen - Prozesse und Threads 81

82 IPC - Probleme mit Semaphoren Angenommen im Code des producer steht: down (&mutex); down (&empty); insert_item(item);... Angenommen: der consumer läuft nicht dann: producer betritt 100 mal den kritischen Bereich, dekrementiert empty auf null und geht deshalb im kritischen Bereich schlafen. Jetzt kommt der consumer und kann den kritischen Bereich nicht betreten, legt sich auch schlafen Producer wartet auf up(&empty) des consumers und der consumer wartet auf up(&mutex) des producers. Klassischer Fall eines Deadlock Programmierfehler können leicht passieren Deshalb Monitore! Anwendugen - Prozesse und Threads 82

83 IPC - Monitor (1) Realisiert ein höherstufiges Synchronisationsprinzip als Semaphore Ist eine Sammlung von Prozeduren, Variablen und Datenstrukturen. Prozeduren können aufgerufen, deren Variablen aber nicht von außen geändert werden Definitionsgemäß darf und kann immer nur ein Prozess im Monitor aktiv sein Monitor ist ein Programmiersprachenkonstrukt, das der Compiler speziell behandlen kann Der Compiler (nicht der Programmierer) realisiert den wechselseitigen Ausschluß Beispiel eines Monitors in Pidgin Pascal Anwendugen - Prozesse und Threads 83

84 IPC - Monitor (2) Outline of producer-consumer problem with monitors only one monitor procedure active at one time, buffer has N slots Anwendugen - Prozesse und Threads 84

85 IPC - Monitors (3) Solution to producer-consumer problem in Java (part 1) Anwendugen - Prozesse und Threads 85

86 IPC - Monitors (4) Anwendugen - Prozesse und Threads 86

87 IPC Möglichkeiten Anwendugen - Prozesse und Threads 87

88 Message Passing The producer-consumer problem with N messages Anwendugen - Prozesse und Threads 88

89 Barriers Use of a barrier processes approaching a barrier all processes but one blocked at barrier last process arrives, all are let through Anwendugen - Prozesse und Threads 89

90 Dining Philosophers (1) Philosophers eat/think Eating needs 2 forks Pick one fork at a time How to prevent deadlock Anwendugen - Prozesse und Threads 90

91 Dining Philosophers (2) A nonsolution to the dining philosophers problem Anwendugen - Prozesse und Threads 91

92 Dining Philosophers (3) Solution to dining Anwendugen philosophers - Prozesse und Threads problem (part 1) 92

93 Dining Philosophers (4) Solution to dining Anwendugen philosophers - Prozesse und Threads problem (part 2) 93

94 The Readers and Writers Problem A solution to the readers and writers problem Anwendugen - Prozesse und Threads 94

95 The Sleeping Barber Problem (1) Anwendugen - Prozesse und Threads 95

96 The Sleeping Barber Problem (2) Solution to sleeping barber problem. Anwendugen - Prozesse und Threads 96

97 Scheduling Introduction to Scheduling (1) Bursts of CPU usage alternate with periods of I/O wait a CPU-bound process an I/O bound process Anwendugen - Prozesse und Threads 97

98 Introduction to Scheduling (2) Scheduling Algorithm Goals Anwendugen - Prozesse und Threads 98

99 Scheduling in Batch Systems (1) An example of shortest job first scheduling Anwendugen - Prozesse und Threads 99

100 Scheduling in Batch Systems (2) Three level scheduling Anwendugen - Prozesse und Threads 100

101 Scheduling in Interactive Systems (1) Round Robin Scheduling list of runnable processes list of runnable processes after B uses up its quantum Anwendugen - Prozesse und Threads 101

102 Scheduling in Interactive Systems (2) A scheduling algorithm with four priority classes Anwendugen - Prozesse und Threads 102

103 Scheduling in Real-Time Systems Schedulable real-time system Given m periodic events event i occurs within period P i and requires C i seconds Then the load can only be handled if m i 1 C i P i 1 Anwendugen - Prozesse und Threads 103

104 Policy versus Mechanism Separate what is allowed to be done with how it is done a process knows which of its children threads are important and need priority Scheduling algorithm parameterized mechanism in the kernel Parameters filled in by user processes policy set by user process Anwendugen - Prozesse und Threads 104

105 Thread Scheduling (1) Possible scheduling of user-level threads 50-msec process quantum threads run 5 msec/cpu burst Anwendugen - Prozesse und Threads 105

106 Thread Scheduling (2) Possible scheduling of kernel-level threads 50-msec process quantum threads run 5 msec/cpu burst Anwendugen - Prozesse und Threads 106

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

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

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

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

Threads Einführung. Zustände von Threads

Threads Einführung. Zustände von Threads Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)

Mehr

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

Interprozesskommunikation IPC

Interprozesskommunikation IPC Interprozesskommunikation IPC Seminar Konzepte von Betriebsystem-Komponenten Denis Koslowski koslowski.d@web.de 04.07.2005-1 - Interprozesskommunikation Gliederung 1. Was ist IPC? 2. IPC: Datentransfer

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

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

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

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

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

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

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

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

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

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

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

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

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

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Technische Informatik II

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

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Formular»Fragenkatalog BIM-Server«

Formular»Fragenkatalog BIM-Server« Formular»Fragenkatalog BIM-Server«Um Ihnen so schnell wie möglich zu helfen, benötigen wir Ihre Mithilfe. Nur Sie vor Ort kennen Ihr Problem, und Ihre Installationsumgebung. Bitte füllen Sie dieses Dokument

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems

Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems Konfiguration von Exchange 2000 zum versenden und empfangen von Mails & Lösung des SEND after POP Problems Hier die notwendigen Einstellungen in der Administratorkonsole des Exchange 2000 Zuerst müssen

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Print2CAD 2017, 8th Generation. Netzwerkversionen

Print2CAD 2017, 8th Generation. Netzwerkversionen Installation der Netzwerkversion Kazmierczak Software Print2CAD 2017, 8th Generation Print2CAD 2017, 8th Generation Netzwerkversionen Einführung Installationshinweise Die Programme von Kazmierczak Software

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

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

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

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld Sharing. Auf dem Bildschirm sollte folgendes Fenster erscheinen: Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de

Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de GEVITAS-Sync Bedienungsanleitung Stand: 26.05.2011 Copyright 2011 by GEVITAS GmbH www.gevitas.de Inhalt 1. Einleitung... 3 1.1. Installation... 3 1.2. Zugriffsrechte... 3 1.3. Starten... 4 1.4. Die Menü-Leiste...

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Tutorial: Wie kann ich Dokumente verwalten?

Tutorial: Wie kann ich Dokumente verwalten? Tutorial: Wie kann ich Dokumente verwalten? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Dokumente verwalten können. Dafür steht Ihnen in myfactory eine Dokumenten-Verwaltung zur Verfügung.

Mehr

Informatik 1 Tutorial

Informatik 1 Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2014 Dr. Martin Hirt Christian Badertscher Informatik 1 Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so

Mehr

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen. HACK #39 Hack Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.»verschlüsseln Sie Ihren Temp-Ordner«[Hack #33] hat Ihnen gezeigt, wie Sie Ihre Dateien mithilfe

Mehr

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation... 2. Erstkonfiguration... 4

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation... 2. Erstkonfiguration... 4 E-Mail-Client Mozilla Thunderbird für Studierende Installation und Einrichtung Mozilla Thunderbird ist ein Open-Source-E-Mail-Programm und -Newsreader des Mozilla-Projekts. Es ist neben Microsoft Outlook

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

3.14 Die Programmieroberfläche Programmierung

3.14 Die Programmieroberfläche Programmierung 121 3.14 Die Programmieroberfläche Programmierung Besonderheiten Die Oberflächen der einzelnen Quellen (3S, KW-Software, Siemens-TIA-Portal, logi.cad 3, PAS4000) sind in sich unterschiedlich. Aber auch

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

Beheben von verlorenen Verknüpfungen 20.06.2005

Beheben von verlorenen Verknüpfungen 20.06.2005 Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:

Mehr

Computeria Solothurn

Computeria Solothurn Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Prozesse and Threads WS 09/10 IAIK 1

Prozesse and Threads WS 09/10 IAIK 1 Prozesse and Threads WS 09/10 IAIK 1 Prozesse Programm in Ausführung Mit einem Prozess verbunden: Adressraum Folge von Speicherstellen auf die der Prozess zugreifen kann Enthält ausführbares Programm,

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Informatik I Tutorial

Informatik I Tutorial ETH Zürich, D-INFK/D-BAUG Herbstsemester 2015 Dr. Martin Hirt Daniel Jost Informatik I Tutorial Dieses Tutorial hat zum Ziel, die notwendigen Tools auf dem eigenen Computer zu installieren, so dass ihr

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

Mehr

Erklärung zum Internet-Bestellschein

Erklärung zum Internet-Bestellschein Erklärung zum Internet-Bestellschein Herzlich Willkommen bei Modellbahnbau Reinhardt. Auf den nächsten Seiten wird Ihnen mit hilfreichen Bildern erklärt, wie Sie den Internet-Bestellschein ausfüllen und

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Wissenswertes über LiveUpdate

Wissenswertes über LiveUpdate Wissenswertes über LiveUpdate 1.1 LiveUpdate «LiveUpdate» ermöglicht den einfachen und sicheren Download der neuesten Hotfixes und Patches auf Ihren PC. Bei einer Netzinstallation muss das LiveUpdate immer

Mehr

etermin Einbindung in Outlook

etermin Einbindung in Outlook etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Handbuch. ECDL 2003 Professional Modul 3: Kommunikation. Signatur erstellen und verwenden sowie Nachrichtenoptionen

Handbuch. ECDL 2003 Professional Modul 3: Kommunikation. Signatur erstellen und verwenden sowie Nachrichtenoptionen Handbuch ECDL 2003 Professional Modul 3: Kommunikation Signatur erstellen und verwenden sowie Nachrichtenoptionen einstellen Dateiname: ecdl_p3_01_01_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Allgemeine USB Kabel Installation und Troubleshooting

Allgemeine USB Kabel Installation und Troubleshooting Allgemeine USB Kabel Installation und Troubleshooting Inhalt Installation der Treiber... 2 BrotherLink... 4 SilverLink... 5 Bei Problemen... 6 So rufen Sie den Geräte-Manager in den verschiedenen Betriebssystemen

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

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 1 von 6 Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 ci solution GmbH 2010 Whitepaper Draft Anleitung Deutsch Verfasser: ci solution GmbH 2010 Manfred Büttner 16. September

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe. Aufgabe 1.1: Systeminformationen Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe. a) Wie lautet der Name des von Ihnen verwendeten Rechners? Der Systemname

Mehr

iphone-kontakte zu Exchange übertragen

iphone-kontakte zu Exchange übertragen iphone-kontakte zu Exchange übertragen Übertragen von iphone-kontakten in ein Exchange Postfach Zunächst muss das iphone an den Rechner, an dem es üblicherweise synchronisiert wird, angeschlossen werden.

Mehr

Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7

Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7 Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7 In dieser Anleitung geht es um das Bereitstellen einer zentralen GV Service Installation auf einem Server-PC, auf

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr