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. ufgabe 1: Prozesse und Threads a) eschreiben Sie den typischen Lebenszyklus eines Prozesses mit Hilfe eines Zustandsdiagramms und benennen Sie die Zustandsübergänge. aktiv blockiert neu bereit ausgelagert terminiert b) eschreiben Sie in je ein bis zwei Sätzen, was man unter Programmen und Prozessen, sowie Userspace- und Kernelspace-Threads versteht und benennen Sie ihre Gemeinsamkeiten und Unterschiede. Programm: Folge von efehlen, die auf einem omputer zur usführung gebracht werden können. Prozess: Programm in usführung; Vom etriebssystem verwaltete inheit besteh aus Programmanweisungen, aten und Verwaltungsinformationen sowie ein oder mehreren ktivitätsträgern (Threads). Thread: Serielle ktivität innerhalb eines Prozesses mit eigenem Stack und Program-ounter. ie Verwaltung von Userspace-Threads erfolgt durch die pplikation (bzw. eine ibliothek), Kernelspace-Threads werden vom PU-Scheduler des etriebssystems verwaltet.
c) Wie verhält sich ein Webserver der aus mehreren Prozessen bzw. aus mehreren Userspace-Threads besteht bei einem blockieren iskzugriff? ei einem blockieren iskzugriff wird der ganze Prozess angehalten und somit auch alle seine Threads. nders als der Webserver mit mehreren Prozessen, wird der multithreaded Webserver also blockieren. d) Welche der folgen Ressourcen werden von allen Threads eines Prozesses geteilt und welche bestehen pro Thread? Program-ounter, Heap-Speicher, globale Variablen, Stack, PU-Register, geöffnete ateien, Signale und Signalhandler, ccounting- und enutzer-informationen. Pro Thread: Program-ounter, Stack und PU-Register. ufgabe 2: Scheduling a) Was versteht man unter Langzeiz-Scheduling (Job-Scheduling), was unter Kurzzeit-Scheduling (PU-Scheduling)? er PU-Scheduler wählt den als nächstes auszuführen Prozess aus der Ready-Queue aus, der Job-Scheduler bestimmt welche Prozesse in den Speicher geladen und welche ausgelagert werden. esweiteren wird er PU-Scheduler aktiv, wann immer ein anderer Prozess zum Zug kommen soll, der Job-Scheduler hingegen wird nur ausgeführt wenn ein Prozess terminiert oder zu wenig Speicher zur Verfügung steht. b) Warum ist es für den Scheduler wichtig zwischen I/O-bound und PU-bound Prozessen zu unterscheiden? I/O-bound Programme sind die meiste Zeit mit der in- und usgabe von aten beschäftigt. Sie brauchen ihre Zeitscheibe meist nicht auf sondern blockieren vor deren blauf und belasten die PU kaum. PU-bound Programme andererseits belasten die PU sehr stark und beanspruchen ihre Zeitscheibe meist komplett. b) Was sind die Vor- und Nachteile von preemptiv gegenüber non-preemptiv Multitasking. ie Hauptvorteile des preemtiv Multitasking sind, dass ein einzelner Prozess das System nicht blockieren kann und dass die Zuordnung der Prozesszeit besser gesteuert werden kann (priorisierung einzelner Prozesse ist möglich). in Nachteil ist zum eispiel der grössere ufwand für die Synchronisation der Prozesse und den Schutz von kritischen bschnitten. c) Gegeben seien die folgen Prozesse die alle zur Zeit t = 0 erstellt und gestartet werden. Prozess Priorität 2.. 3. 1. 4. edienzeit 10 10 0 erechnen Sie für die unten aufgeführten Scheduling-lgorithmen die mittlere ntwortzeit (Responsetime) RT und die usführungszeit (Turnaround Time) T T und stellen Sie den blauf grafisch dar. 2
Firs ome First Server (FFS) 1 1 0 RT = (0 + + 110 + 130 + )/ = 96 T T = ( + 110 + 130 + + 190)/ = 132 Shortest Job First (SJF) 1 1 0 RT = (0 + 10 + + + 90)/ = 32 T T = (10 + + + 90 + 190)/ = 70 Priority Scheduling (PS) 1 1 0 RT = (0 + 10 + 110 + 130 + 1)/ = 86 T T = (10 + 110 + 130 + 1 + 190)/ = 124 3
Round Robin (RR) mit einer Zeitscheibe von 1 1 0 RT = (0 + + 10 + 1 + )/ = 10 T T = (190 + 3 + 7 + 4 + )/ = 97 ufgabe 3: Prozess Synchronisation, eadlock und Starvation wichtigsten Lösungen und welche Probleme können auftreten. a) rörtern Sie die egriffe Race ondition anhand des folgen eispiels und markieren sie alle ritical Sections. Was für Probleme können bei der usführung auf mehreren Prozessen auftreten und wie können diese (z.. mit Hilfe von Semaphoren oder Monitoren) behoben werden? global const buf_size := 10 global var buf[buf_size] global var num := 0 function boolean push(a) if (num < buf_size) buf[num] := a num := num + 1 return true return false function pop() if (num > 0) num := num - 1 return buf[num] return null 4
ritical Section bschnitt eines Programms in dem eine beliebige Unterbrechung zu ungewollten ffekten führen kann. Im obigen eispiel sind dies die beiden Funktionen push() und pop(). Race ondition Konstellationen in denen das rgebnis einer Operation vom zeitlichen Verhalten bestimmter inzeloperationen abhängt. Im obigen eispiel kann es z.. sein, dass zwei Prozesse scheinbar gleichzeitig etwas auf den Stack legen, aber nur der zuletzt geschriebene Wert erhalten bleibt. Prozess Process buf[num] := a buf[num] := a num := num + 1 num := num + 1 b) eschreiben Sie mit Hilfe von Pseudocode die atomaren Operationen TestndSet, Swap und Fetchnddd. atomar function TestndSet(a, b, c) if (a == b) a := c return true return false atomar procedure Swap(a,b) var t := a a := b b := t atomar function Fetchnddd(a,b) var t := a a := a + 1 return t c) Gegeben sei die folge atomare Instruktion: atomar function Testnddd(a, b, c) if (a == b) a := a + c return true return false Zeigen Sie wie mit deren Hilfe eine binäre Semaphore implementiert werden kann.
global var s := 1 procedure P() while (not Testnddd(s, 1, -1)) do procedure V() Testnddd(s, 0, 1) d) ine einfache Lösung des ining-philosophers-problem besteht darin, dass einer der Philosophen die Gabeln in der umgekehrten Reihenfolge aufnimmt als alle anderen. Zeigen Sie, dass diese Lösung deadlockfrei ist, in dem Sie angeben welche eadlock-voraussetzung(en) nicht erfüllt ist/sind. Ist die Lösung auch gerecht, das heisst starvationfrei? ie edingung ircular Wait ist nicht erfüllt. ie Lösung ist nicht starvationfrei; es ist nicht garantiert, dass die Gabel eines Philosophen nicht dauernd von dessen Nachbarn beansprucht wird, wenn dieser darauf zugreifen will. ufgabe 4: Inter Process ommunication a) Ordnen Sie die drei lltagsgegenstände Whiteboard, Rohrpost und Postablage den IP-Mechanismen Messagepassing, Shared Memory und Pipes zu und erörtern Sie welche grundlegen igenschaften sie mit diesen verbinden. Whiteboard Shared Memory: lle die dürfen können gleichzeitig darauf zugreifen; keine Koordination wer, was, wann und wo schreibt. Rohrpost Pipes: Man hat eine direkte Verbindung vom Ser zum mpfänger; die Reihenfolge der Nachrichten ist gegeben. Postablage Messagepassing: Jeder der die Postablage kennt kann etwas ablegen; die Reihenfolge der Nachrichten ist gegeben. b) Welches nalogon aus dem lltag beschreibt am besten den Signal-Mechanismus? Zimmerglocke im Spital: Pro Zimmer hat es eine Lampe die anzeigt, dass jemand geklingelt hat. Leuchten beim prüfen der Lampen mehrere gleichzeitig, ist die Reihenfolge der barbeitung nicht festgelegt. 6