Fragen zu KE2 PDF

Title Fragen zu KE2
Author Pirabakaran Vijayakumar
Course Betriebssysteme
Institution FernUniversität in Hagen
Pages 6
File Size 68 KB
File Type PDF
Total Downloads 106
Total Views 147

Summary

Fragen zu KE 2...


Description

Eine Liste von Fragen zur KE 2: 1. Was ist ein Prozess? Was ist der Unterschied zu einem Programm?

Ein Programm ist an sich etwas Statisches, ein Prozess etwas Dynamisches. Programm: Definition lt. Skript Ein Programm ist eine Formulierung eines Algorithmus, d.h. es beschreibt in endlicher Form, welche Operationen in welcher Reihenfolge ausgeführt werden sollen. Der Programmtext ist die vollständige Beschreibung des Programms. Ein Prozess ist die konkrete Ausführung eines laufenden Programms. Prozess: Definition lt. Skript Ein ablaufendes Programm bezeichnet man als Prozess, inklusive des aktuellen Stands und Befehlszählers, der Registerinhalte und seines Hauptspeicherbereichs mit den Belegungen der Variablen. Rezept = Programm, Mensch = Prozessor, Zutaten = Eingabedaten, Vorgang des Kuchenbackens = Prozess. 2. Was gehört zu einem Prozess? (Programmsegment, Stacksegment, Datensegment und Prozesskontrollblock) - Stacksegment, Datensegment, Programmsegment und Prozesskontrollblock. wird auch als Prozessbild bezeichnet. 3. Was steht im Prozesskontrollblock? (Prozessidentifikation, Prozessstatus, Prozesskontrollinformationen) Oder welche Informationen werden in welcher Datenstruktur (PCB) gespeichert? Alle Daten, die das BS über einen Prozess verwalten muss, bezeichnet man als Prozesskontrollblock oder kurz PCB und alle PCBs zusammen werden in einer Prozesstabelle organisiert. Im Prozesskontrollblock stehen insbesondere folgende Informationen: - Prozess ID + Prozesszustand - Prozessorstatus - Programmzähler - Inhalte Prozessregister - Speicherbereich

4. Welche Zustände hat ein Prozess? Welche Übergänge gibt es? Malen Sie bitte das Prozesszustandübergangsdiagramm und erklären Sie die einzelnen Übergänge? (Beispielsweise wird bei der Erzeugung eines Prozesses ein Speicherplatz für die Programmsegment, Datensegment, Stacksegment und Prozesskontrollblock im Hauptspeicher reserviert, ... Die Zeichnung des Übergangsdigramms muss man unbedingt können) - Erzeugt - Bereit - Rechnend - Blockiert - Beendet 5. Bei einem Einprozessorsystem läuft zu jedem Zeitpunkt genau ein Prozess. Warum laufen die Prozesse trotzdem scheinbar parallel? Wie kann einem Prozess der Prozessor entzogen werden? Welche Hardware übernimmt diese Aufgabe, damit das Betriebssystem die Kontrolle wieder zurückerhält?

