Einführung in die technische Informatik

Größe: px
Ab Seite anzeigen:

Download "Einführung in die technische Informatik"

Transkript

1 inführung in die technische Informatik hristopher Kruegel etriebssysteme ufgaben Management von Ressourcen Präsentation einer einheitlichen Schnittstelle für nwendungen wichtige Gebiete Prozessmanagement Speichermanagement ateisystem ingabe und usgabe System alls Funktionen, die ein etriebssystem den nwendungen zur Verfügung stellt infuehrung in die technische Informatik

2 Prozessmanagement Konzept etriebssystem stellt eine Reihe von virtuellen omputern zur Verfügung usführung eines Programms auf einem dieser virtuellen omputer heißt Prozess virtuelle omputer vermitteln den indruck, dass jeder Prozess auf einer eigenen PU mit eigenem Speicher läuft in Wirklichkeit wird zwischen den Prozessen hin- und hergeschaltet und diese laufen auf einer einzigen realen PU! Quasi-Parallelität oder logische Parallelität infuehrung in die technische Informatik Prozessmanagement Programm statisches Objekt im ateisystem Folge von Instruktionen unveränderlich über die Zeit Prozess dynamische bbild eines Programms läuft in einer bestimmten, veränderlichen Umgebung ab! ontext Folge von ausgeführten Instruktionen auf der PU existiert nur für eine bestimmte Zeit mehrere Prozesse können das selbe Programm ausführen infuehrung in die technische Informatik

3 Prozessmanagement Prozessablauf Prozesse können erzeugt werden durch das etriebssystem init task durch andere Prozesse fork() Prozesse können beendet werden freiwillig exit() wegen eines Fehlers (bsturz) durch einen anderen Prozess kill() infuehrung in die technische Informatik 5 Prozessmanagement Prozesszustand Prozesse kann auf der PU exekutiert werden (RUNNING) Prozess bereit sein, auf der PU exekutiert zu werden (RY) Prozess kann auf externe reignisse warten (LOK) Zustandsübergänge ausgelöst durch Prozess selbst (Termination) Scheduler Ressourcen werden verfügbar beschrieben durch Zustandsgraph infuehrung in die technische Informatik 6

4 Prozessmanagement Zustandsgraph Initialisierung Scheduling lockierung Ready locked e-lockierung Suspend Suspended Suspend infuehrung in die technische Informatik 7 Prozesse etriebssystem verwaltet Prozesse mittels process table Process table speichert Prozessdeskriptor (oder process control block) für jeden Prozess Prozessdeskriptor speichert relevante Informationen eines Prozesses Prozess-I Zustand Priorität esitzer des Prozesses (z.., UI) Zugriffsrechte (z.., UI) Registerinhalte Verweise auf benutzte Speicherbereiche (aten, Stack) Verweise auf offene Files infuehrung in die technische Informatik 8

5 Prozesse Prozesse besteht aus Ressourcen (dressraum, geöffnete ateien) usführung von Instruktionen (threads of execution) Zustand des Prozesses bei der usführung Werte in den Registern (und des Program ounters) Verlauf (History) der usführung und lokale Variablen am Stack infuehrung in die technische Informatik 9 Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i =? Registerinhalte (hier Program ounter) P = 5 infuehrung in die technische Informatik

6 Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 6 infuehrung in die technische Informatik Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 7 [ return value of f() ] infuehrung in die technische Informatik

7 Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 5 7 [ return value of f() ] [ return value of g() ] infuehrung in die technische Informatik Prozesse : : g() : { : g(); : } : Wert von i ist : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 6 7 [ return value of f() ] [ return value of g() ] infuehrung in die technische Informatik

8 Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 7 [ return value of f() ] infuehrung in die technische Informatik 5 Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = Registerinhalte (hier Program ounter) P = 7 infuehrung in die technische Informatik 6

9 Prozesse Parallele Prozesse unabhängige Ressourcen (dressraum, geöffnete ateien) unabhängige usführung (Stack und Register) können natürlich das selbe Programm ausführen infuehrung in die technische Informatik 7 Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i =? i =? Registerinhalte (hier Program ounter) P = 5 P = 5 infuehrung in die technische Informatik 8 P P P ontext P P P

10 Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i =? Registerinhalte (hier Program ounter) P = 6 P = 5 infuehrung in die technische Informatik 9 P P P ontext P P P Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i =? Registerinhalte (hier Program ounter) P = P = 5 infuehrung in die technische Informatik 7 P P P ontext P P P

11 Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = P = 6 infuehrung in die technische Informatik 7 P P P P P P ontext Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = P = 7 7 infuehrung in die technische Informatik P P P P P P ontext

