Was versteht man unter einem Programm?
Eindeutig
Allgemein
Ausführbar
Endlich
Prozess/Task
Programm wird unter Kontrolle von OS ausgeführt
Bei Ausführung entstehen Berechnungsdaten, Prozessdaten und Statusinformationen
Prozess besitzt
Programm Segment
Daten Segment
Stack Segment
Status Segment
Prozesszustände
Aktiver Prozess
Blockierter Prozess
Beendeter Prozess
Inaktiver Prozess
Ausgelagerter Prozess
Threads
Multitasking erlaubt gleichzeitige Ausführung von mehreren Prozessen. Um in einem Prozess mehrere Abläufe zu erzeugen, verwendet man Threads(Ablauffäden)
Thread->Sequenzieller Ablauf im Prozess
Prozess->Kann aus mehrere Threads bestehen
Threads->Teilen sich Betriebsmittel
Motivation für Threads
Kürzere Reaktionszeit
Nebenläufige Programmierung
Bei Thread Blockage können weitere bearbeitet werden
Bei mehreren CPU´s echte parallelität
Prozesskommunikation
Bei Multitasking ist Kommunikation/Synchronisation wichtig
Software besteht aus mehreren Prozessen
Zugriff auf gemeinsam genutze Betriebsmittel
Arten von Kommunikation
Gemeinsamer Speicher
Gemeinsame Dateien
Pipes
Singale
Nachrichten
Deadlock
Verklemmungszustand->Jeder Prozess wartet auf Ereignis, das nur ein Prozess aus dieser Menge auslösen kann
Bedeutet:
Alle Prozesse warten
Ereignisse werden niemals ausgelöst
Kein Prozess wird aktiviert
Bedingungen
Wechselseitiger Ausschluss
Hold and Wait
Ununterbrechbarkeit
Zyklisches Warten
Maßnahmen:
Erkennung und Abbruch Prozess
Deadlock Avoidance
Deadloch Prevention
Spooling
Zuletzt geändertvor 2 Jahren