- Der Dispatcher. 6. Was macht der Scheduler? Wer entscheidet, welcher Prozess vom Zustand bereit in den Zustand rechnend geht? - Der Scheduler entscheidet, welcher Prozess vom Zustand bereits zum Zustand rechnend geht, d.h. die Reihenfolge der Prozesse in der Warteschlange realisiert (präsentiert) genau die SchedulingStrategie, die der Scheduler gewählt hat. Die Umschaltung erfolgt durch den Dispatcher. Warum geht ein Prozess vom Zustand rechnend zum Zustand bereit? - Es gibt zwei Möglichkeiten, warum ein Prozess vom rechnend zu bereit wechselt. Die erste Möglichkeit ist, dass der Prozess selbst entscheidet den Prozessor an einen anderen Prozess abgibt. Hierzu ruft dieser eine Systemfunktion auf, das BS erhält die Kontrolle und kann einen anderen Prozess in den Zustand rechnend versetzen (nicht präemptive Systeme). Die zweite Möglichkeit ist, dass das BS einem laufenden Prozess den Prozessor entzieht. Solche Systeme nennt man präemptiv. 7. Wer ist für das Umschalten des Prozessors zwischen Prozessen zuständig? Welche Aufgaben müssen beim Umschalten gemacht werden? - Der Dispatcher ist für das Umschalten des Prozessors zwischen den Prozessen zuständig. Ihre Aufgabe ist die Sicherung der Informationen über den bisher rechnenden Prozess in dessen Prozesskontrollblock. Auch übergibt der Dispatcher den Prozesskontrollblock an den Scheduler zum Einfügen in die entsprechende Warteschlange (bereit, blockiert). Des Weiteren wird der alte Zustand des von Scheduler ausgewählten nächsten Prozesses aus dessen Prozesskontrollblock wiederherzustellen. Anschließend wird der Prozessor an den neuen Prozess übergeben, damit dieser in den Zustand rechnend kommt. 8. Wann findet eine Prozessumschaltung statt? - Systemaufruf, Timer Interrupt, Prozess ist beendet, Unterbrechung, Trap, Sietenfehler Was ist die Beziehung zwischen Prozesswechsel und Moduswechsel? Moduswechsel: Bei einem Moduswechsel sind folgende Schritte erforderlich: 1. Aktualisierung und Sicherung der Zustandsinformationen des Prozesskontrollblocksdes gerade aktiven Prozesses (also insb. des Programmstatusworts) 2. Durchführung des eigentlichen Moduswechsels durch Freigabe aller Privilegien 3. Sprung zur Unterbrechungsroutine (Programmzähler wird auf dessen Anfangsadresse gesetzt. Ein Moduswechsel ist i.d.R. schneller als ein vollständiger Prozesswechsel, da die Zustandsinformationen nicht gesichert werden 9. Was heißt nicht-präemptiv? Was heißt präemptiv? - Bei nicht-präemptiven BS entscheidet der Prozess selber, ob er den Prozessor abgeben möchte. - Bei präemptiven Systemen entzieht das BS einem laufenden Prozess den Prozessor. 10. Welche Qualitätsmerkmale von Scheduling-Strategien gibt es? - Maximale Effizienz, d.h. hohe Prozessorauslastung - Minimale Antwortzeiten - Minimale Durchlaufzeiten - Maximaler Durchsatz - Fairness, d.h. gerechte Verteilung des Prozessors Können sie gleichzeitig erfüllt werden? Welche Konflikte gibt es zwischen den Qualitätsmerkmalen? - Einen optimalen Scheduling-Algorithmus kann es nicht geben, da sie sich teilweise widersprechen. Folglich entstehen Konflikte zwischen den Merkmalen. Ein Extrem-Beispiel: Ich habe ein rechenintensives Programm, z.B. eine Simulation, die mehrere Tage Rechenzeit benötigt. Wenn ich dieses Programm nun an einem Stück ausführen lassen, habe ich die ganze Zeit volle Prozessorauslastung und für dieses Programm eine

minimale Durchlaufzeit. Gleichzeitig ist mein Prozessor jedoch mehrere Tage blockiert und ein kleines Programm müsste lange warten (Widerspruch zur Fairness und zu minimalen Antwortzeiten) Was ist mit Fairness gemeint? - Als einer unter vielen Benutzern will man natürlich auch, dass es bei der Verteilung der Prozessorkapazität gerecht zu geht. Niemand will u.U. Fairness ewig auf die Bearbeitung seines Auftrags warten, nur weil ständig jemand kommt und sich vordrängelt. 11. Welche Scheduling-Strategien mit Vor- und Nachteilen sind geeignet für ein Batchbetrieb? Beim Batchbetrieb ist das anzustrebende Ziel eine minimale Durchlaufzeit. Dies ist bei First-ComeFirst-Serve gegeben, sowie bei SJF, SRTF und Priority gegeben. 12. Welche Scheduling-Strategien mit Vor- und Nachteilen sind geeignet für ein nicht-kooperativ (präemptiv) interaktiver Betrieb? - Beim interaktiven Betrieb besteht der Wunsch, dass Prozesse, die ständig kurze Ein/Ausgaben haben, nicht lange auf die nächste Prozessorzuteilung warten müssen. Sie würden z.B. beim Round Robin ihr Quantum oftmals nicht vollständig ausnutzen und stattdessen wegen E/A blockieren. Mit der Strategie „Feedback Scheduling“ wird die Vergangenheit eines Prozesses bei der Auswahl des nächsten Prozesses berücksichtigt. Hierbei erhält jeder Prozess eine Priorität, wobei die Priorität bei jeder Prozessorumschaltung neu berechnet wird. Prozesse, die nicht rechnend waren, erhalten eine höhere Priorität. Vorteil hierbei ist außerdem, dass Prozesse nicht mehr verhungern können. Neue Prozesse erhalten zunächst eine hohe Priorität und eine kleine Zeitscheibe. Hat der Prozess sein Quantum komplett genutzt, erhält er eine niedrigere Priorität, aber sein Quantum verdoppelt sich. Wie kann man diese Strategien so einstellen, dass sie interaktive Prozesse bevorzugen? - Mit der Strategie „Multiple Queues“ werden Prozesse in verschiedene Klassen eingeteilt: Es existieren die Klasse der Systemprozesse, der Dialogprozesse und der Hintergrundprozesse (batch jobs). Für jede Klasse ist ein eigener Scheduler zuständig. Nun kann das Gesamtscheduling so eingestellt werden, dass Dialogprozesse bevorzugt werden. 13. Beschreiben Sie die einzelnen Scheduling-Strategien mit Vor- und Nachteilen. First Come First Served: - Eine einfache Scheduling-Strategie ist es, die Prozesse in der Reihenfolge ihrer Ankunft im System abzuarbeiten. Vorteile: - Einfach zu implementieren. - geringer Verwaltungsaufwand, da die Operationen in konstanter Zeit arbeiten. - Fairness, da alle Prozesse der Reihe nach den Prozessor erhalten. Nachteil: - kurz laufende Prozesse müssen u. U. sehr lange warten, daher für Dialogsysteme nicht geeignet. Round-Robin: Hierbei werden Prozesse wie bei First-Come-First-Served in einer Warteschlange verwaltet. Jeder Prozess darf den Prozessor jedoch nur für eine bestimmte Zeit behalten. Diese Zeit nennt man Zeitscheibe oder Quantum. Hat der rechnende Prozess nach dem Ablauf seiner Zeitscheibe den Prozessor noch nicht freigegeben, so wird er vom BS unterbrochen und kommt an das Ende der Warteschlange. Dort werden auch neue Prozesse eingereiht. Vorteile RR: – Fairness: Jeder Prozess bekommt seinen Anteil am Prozessor. – Kurz laufende Prozesse werden nicht benachteiligt. – Einfach zu implementieren – Wenig Verwaltungsaufwand Nachteil RR: – Langlaufende Prozesse müssen bis zu ihrem Ende recht lange warten.

Shortest Job First: - Eine andere Scheduling-Strategie ist es, immer dem Prozess mit der kürzesten Bedienzeit den Prozessor zuzuordnen. Haben mehrere Prozesse dieselbe Bedienzeit, so kann man für diese Prozesse die First Come First Served Strategie anwenden. Vorteile: - Garantiert die minimale Wartezeit für eine feste Menge von Prozessen mit bekannten Bedienzeiten. - Kurz laufende Prozesse werden nicht benachteiligt. - Algorithmus ist relativ leicht zu implementieren, falls die Dauer des nächsten CPU bursts bekannt ist. Nachteile: - Langläufer müssen eventuell ewig warten. - Die Dauer des nächsten CPU bursts ist nicht bekannt und kann nur geraten bzw. geschätzt werden. - größerer Verwaltungsaufwand O(log n). - Prozesse können verhungern. SRTF (Shortest Remaining Time First) Eine Abwandlung der Shortest-Job-First-Strategie. Die Idee ist, dass jedes Mal, wenn ein neuer Prozess eintrifft, der rechnende Prozess angehalten wird. Die noch verbleibende Bedienzeit dieses Prozesses wird zu seiner neuen Bedienzeit. Dann wird wieder unter allen bereiten Prozessen derjenige mit der kleinsten Bedienzeit ausgewählt. Priority Scheduling - Prozesse sind nicht mehr gleich wichtig, sondern werden nach Prioritäten geordnet. - Prioritäten können intern oder extern vergeben werden. - Prioritäten können statisch oder dynamisch sein. - Dynamische Priorität bedeutet, dass die Priorität angepasst wird, z.B. erhalten Prozesse mit kleiner Priorität, die schon lange warten, vom System eine höhere => so wird verhungern verhindert - Vorteil: Wichtige Aufgaben werden schnell erledigt - Nachteil: Bei statischer Vergabe ist "verhungern" möglich => nicht fair Feedback Scheduling: - Man fasst Verfahren, die die Vergangenheit eines Prozesses bei der Auswahl des nächsten Prozesses berücksichtigen, unter dem Begriff Feedback Scheduling zusammen. Vorteil: - Prozesse werden nicht ein für allemal kategorisiert, sondern je nach ihrem Verhalten beurteilt. - Größere Gerechtigkeit, da kein Verhungern von Prozessen. Nachteil: - Höherer Verwaltungsaufwand, da Prozesse ständig neu beurteilt werden müssen. Mehrere Warteschlangen: - Ein häufig benutztes Verfahren besteht darin, die Prozesse wie beim Priority Scheduling in verschiedene Klassen einzuteilen. Jede der Klassen hat dann eine eigene Warteschlange, für die jeweils ein eigener Scheduler zuständig ist (Multiple Queues). Ein mögliche Einteilung könnte z.B. so aussehen: 1. Die Klasse der Systemprozesse. Sie hat die höchste Priorität 1. Innerhalb der Klasse werden die Prozesse nach dem First Come First Served Verfahren ausgewählt. 2. Die Klasse der Dialogprozesse. Sie hat mittlere Priorität 2. Innerhalb der Klasse werden die Prozesse nach dem Round Robin Verfahren ausgewählt. 3. Die Klasse der Hintergrundprozesse (Batch Jobs). Sie hat niedrigste Priorität (3). Innerhalb der Klasse kommt das rechenzeitabhängige Feedback Scheduling zur Anwendung. Vorteil: - Sehr gute Differenzierung zwischen Prozessen. - Aufgrund der vielen Parameter sehr vielseitig einstellbar. Nachteil: - Hoher Verwaltungsaufwand für das Scheduling. - Aufgrund der vielen Parameter ist es sehr schwierig, eine gute Einstellung zu finden. 14. Welche theoretische Eigenschaft hat die SJF-Strategie? Was ist die Nachteile von SJF? (starvation, Wissen der CPU bursts) Wie kann man CPU bursts abschätzen? - SJF (Shortest Job First) bedeutet, dass immer derjenige Prozess ausgewählt wird, der die kürzeste Bedienzeit hat. Dies ist zwei wichtige Eigenschaften: Zum einen wird eine minimale

durchschnittliche Antwortzeit garantiert (Vorteil), zum anderen ist die Gefahr, dass Langläufer verhungern (starvation). 15. Wie wird die Priorität festgelegt, wenn man die SJF-Strategie und die FCFS-Strategie als Priorität-Strategie betrachtet? - SJF kann man wie folgt als Prioritäts-Strategie interpretieren: Je kleiner die Bedienzeit eines Prozesses ist, desto höher ist seine Priorität. Bei FCFS erhalten die Prozesse, die zuerst ankommen eine hohe Priorität, die späteren eine entsprechend niedrigere. 16. Wie wird die Zeitscheibe festgelegt, wenn man die FCFS-Strategie als Round Robin betrachtet? Jeder Prozess hat die Größe der Zeitscheibe unendlich. Die Größe der Zeitscheibe ist sorgfältig zu wählen. Wählt man das Quantum q zu klein, gibt es ein ungünstiges Verhältnis Verwaltungsaufwand „echte Arbeit“. Im worst case ist der Prozessor nur mit der Prozessumschaltung beschäftigt und fast gar nicht mit „echter“ Arbeit. Wählt man q zu groß werden die Wartezeiten für die interaktiven Benutzer unzumutbar groß. Eine sinnvolle Größe für q ist ein Wert, der etwas größer als die für eine übliche Interaktion erforderliche Zeit ist, typischerweise in Millisekunden-Größenordnungen 17. Wie soll man die Länge einer Zeitscheibe wählen? Was muss man bei der Auswahl einer Zeitscheibe beachten? Welche Probleme können bei zu langer oder zu kurzer Zeitscheibe entstehen? 18. Was ist ein Thread? Was ist der Unterschied zu einem Prozess? Was haben die Threads eines Prozesses gemeinsam? - Ein Thread ist ein leichtgewichtiger Prozess. Es hat sich als nützlich erwiesen, wenn nicht für alle Aufgaben eigene Prozesse vorhanden sind. Statt dessen werden mehrere Ressourcen von verschiedenen Prozessen gemeinsam genutzt, z.B. ein gemeinsamer globaler Datenbereich. Mit Hilfe von Threads lassen sich auch parallele Aktivitäten innerhalb eines Prozesses beschreiben. Ein Prozess kann aus mehreren Threads bestehen. Ein Thread ist definiert durch seinen eigenen – Registersatz – Programmzähler – Stackbereich Programm- und Datensegment teilen sich die verschiedenen Threads eines Prozesses. Anwendungsgebiete für Threads sind bspw. Mehrprozessor-Maschinen. Ein Programm kann so mit Hilfe von Threads parallelisiert und dadurch wesentlich beschleunigt werden. Verschiedene Threads können jeweils einem eigenen Prozessor zugewiesen werden und dann parallel abgearbeitet werden. Weitere Anwendungsgebiete sind Gerätetreiber für langsame Geräte (Bsp. Diskettenlaufwerk: Der Prozessor im Controller kann schon die nächste Anfrage bearbeiten (Thread), falls der Schreib-/Lesekopf für die vorherige Anfrage gerade positioniert wird.) oder verteilte Systeme. (Client/Server) Welche Vorteile haben Threads? (Insbesondere können die Threads mittels des gemeinsamen Datensagements durch das Hinterlassen der Nachrichten gut kommunizieren) – Erreichbarkeit (Wenn ein Prozess blockiert würde, so muss nur ein Thread blockiert werden, während die anderen Threads weiterarbeiten können.) – Teilen der gemeinsamen Ressourcen (Es ist möglich, dass verschiedene Prozesse auf die gleichen Ressourcen, z.B. Datenspeicher zugreifen) – Mehr Effizienz (Threads arbeiten wesentlich effizienter, weil bei einem Wechsel der Threads nur die Register ausgetauscht werden. Es ist auch effizienter, was den Speicherverbrauch betrifft, wenn der Speicher nicht dupliziert wird.) Was ist der Unterschied zwischen Kernel-Threads und Benutzeer-Threads? Bei Benutzer-Threads hat der Kern keinerlei Kenntnis davon, ob ein Prozess mehrere Threads verwendet oder nicht. Um seine Threads zu verwalten, braucht jeder Prozess seinen eigenen, privaten Thread-Kontrollblock, analog zum PCB. Er behandelt das Scheduling seiner Threads selbst. Zum Scheduling von Benutzer-Threads kommen nur die nicht-preemptiven SchedulingStrategien in Frage. Ein Nachteil von Benutzer-Threads ist, dass der ganze Prozess blockiert, wenn ein Benutzer-Thread blockiert. Bei Kernel-Threads verwaltet der Kern die Threads ähnlich, wie er schon Prozesse verwaltet. Es gibt eine Tabelle von Prozessen und Threads, die alle am Scheduling des BS-Kerns teilnehmen. Diese Realisierung ist aufwändiger, zusammengehörige Kernel-Threads können in Multiprozessor- Systemen jedoch auf mehreren Prozessoren parallel ablaufen.

Welche Threads können in Multiprozessor-Rechner auf mehreren Prozessoren parallel einsetzt werden? Warum? - Kernel Threads: Zusammengehörige Kernel-Threads können in Multiprozessor- Rechnern auf mehreren Prozessoren parallel ablaufen. Welche Scheduling-Strategien kann man bei Benutzer-Threads verwenden? Warum? Warum kann man nur nicht-präemptive Scheduling-Strategien bei Benutzer-Threads verwenden? Benutzer Threads: nicht präemptive Scheduling Strategie. Dies ist allerdings dann problematisch, wenn einer der User-Threads einen blockierenden Systemaufruf tätigt. Dadurch, dass dieser UserThread blockiert ist, wird es ihm unmöglich, die Kontrolle an einen anderen User-Thread abzugeben – auf diese Weise wird das gesamte Programm blockiert. Dieses Problem kann jedoch umgangen werden, indem die genutzte Bibliothek dem User-Thread Ersatzfunktionen bereitstellt. Die Bibliothek nutzt dann ausschließlich nichtblockierende Systemaufrufe des Betriebssystems, die dieses bereitstellen muss....


Similar Free PDFs