12 Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = P = infuehrung in die technische Informatik P P P P P P ontext Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } Wert von i ist 7 dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = P = infuehrung in die technische Informatik P P P P P P ontext

13 Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = 5 P = P infuehrung in die technische Informatik 5 P P ontext P P P Parallele Prozesse : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } Wert von i ist dressraum (aten) i = i = 7 Registerinhalte (hier Program ounter) P = 6 P = P infuehrung in die technische Informatik 6 P P ontext P P P

14 Threads Threads mehrere, parallele usführungen von Instruktionen, aber mit den selben Ressourcen sind wegen des gemeinsamen dressraums effizienter zu koordinieren effizienter zu erzeugen besser beim Wechsel zwischen Threads (context switch) Nützlich für nwendungen mit mehreren ufgaben ein Prozess wartet auf ingabe, ein anderer führt erechnungen durch z.., Server pplikationen Natürlich kann man alles auch nur mit Prozessen realisieren IP (inter-process communication) infuehrung in die technische Informatik 7 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik 8 i =? Registerinhalte (hier Program ounter) P = 5 P = 5 ontext

15 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik 9 ontext i = Registerinhalte (hier Program ounter) P = 6 P = 5 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik ontext i = Registerinhalte (hier Program ounter) P = P = 5 7

16 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik i = 7 Registerinhalte (hier Program ounter) P = P = 6 7 ontext Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik i = 7 Registerinhalte (hier Program ounter) P = P = 7 7 ontext

17 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik i = 7 Registerinhalte (hier Program ounter) P = P = ontext Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } Wert von i ist 7 dressraum (aten) infuehrung in die technische Informatik i = 7 Registerinhalte (hier Program ounter) P = P = ontext

18 Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } dressraum (aten) infuehrung in die technische Informatik 5 ontext i = 7 Registerinhalte (hier Program ounter) P = 5 P = Threads : : g() : { : g(); : } : : int main(int argc, char **argv) : { 5: i = get_input(); 6: f(); return ; 8: } Wert von i ist 7 dressraum (aten) infuehrung in die technische Informatik 6 ontext i = 7 Registerinhalte (hier Program ounter) P = 6 P = 6 7 7

19 Scheduling Viele Prozesse, aber nur eine PU etriebssystem muss zwischen Prozessen wechseln etriebssystem braucht gelegentlich die PU selbst Wechsel ist aufwendig Zustand der usführung (Register) und dressraum des alten Prozess muss gespeichert werden neuer Prozess muss ausgewählt werden Zustand des neuen Prozess und dressraum muss geladen werden uswahl des neuen Prozesses! Scheduling infuehrung in die technische Informatik 7 Scheduling Ziele urchsatz (hoch) ntwortzeit (niedrig) PU uslastung Fairness Unterscheidung nicht-preemtive Verfahren ein Prozess kann die PU behalten, bis er fertig ist, oder freiwillig die Kontrolle abgibt preemtive Verfahren ein Prozess kann vom etriebssystem gegen seinen Willen unterbrochen werden infuehrung in die technische Informatik 8

20 Scheduling lgorithmen first-come, first-serve round-robin priority scheduling shortest job first shortest remaining time Scheduling wird festgelegt durch ngabe von den Zeitpunkten, zu denen Prozesse zu laufen beginnen (sich im Zustand RUNNING befinden) maximal ein Prozess kann sich im Zustand RUNNING befinden mehrere Prozesse können auf die PU warten (RY) infuehrung in die technische Informatik 9 Scheduling Praktisches eispiel ngabe rt des Scheduling lgorithmus ngabe ob preemtives oder nicht-preemtives Scheduling vorliegt Liste von Prozessen mit Information wann ein Prozess in den Zustand RY wechselt möglicherweise wie lange ein Prozess die PU benötigt möglicherweise Priorität Gesucht Zeitpunkte, wann welche Prozesse zu laufen beginnen infuehrung in die technische Informatik

21 Scheduling eispiel nicht-preemtives priority scheduling höherer Prioritätswert bedeutet höhere Priorität Prozess Startzeitpunkt Laufzeit Priorität infuehrung in die technische Informatik Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik

22 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik

23 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 5 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 6

24 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 7 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 8

25 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 9 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 5

26 Scheduling t Prozess Zeitpunkt (RUNNING) infuehrung in die technische Informatik 5 Scheduling eispiel preemtives priority scheduling höherer Prioritätswert bedeutet höhere Priorität Prozess Startzeitpunkt Laufzeit Priorität infuehrung in die technische Informatik 5

27 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 5 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 5

28 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 55 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 56

29 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 57 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 58

30 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 59 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 6

31 Scheduling Prozess Startzeitpunkt Laufzeit Priorität t infuehrung in die technische Informatik 6 Scheduling t Prozess Zeitpunkt (RUNNING) infuehrung in die technische Informatik 6

32 Interprozess-Kommunikation ufgabe wird in mehrere Teile zerlegt Jeder Teil wird von einem Prozess (oder Thread) bearbeitet Prozesse müssen untereinander Nachrichten austauschen! Interprozess-Kommunikation (IP) rbeitsschritte müssen in einer bestimmten Reihenfolge ausgeführt werden! Synchronisation infuehrung in die technische Informatik 6 Synchronisation Klassisches Problem Zugriff auf eine gemeinsame Ressource (z.., rucker) diese Ressource kann aber auch eine gemeinsame Variable sein erinnern wir uns an das Problem der globalen Variable bei den Threads Oft ist notwendig, dass ein Prozess eine Reihe von Operationen auf einer Ressource ausführt, ohne dass irgendein anderer Prozess auf diese Ressource zugreift ie Reihe von Operationen, welche nicht unterbrochen werden dürfen, nennt man oft critical section ie Tatsache, dass sich nur ein Prozess in einer critical section befinden darf, wird mutual exclusion genannt infuehrung in die technische Informatik 6

33 Interprozess-Kommunikation Synchrone Methoden mpfänger muss Nachricht aktiv abholen eispiel Message Passing Semaphore bekannte nalogie ist ein riefkasten synchrone Methoden mpfänger wird durch Nachricht unterbrochen eispiel Signale Interrupts bekannte nalogie ist ein ilbote infuehrung in die technische Informatik 65 Synchrone IP Semaphore dienen zur Synchronisation von ijkstra eingeführt ufbau ounter (Zähler) Warteschlange für Prozesse Semaphor ounter: Queue: Operationen P Operation V Operation infuehrung in die technische Informatik 66

34 Synchrone IP P Operation wenn ounter > erniedrige ounter um wenn ounter <= erniedrige ounter um blockiere den aufrufenden Prozess (oder Thread) und trage ihn in die Queue ein V Operation wenn ounter >= erhöhe ounter um wenn ounter < erhöhe ounter um de-blockiere einen Prozess, der in der Queue wartet infuehrung in die technische Informatik 67 Synchrone IP Idee bevor ein Prozess eine critical section betritt, muss eine P Operation ausgeführt werden am nde der critical section wird eine V Operation ausgeführt ounter wenn der ounter > ist, gibt er an, wie viele Prozesse ohne zu blockieren in die critical section dürfen (üblicherweise, kann aber für manche Ressourcen durchaus mehr sein) wenn der ounter < ist, gibt er an, wie viele Prozesse in der Queue warten infuehrung in die technische Informatik 68

35 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i =? Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 69 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i =? Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 7

36 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i =? Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 7 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 7

37 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 7 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = P = sema ounter: Queue: ontext infuehrung in die technische Informatik 7

38 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = P = locked sema ounter: - Queue: ontext infuehrung in die technische Informatik 75 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = P = locked sema ounter: - Queue: ontext infuehrung in die technische Informatik 76

39 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = 6 P = 5 locked sema ounter: - Queue: ontext infuehrung in die technische Informatik 77 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: i ist 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = 7 P = 5 locked sema ounter: - Queue: ontext infuehrung in die technische Informatik 78

40 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = 5 P = locked sema ounter: - Queue: ontext infuehrung in die technische Informatik 79 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = 6 P = sema ounter: Queue: ontext infuehrung in die technische Informatik 8

41 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = Registerinhalte (hier P) P = 6 P = sema ounter: Queue: ontext infuehrung in die technische Informatik 8 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = 7 Registerinhalte (hier P) P = 6 P = sema ounter: Queue: ontext infuehrung in die technische Informatik 8

42 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = 7 Registerinhalte (hier P) P = 6 P = 6 5 sema ounter: Queue: ontext infuehrung in die technische Informatik 8 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: i ist 7 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = 7 Registerinhalte (hier P) P = 6 P = 7 5 sema ounter: Queue: ontext infuehrung in die technische Informatik 8

43 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = 7 Registerinhalte (hier P) P = 6 P = 5 sema ounter: Queue: ontext infuehrung in die technische Informatik 85 Threads - Revisited : Semaphore sema; : : f() 5: { 6: printf( i ist %d\n, i); } 8: 9: int main(int argc, char **argv) : { :.. (do stuff here).. : P(sema); : i = get_input(); : f(); 5: V(sema); 6: return ; } dressraum (aten) i = 7 Registerinhalte (hier P) P = 6 P = 6 sema ounter: Queue: ontext infuehrung in die technische Informatik 86

44 eadlock Now, synchronisation is all good and fun. aber, eadlocks können auftreten! eadlock ine Gruppe von Prozessen wartet jeweils auf die ktion eines anderen Prozesses in dieser Gruppe aher kommt es zum Stillstand, kein Fortschritt wird mehr erzielt infuehrung in die technische Informatik 87 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread Thread P(S) P(S) P(S) P(S) V(S) V(S) V(S) V(S) Zeit(t) infuehrung in die technische Informatik 88

45 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread P(S) Thread P(S) P(S) P(S) V(S) V(S) V(S) V(S) Zeit(t) infuehrung in die technische Informatik 89 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread P(S) P(S) Thread locked P(S) P(S) blockiert, weil bereits S belegt hat V(S) V(S) V(S) V(S) Zeit(t) infuehrung in die technische Informatik 9

46 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread P(S) Thread locked P(S) P(S) P(S) V(S) V(S) V(S) V(S) Zeit(t) infuehrung in die technische Informatik 9 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread locked P(S) Thread locked P(S) P(S) P(S) blockiert, weil bereits S belegt hat V(S) V(S) V(S) V(S) Zeit(t) infuehrung in die technische Informatik 9

47 eadlock eispiel mit Threads und Semaphoren, die jeweils eine globale Variable schützen Thread locked P(S) Thread locked P(S) P(S) P(S) blockiert, weil bereits S belegt hat V(S) V(S) eadlock V(S) V(S) Zeit(t) infuehrung in die technische Informatik 9 eadlock Notwendige edingungen ) Mutual xclusion er Zugriff auf Ressourcen ist exklusiv ) Hold and Wait Prozesse können Ressourcen anfordern, obwohl sie schon welche besitzen ) No preemption Ressourcen werden nur durch Prozesse freigegeben ) ircular Wait Zumindest zwei Prozesse warten aufeinander infuehrung in die technische Informatik 9

48 eadlock Maßnahmen zur Verhinderung von eadlocks ) eadlock voidance Prozesse werden überwacht und alle nforderungen, die möglicherweise zu einem eadlock führen, werden nicht erlaubt oder verzögert ) eadlock Prevention eine (oder mehrere) der vier notwendigen edingungen für einen eadlock werden im System verboten ) eadlock etection eadlock wird erkannt und (einige) beteiligte Prozesse beendet ) Problem ignorieren infuehrung in die technische Informatik 95 Zusammenfassung etriebssysteme verwalten Prozesse Speicher ateisystem ingabe und usgabe Prozessmanagement Prozessmanagement atenstrukturen Zustandsübergänge Prozess Ressourcen und thread(s) of execution Thread Registersatz und thread-spezifischen aten (lokale Variable, Stack) Scheduling infuehrung in die technische Informatik 96

49 Zusammenfassung Interprozess-Kommunikation (IP) atenaustausch zwischen Prozessen (oder Threads) Synchronisation für mutual exclusion in critical section Synchrone IP Semaphore, Messages synchrone IP Signale, Interrupts eadlock schwerwiegendes Probleme bei Synchronisationsaufgaben infuehrung in die technische Informatik 97

Technische Informatik II

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

Mehr

Single- und Multitasking

Single- und Multitasking Single- und Multitasking Peter B. Ladkin ladkin@rvs.uni-bielefeld.de Peter B. Ladkin Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe "liest" (parst) die Eingabe (für Prog-Name) Macht "Lookup"

Mehr

b) Geben Sie für Ihr System vier virtuelle Adressen, deren Eintrag in der Page-Table und die dazugehörigen physikalischen Adressen an.

b) Geben Sie für Ihr System vier virtuelle Adressen, deren Eintrag in der Page-Table und die dazugehörigen physikalischen Adressen an. VU Technische Grundlagen der Informatik Übung 8: Netzwerke, Systemsoftware 183.579, WS2012 Übungsgruppen: Mo., 14.01. o., 17.01.2013 ufgabe 1: Virtual Memory Zeichnen Sie ein System, das Paging zur Speicherverwaltung

Mehr

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads Prozesse und Prozessmanagement des BS 1 Unterschied Prozess, Threads 1.1 Prozess Bei jedem Programm muss gespeichert werden, welche Betriebsmittel (Speicherplatz, CPU- Zeit, CPU-Inhalt,...) es benötigt.

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Betriebssysteme Kapitel E : Prozesse

Betriebssysteme Kapitel E : Prozesse Betriebssysteme Kapitel E : Prozesse 1 Inhalt Prozesse Zustand eines Prozesses» Kontext» Kontextswitch Prozessbeschreibungsblock PCB Zustandsübergänge» Zustandsdiagramm 2 Hinweis Ein Programm(code) kann

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

2.3 Prozessverwaltung

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

Mehr

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes

Mehr

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung

Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung Scheduling-Algorithmen: Zeitpunkt der Auswahlentscheidung Nicht-präemptives Scheduling: CPU kann einem Prozess nur entzogen werden, wenn er beendet oder blockiert ist Präemptives Scheduling: Aktueller

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

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a

Was machen wir heute? Betriebssysteme Tutorium 3. Organisatorisches. Prozesskontrollblock (PCB) Programmieraufgaben. Frage 3.1.a Was machen wir heute? Betriebssysteme Tutorium 3 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

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

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher.

parallele Prozesse auf sequenziellen Prozessoren Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Threads parallele Prozesse auf sequenziellen Prozessoren Prozesse und Threads Es gibt zwei unterschiedliche Programme: Ein Process ist ein typisches Programm, mit eigenem Addressraum im Speicher. Ein Thread

Mehr

Verklemmungen - Deadlocks

Verklemmungen - Deadlocks Verklemmungen - Deadlocks Betriebsmittel Verklemmung Vogelstrauss Algorithmus Erkennung und Auflösung Vermeidung SS2001 Prof. H.D. Clausen - unisal 1 Kritische Betriebsmittel Beispiele Drucker Magnetbandgeräte

Mehr

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

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

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

(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

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2

Literatur. Betriebssysteme - WS 2015/16 - Teil 13/Scheduling 2 Literatur [13-1] Quade, Jürgen; Mächtel, Michael: Moderne Realzeitsysteme kompakt. dpunkt, 2012 [13-2] Quade, Jürgen: Embedded Linux lernen mit dem Raspberry Pi. dpunkt, 2014 [13-3] Eißenlöffel, Thomas:

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

Mehr

Threads and Scheduling

Threads and Scheduling Vorlesung Betriebssysteme WS 2010, fbi.h-da.de Threads and Scheduling Jürgen Saala 1. Threads 2. Scheduling 2 1. Threads 3 Prozesse mit je 1 Adressraum 1 Ausführungsfaden d.h. Unabhängiger Adressraum mit

Mehr

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)

Betriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel

Mehr

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

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

Mehr

1 Prozesse und Scheduling (12 Punkte)

1 Prozesse und Scheduling (12 Punkte) 1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für

Mehr

2Binden 3. und Bibliotheken

2Binden 3. und Bibliotheken 3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler

Mehr

Betriebssysteme. Probeklausur. Olaf Spinczyk.

Betriebssysteme. Probeklausur. Olaf Spinczyk. Betriebssysteme https://ess.cs.tu-dortmund.de/de/teaching/ss/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os G Eingebettete Systemsoftware Informatik, TU Dortmund blauf

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

Vorl. 6: Single- und Multitasking

Vorl. 6: Single- und Multitasking Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorl. 6: Single- und Multitasking Peter B. Ladkin Single Tasking Command Interpreter (ComInt) läuft wartet auf Tastatur-Eingabe

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

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

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Proseminar KVBK : Scheduler unter Linux

Proseminar KVBK : Scheduler unter Linux Proseminar KVBK : Scheduler unter Linux Valderine Kom Kenmegne Valderine Kom Kenmegne 1 Gliederung 1. Einführung 2. Einplanungsstrategien im Betriebsystem 2.1 Ziel der Einplanungsstrategien 2.2 Beispiele

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

Aufgabe 1 Sicherheit. Klausur Betriebssysteme und Sicherheit, Name: Matrikel-Nr.: Studiengang: 7 Punkte

Aufgabe 1 Sicherheit. Klausur Betriebssysteme und Sicherheit, Name: Matrikel-Nr.: Studiengang: 7 Punkte Klausur etriebssysteme und Sicherheit, 31.07.2014 1 2 3 4 5 6 7 6 7 6 8 8 42 Aufgabe 1 Sicherheit 7 Punkte a) Nennen Sie die drei Haupt-Schutzziele in der atensicherheit! 1 P b) Nennen Sie einen Vorteil

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

Musterlösung Prüfung WS 01/02

Musterlösung Prüfung WS 01/02 Musterlösung Prüfung WS 01/02 Fach: I3 Software-Technik (SEE, GRS, BTS) Teilprüfung: Betriebssysteme Tag: 29.01.2002 10:45 14.45 Raum: 1006 Bearbeitungszeit: 4 Stunden Name:... Matr.Nr.:... Punkte:...

Mehr

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme Seite 1 Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme 1 11.07.2007 Hinweise: Bevor Sie mit der Bearbeitung der Aufgaben beginnen, müssen Sie auf allen Blättern Ihren Namen und Ihre

Mehr

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

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

Mehr

Literatur. VA SS Teil 5/Messages

Literatur. VA SS Teil 5/Messages Literatur [5-1] https://en.wikipedia.org/wiki/message-oriented_middleware [5-2] https://en.wikipedia.org/wiki/advanced_message_queuing_protocol http://www.amqp.org/specification/0-10/amqp-org-download

Mehr

Systemprogrammierung

Systemprogrammierung Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm

Mehr

Klausur am

Klausur am Vorlesung Betriebssysteme I Wintersemester 2004/2005 Fachbereich 12, Elektrotechnik und Informatik Betriebssysteme / verteilte Systeme Prof. Roland Wismüller Klausur am 04.04.2005 Name: Vorname: Matrikelnummer:

Mehr

4. Übung - Betriebssysteme

4. Übung - Betriebssysteme 1. ufgabe: Systemstart 4. Übung - etriebssysteme Informatik I für Verkehrsingenieure ufgaben inkl. eispiellösungen a Welche ufgabe hat das IOS und was passiert beim Starten eines Systems? b Welche ufgaben

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

Lösung von Übungsblatt 8

Lösung von Übungsblatt 8 Betriebssysteme (SS201) Lösung von Übungsblatt 8 Aufgabe 1 (Unterbrechungen) 1. Was sind Interrupts? Interrupts sind externe Unterbrechungen. Sie werden durch Ereignisse außerhalb des zu unterbrechenden

Mehr

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester

Pthreads. David Klaftenegger. Seminar: Multicore Programmierung Sommersemester Seminar: Multicore Programmierung Sommersemester 2009 16.07.2009 Inhaltsverzeichnis 1 Speichermodell 2 3 Implementierungsvielfalt Prioritätsinversion 4 Threads Speichermodell Was sind Threads innerhalb

Mehr

Homogene Multi-Core-Prozessor-Architekturen

Homogene Multi-Core-Prozessor-Architekturen Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009

Mehr

Prozesszustände (1a)

Prozesszustände (1a) Prozesszustände (1a) NOT EXISTING DELETED CREATED Meta-Zustand (Theoretische Bedeutung) Prozesszustände Multiuser Umfeld (1c) Hintergrund-Prozess - der Prozess startet im Hintergrund - my-commandbin &

Mehr

Modul B-PRG Grundlagen der Programmierung 1

Modul B-PRG Grundlagen der Programmierung 1 Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Betriebssysteme, Dateisysteme,Sicherheit V20: Prozesse Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik

Mehr

Aufgaben Semaphore Übersicht (Dijkstra)

Aufgaben Semaphore Übersicht (Dijkstra) Übersicht (Dijkstra) Einsatz von Semaphoren: Wechselseitiger Ausschluss (INIT = 1): REQ. Kritischer Bereich. REL Zählende Semaphore (INIT = N): Bis zu N verschiedene Prozesse dürfen in den kritischen Bereich

Mehr

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

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

Mehr

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm

Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller

Mehr

Info B VL 16: Monitore und Semaphoren

Info B VL 16: Monitore und Semaphoren Info B VL 16: Monitore und Semaphoren Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 16: Monitore und

Mehr

Teil 3: Konzepte von Betriebssystemen

Teil 3: Konzepte von Betriebssystemen Teil 3: Konzepte von Betriebssystemen Inhalt: Einführung Prozesse Speicherverwaltung Virtueller Speicher 1 Definition eines Betriebssystems Was ist ein Betriebssystem? einfache Definition: Als Betriebssystem

Mehr

I 7. Übung. I-1 Überblick. Besprechung Aufgabe 5 (mysh) Online-Evaluation. Posix Threads. Ü SoS I I.1

I 7. Übung. I-1 Überblick. Besprechung Aufgabe 5 (mysh) Online-Evaluation. Posix Threads. Ü SoS I I.1 I 7. Übung I 7. Übung I-1 Überblick Besprechung Aufgabe 5 (mysh) Online-Evaluation Posix Threads I.1 I-2 Evaluation I-2 Evaluation Online-Evaluation von Vorlesung und Übung SOS zwei TANs, zwei Fragebogen

Mehr

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit

Fakultät für Informatik der Technischen Universität München. Kapitel 3. Nebenläufigkeit Kapitel 3 Nebenläufigkeit 136 Inhalt Motivation Unterbrechungen (Interrupts) (Software-) Prozesse Threads Interprozesskommunikation (IPC) 137 Links: Literatur Maurice Herlihy, Nir Shavit, The Art of Multiprocessor

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

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10

Betriebssysteme BS-H WS 2014/15. Hans-Georg Eßer. Foliensatz H: Zusammenfassung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/01/10 BS-H Betriebssysteme WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz H: Zusammenfassung v1.0, 2015/01/10 10.01.2015 Betriebssysteme, WS 2014/15, Hans-Georg Eßer Folie H-1 Übersicht: BS

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

Mehr

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

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

Mehr

Aufgaben zum Thema Verklemmungen

Aufgaben zum Thema Verklemmungen Aufgaben zum Thema Verklemmungen V1. Untersuchen Sie das folgende Prozeßsystem auf das Auftreten von Deadlocks (s1, s2, s3: binäre Semaphore, mit true initialisiert): 95/5 Prozeß 1 Prozeß 2 Prozeß 3 P(s1);

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Probeklausur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund http://ess.cs.uni-dortmund.de/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016 Verteilte Systeme SS 2016 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 31. Mai 2016 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14) i

Mehr

POSIX-Threads. Aufgabe 9 SP - Ü U10.1

POSIX-Threads. Aufgabe 9 SP - Ü U10.1 U10 10. Übung U10 10. Übung POSIX-Threads Aufgabe 9 U10.1 U10-1 Motivation von Threads U10-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller Adressraum, Rechte, Priorität,...)

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Aufbau eines modernen Computers Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart DDR3- Speicher Prozessor Prozessor PEG Graphikkarte(n) weitere

Mehr

Übung zu Grundlagen der Betriebssysteme. 11. Übung

Übung zu Grundlagen der Betriebssysteme. 11. Übung Übung zu Grundlagen der Betriebssysteme 11. Übung 08.01.2012 Organisation Anmeldung zur Klausur Klausur Grundlagen der Betriebssysteme Datum: 05.02.2013 Raum F414 (steht aber noch nicht sicher fest) Anmeldung

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 13.11.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

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

Deadlock. Peter Puschner Institut für Technische Informatik

Deadlock. Peter Puschner Institut für Technische Informatik Deadlock Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Deadlock Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren

Mehr

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick

U9-3 Vergleich von Thread-Konzepten. U9-2 Motivation von Threads. U9-3 Vergleich von Thread-Konzepten (2) U9-1 Überblick U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 User-Level Threads: Federgewichtige Prozesse Realisierung von Threads auf Anwendungsebene innerhalb eines Prozesses

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Aufbau eines modernen Computers DDR3- Speicher Prozessor Prozessor PEG

Mehr

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces

Prozesse und Threads. Prozess. Trace. Einfachstes Prozessmodell. Traces Prozesse und s Begriffe und Konzepte Prozesszustände Kontrollstrukturen des BS Prozesse BS s Peter Puschner 1 Vorlesung Betriebssysteme, Prozesse; WS 05/06 2 Prozess Animated Spirit of a program ausführbares

Mehr

Prozesse: Prozesskontrollblock, -steuerung, -umschaltung

Prozesse: Prozesskontrollblock, -steuerung, -umschaltung Proseminar: Konzepte von Betriebssystemkomponenten 3.11.03 Prozesse: Prozesskontrollblock, steuerung, umschaltung Überblick Prozesskontrollblock Prozesszustände Prozessumschaltung Prozesskontrollblock

Mehr

Nicht-blockierende Synchronisation für Echtzeitsysteme

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

Mehr

Domänenanalyse Threadverwaltung/Scheduling

Domänenanalyse Threadverwaltung/Scheduling Domänenanalyse Threadverwaltung/Scheduling Johannes Handl, Marc Rößler, Christian Strengert 15. Mai 2003 Domänenanalyse Threadverwaltung/Scheduling [1] Domänendefinition Die Erzeugung, Verwaltung, Umschaltung/Wechsel,

Mehr

Betriebssysteme Theorie

Betriebssysteme Theorie Betriebssysteme Theorie SS 2012 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz C (08.04.2012) Scheduler 08.04.2012 Betriebssysteme-Theorie, SS 2012, Hans-Georg Eßer Folie C-1 Gliederung Was ist

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

Freispeicherverwaltung

Freispeicherverwaltung Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt

Mehr

Lösungen der Übungsaufgaben (Kap 1)

Lösungen der Übungsaufgaben (Kap 1) Lösungen der Übungsaufgaben (Kap 1) Übungsfragen Bei der Echtzeit-Programmierung steht nur der Zeitpunkt eines Ergebnisses im Vordergrund Echtzeit bedeutet so schnell wie möglich Bei weichen Echtzeit-Systemen

Mehr

Betriebssysteme BS-F WS 2015/16. Hans-Georg Eßer. Foliensatz F: Scheduling Prioritäten. v1.3, 2015/08/20

Betriebssysteme BS-F WS 2015/16. Hans-Georg Eßer. Foliensatz F: Scheduling Prioritäten. v1.3, 2015/08/20 BS-F Betriebssysteme WS 2015/16 Hans-Georg Eßer Foliensatz F: Scheduling Prioritäten v1.3, 2015/08/20 20.08.2015 Betriebssysteme, WS 2015/16, Hans-Georg Eßer Folie F-1 Übersicht Einführung System Calls

Mehr

Prozeß-Interaktion u. -Kommunikation

Prozeß-Interaktion u. -Kommunikation Definitionen: Prozeß: (Vorgang der) Programmausführung Interaktion: aufeinander bezogenes Handeln Kommunikation: Bidirektionaler (allg.: multidirektionaler) Austausch von Information Information: Daten,

Mehr

K Ergänzungen zur Einführung in C

K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Betriebssysteme 1. Einführung. Scheduling worum geht es? Scheduler: Gliederung

Betriebssysteme 1. Einführung. Scheduling worum geht es? Scheduler: Gliederung BS1-D Betriebssysteme 1 SS 2017 Prof. Dr.-Ing. Hans-Georg Eßer Fachhochschule Südwestfalen Einführung Foliensatz D: Scheduler v1.0, 2016/05/20 18.05.2017 Betriebssysteme 1, SS 2017, Hans-Georg Eßer Folie

Mehr

TechGI3: Systemprogrammierung. Klausur März 2008

TechGI3: Systemprogrammierung. Klausur März 2008 Klausur März 2008 ACHTUNG Die vorliegende wurde im März 2008 geschrieben. Sie ist für eine Bearbeitungszeit von 120 Minuten gedacht. In diesem Semester wurde das Modul TechGI3 nicht als prüfungsäquivalente

Mehr

Anwendung (2. Versuch:-) Entkopplung der Locks

Anwendung (2. Versuch:-) Entkopplung der Locks Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()

Mehr

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux Interrupts, Softirqs, Tasklets, Bottom Halves Interrupts: Softirqs, Tasklets, Bottom Halves 1 Thomas Engelhardt Übersicht: Klassifizierung

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

Konzepte von Betriebssystem-Komponenten. Ausnahme- / Unterbrechungsbehandlung

Konzepte von Betriebssystem-Komponenten. Ausnahme- / Unterbrechungsbehandlung Konzepte von Betriebssystem-Komponenten Sommersemester 2005 Uni Erlangen Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebsysteme Tarek Gasmi Tarek.Gasmi@informatik.stud.uni-erlangen.de Tarek Gasmi

Mehr

Performance Messungen von FreeRTOS und

Performance Messungen von FreeRTOS und Performance Messungen von FreeRTOS und µc/os-iii auf ARM-Architekturen Tim Wacher (wht4@bfh.ch) Master of Science in Engineering MRU Production Technology 16. August 2011/ CH-3400 Burgdorf Outline 1 Ziel

Mehr

Echtzeitanwendungen mit Java Real Time Specification for Java

Echtzeitanwendungen mit Java Real Time Specification for Java Fakultät Informatik» Institut für Angewandte Informatik» Lehrstuhl für Technische Informationssysteme Echtzeitanwendungen mit Java Real Time Specification for Java Vortrag im Rahmen des Hauptseminars Technische

Mehr

Fakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme

Fakultät für Informatik der Technischen Universität München. Nebenläufigkeit. Probleme Nebenläufigkeit Probleme 175 Race Conditions: Probleme Situationen, in denen zwei oder mehrere Threads/Prozesse, die gleichen geteilten Daten lesen oder schreiben und das Resultat davon abhängt, wann genau

Mehr

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp 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]:

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

U8 POSIX-Threads U8 POSIX-Threads

U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads U8 POSIX-Threads Motivation Thread-Konzepte pthread-api pthread-koordinierung U8.1 U8-1 Motivation von Threads U8-1 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung

Mehr