37
Betriebsysteme (Subject) / Prozesse (Lesson)
Advertisement
- Was gehört zu einem Prozess? - Programmsegment enthält den vom Prozessor ausführbaren Code des Programms - Datensegment hier stehen die Daten, die das Programm bearbeiten soll oder die es erzeugt hat - Stacksegment hier steht der Programmstack, auf den bei jedem Prozeduraufruf ein Aktivierungsblock mit den Parametern, lokalen Variablen und der Rücksprungadresse kommt - Prozesskontrollblock hier stehen alle Daten, die das Betriessystem über einen Prozess verwalten muss
- Wann findet eine Prozessumschaltung statt? Wenn folgende Erreignisse aufgetreten sind: - Ein Prozess will einen Systemaufruf durchführen, z.B. eine Ein/Ausgabe oder die Erzeugung eines neuen Prozesses. Der Prozess geht dann vom Zustand rechend in den Zustand blockiert über. - Ein Prozess gibt den Prozessor ab, oder die Zeitscheibe ist abgelaufen und dadurch wird ein Timer-Interrupt ausgelöst. - ein Prozess ist mit der Abarbeitung seines Programms fertig und geht daher in den Zustand "beendet" über. - Eine Unterbrechung wird durch ein Ein-/Ausgabegerät ausgelöst, d.h. ein Ereignis tritt ein, auf das ein Prozess im Zustand blockiert wartet. Der bisher blockierte Prozess wechselt in den Zustand bereit. - Der rechnende Prozess verursacht einen Fehler, z.B. Division durch Null, und ein Trap wird ausgelöst. - Ein Seitenfehler passiert, d.h. ein Prozess greift auf eine Speicherseite zu, die sich nicht im Hauptspeicher befindet.
- Welche Aktionen finden bei einem Prozesswechsel statt? - Sichern des Prosessorzustands mit allen Registern incl. Programmzähler. - Aktualisieren des Prozesskontrollblocks des laufenden Prozesses, der Zustand wird auf bereit, blockiert oder beendet gesetzt, statistische Informationen fortschreiben. - Einreihen des Prozesses in die entsprechende Warteschlange (bereit, wartend auf Ereignis x). - Auswählen eines Prozesses zur Ausführung, dies macht der Scheduler. - Aktualisieren des Prozesskontrollblocks des neuen Prozesses, der Zustand wird auf rechnend gesetzt. - Anpassen der Hauptspeicherverwaltungsstrukturen. - Wiederherstellen des alten Prozessorzustands des neuen Prozesses aus dessen Prozesskontrollblock.
- Qualitätsmerkmale von Scheduling-Algorithmen - Maximale Effizienz (hohe Prozessorauslastung) - Minimale Antwortzeiten - Minimale Durchlaufzeiten - Maximale Duchsatz - Fairness (gerechte Verteilung des Prozessors Durchlaufszeit - das Zeitintervall zwischen Start und Ende des Prozesses, ist hier das anzustrebende Ziel. Durchsatz - möglichst viel Arbeit in vorgegebener Zeit (Aufträge) in vorgegebener Zeit erledigen. Antwortzeit - das Zeitintervall zwischen Eingabe des Benutzers (z.B. Tastendruck oder Mausklick) und dem Beginn der Reaktion des Systems (z.B. Anzeige eines Zeichens oder kurzes Blinken). Heutzutage ein wichtiges Scheduling-Kriterium, weil heute immer mehr Aufgaben interaktiv am Rechner erledigt werden. Maximale Effizienz: die Durchschnittswerte der Kriterien werden optimiert: die durchschnittliche Antwortzeit soll minimal werden, die durchschnittliche Auslastung maximal. Bei zeitkritischen Systemen - das maximum der Antwortzeit soll minimiert werden. Bei interaktiven Systemen die Abweihung von der durchschnittlichen Antwortzeit zu minimieren. Dadurch erhält man ein System, bei dem man die Antwortzeit gut vorhersagen kann.
- Scheduling für nicht-präemptive Sysreme First Come Firs Served (FCFS) Die Prozesse werden in der reihenfolge ihrer Ankunft im System abgearbeitet. Ein kurzer Prozess hinter einem Langläufer muss nicht nur absolut, sondern auch relativzu seiner eigenen Rechenzeit länger warten, als ein Langläufer hinter einem kurzen Prozess. Nicht zumutbar für interaktive Benutzer. Vorteile: + Einfach zu implementieren. + geringer Verwaltungsaufwand, da die Operationen in konstanter Zeit arbeiten + Fairness, da alle Prozesse der Reihe nach den Prozessor erhalten. Nachteile: - kurz laufende Prozesse müssen u.U. sehr lange warten, daher für Dialogsysteme nicht geeignet. Der Scheduler braucht alle bereiten Prozesse nur in einernormalen Warteschlange (queue) nach dem FIFO Prinzip zu verwalten. DerZeitbedarf der Operationen Einfugen und Entfernen eines Elements in dieserStruktur ist konstant, also unabhangig von der Zahl der Prozesse. O(1)
- Scheduling für nicht präemptive Systeme Shortest Job First (SJF) Scheduling-Strategie - 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. Diese Strategie minimiert die mittlere Wartezeit der einzelnen Prozesse. Die mittlere Wartezeit ist minimal, wenn die kleinsten Bedienzeiten bei den meisten Prozessen und umgekehrt, die größten Bedienzeiten bei den wenigsten Prozessen in die Wartezeit eingeht. Implementierung: - sortierte Liste für die bereiten Prozesse. Das Entnehmen des nächsten Prozesses ist in konstanter Zeit möglich. Das Einsortierung den neu eingetroffenen Prozesse führt zu einer linearen Zeitkomplexität. - Heap, Das einfügen und das Entfernen der Prozesse sind in O(log n) Zeit möglich, wenn die Anzahl der Prozesse n ist. Das größte Problen bei der Implementierung - die Bedienzeit zu kennen
- Feedback Scheduling Durch gleichzeitge Anwendung verschiedener Strategien werden die unterschiedlichen Vorteile verschiedener Strategien vereinigt und die Nachteile unterbunden. Die Vergangenheit eines Prozesses wird bei der Auswahl des nächsten Prozesses berücksichtigt. Dabei kann man die Priorität der einzelnen Prozesse z.B. bei jeder Prozessumschaltung neu berechnen. Prozesse, die nicht rechnend waren erhalten eine höhere Priorität. Ein Prozess kann jetzt nicht mehr ewig warten müssen, da seine Priorität beim warten ständig steigt. Irgendwann hat auch dieser Prozess die höchste Priorität und bekommt den Prozessor zugeteilt (aging). Wenn man noch das Round Robin Verfahren hinzunimmt: neue Prozesse erhalten zunächst eine hohe Priorität und eine kleine Zeitscheibe. Hat der Prozess sein Quantum komplett genutzt, so erhält er eine niedrigere Priorität, aber sein Quantum verdoppelt sich. So müssen sehr lang laufende Prozesse nicht ständig ihren Zustand wechseln. Stattdessen kommen sie seltener an den Prozessor und dürfen ihn dafür dann etwas länger behalten. Kurz laufende Prozesse haben eine höhere Priorität und werden dadurch von den Langläufern nicht behindert. Der Verwaltungsaufwand recht grpß: bei edem Prozesswechsel wird die ganze Liste der bereiten Prozesse durchgesehen, damit die neuen Prioritäten bzw. Zeitscheiben vergeben werden können. Das hat zur Folge, dass für n Prozesse der Zeitbedarf des Prozesswechsels linear O(n) ist Vorteile: + Prozesse werden nicht ein für allemal kategorisiert, sondern je nach ihrem Verhalten beurteilt. + Größere Gerechtigkeit, da kein Verhungern von Prozessen.
- Mehrere Warteschlangen Häufig benutzes Verfahren Die Prozesse werden wie beim Priority Scheduling in verschiedene Klassen eingeteilt. Jede der Klassen hat dann eine eigene Warteschlange, für die jeweils ein eigener Scheduler zuständig ist (Multiple Ques). Eine mögliche Einteilung: 1. Die Klasse der Systemprozesse. Sie hat die höchste Priorität 1. Innerhalb der Klasse werden die Prozesse nach dem First Come Firs 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. "Gesamtscheduling": 1. Dialogprozesse können erst dann rechnend werden, wenn kein Prozess aus der Klasse der Systemprozesse mehr bereit ist. Und erst wenn weder System-, noch Dialogprozesse bereit sind, kann ein Hintergrundprozess den Prozessor erhalten. 2. Die Prozessorzeit wird auf die verschiedenen Klassen verteilt. Man kann 60% der Zeit für Systemprozesse, 30% für die Dialogprozesse und 10% für die Hintergrundprozesse reservieren. Die Scheduler der einzelnen Klassen können dann diese Zeit an "ihre" Prozesse vergeben. Wenn in einer Klasse keine rechenbereiten Prozesse mehr sind, wird die Zeit dieser Klasse natürlich den anderen Klassen hinzugeschlagen und verfällt nicht einfach. Es kann so sein, dass jeder Prozess einmal in eine Klasse eingeordnet wird und bleibt dann für immer in dieser Klasse. Man kann auch hier Feedback Strategien anwenden, um Prozesse auch zwischen den Klassen wechseln zu lassen. Mögliche Schedulingsstrategien, je nachdem: wieviele Klassen man definiert, nach welcher Strategie man die Klasse des nächsten Prozesses bestimmt, ob und wie Prozesse ihre Klasse ändern können, in welche Klasse neue Prozesse zuerst kommen. Vor- und Nachteile der Strategien: + Sehr gute Differenzierung zwischen Prozessen. + Aufgrund der vielen Parameter sehr vielseitig einstellbar. - Hoher Verwaltungsaufwand für das Scheduling - aufgrund der vielen Parameter ist es sehr schwierig, eine gute Einstellung zu finden.
- diskretionär im Ermessen liegend
- Leichtgewichtige PROZESSE Jeder Prozess - seinen eigenen Hauptspeicherbereich (Adressraum). Nur er hat Zugriff darauf. Adressraum = das Programm- und Datensegment, den Stack und weitere Ressoucen. Jeder Prozess - einziger Ausführungspfad (Befehlszähler und die Register). Konzept des Threads - mehrere Prozesse desselben Programmcodes zusammengelegt werden, sie verfügen über einen gemeinsamen Adressraum, aber über jeweils einen eigenen Ausführungspfad. Parallele Aktivitäten innerhalb eines Prozesses. Ein Prozess kann aus mehreren Threads bestehen. Ein Thread - sein eigener Registersatz Programmzähler Stackbereich Die Threads teilen sich das Programm- und Datensegment. Vorteile: Effiziente Kommunikation - über gemensame Datensegment (Informationsaustausch) Erreichbarkeit: bei Blockade wird nur ein Thread blockiert, die anderen Threads können weiterarbeiten. Teilen der gemeinsamen Ressourcen: Zugriff auf gemeinsame Datenspeicher, Prozessorressourcen. Mehr Effizienz: bei einem Wechsel der rechnenden Threads nur die Register ausgetauscht werden. Es ist günstiger neue Threads zu erzeugen. Zwei Hauptarten; Benutzer-Threads Kernel-Threads
- Advertisement
- Benutzer-Threads Einfachere Realisierung. Alle Thread-Informationen im Benutzeradressraum. Der Kern - keine Infos darüber. Für die Verwaltung - Prozesseigene privater Thread-Kontrollblock (analog zum Ptozesskontrollblock). Thread-Library-Funktionen für das Scheduling und das Erzeugen und Beenden von Threads, unabhängig vom Kern. Vorteile: Einfache Realisierung durch Bereitstellung einer Thread-Library auf Benutzerebene. Sie lässt sich leicht auf andere Betriebssysteme portieren. Das Erzeugen und Umschalten von zusammengehörigen Threads regelt der Prozess selbs. Erzeugung und Wechsel sind schneller, weil mit weniger Verwaltungsaufwand belastet, und flexibler, weil der Prozess seine eigene Zuteilungstrategie realisieren kann. Ein Prozess mit sehr vielen Benutzer-Threads wird das Gesamtsystem kaum stärker belasten als einer mit weniger. Nachteile: Zusammengehörige Ben.-Threads können auch in Multiprozessor-Rechnern insgesamt nur einen Prozessor belegen und daher nur nacheinander abgearbeitet werden. Ein Benutzer-Thread kann nicht von seinem eigenen Prozess zu einer Unterbrechung gezwungen werden -> nicht-präemptives System. Ein Prozess mit mehreren Threds wird weniger CPU-Zeit bekommen als er sinnvollerweise bekommen müsste.
- Kernel-Threads Der Kern verwaltet die Threads wie Prozesse. Es gibt eine Tabelle von Prozessen und Threads, die alle am Scheduling des Betriebssystem-Kerns teilnehmen. Diese Realisierung ist erheblich aufwändiger - viele Systemaufrufe müssen für Threads neue implementiert werden. Vorteile: Zusammengehörige Kernel-Threads können in Multiprozessor-Rechnern auf mehreren Prozessoren parallel ablaufen Ein blockerender Kernel-Thread eines Prozesses beeinflusst nicht die anderen Threads des Prozesses. Die Scheduling-Strategie des Betriebssystems wird mitbenutzt -> eine faire Behandlung aller Threads. Nachteile: Aufwändige Realisierung durch Neuimplementierung von Systemaufrufen Bei Erzeugung und Umschaltung von Kernel-Threads ist der Kern beteiligt und macht in etwa dasselbe wie bei normaler Prozesserzeugung bzw. normalem Prozesswechsel, daraus resultiert ein gewisser Verwaltungsaufwand. Ein Prozess sehr vielen Kernel-Threads hat starke Auswirkungen auf die Leistung des Gesamtsystems.
- Wie groß sollte das Quantum sein? Die Größe der Zeitscheibe ist ein sorgfältig zu wählender Parameter diese Strategie. Jeder Prozess dauert eine gewisse Zeit. Wählt man das Quantum q zu klein, z.B. nur so groß wie die Prozesswechselzeit, passiert folgendes: Ein Prozess rechnet q Zeiteinheiten und dann findet der Prozesswechsel statt, der wiederrum q Zeiteinheiten benötigt. Es sind 2q Zeiteinheiten vergangen, in denen der Prozessor aber nur q Zeiteinheiten für die Benutzerprozesse zur Verfügung stand. Die andere Hälfte der Zeit war der Prozessor mit der Verwaltungsarbeit des Betriebssystems (Prozessumschaltung) beschäftigt. Die Prozessorauslastung ist, was die eigentlich zu leistende Arbeit betrifft, zu gering. Wählt man das Quantum zu groß, ändert sich zwar das Verhältnis echter Arbeit zu Verwaltungsaufwand zugunsten der echten Arbeit, aber die Wartezeiten für die interaktiven Benutzer werden unzumutbar groß. Falls ein Prozess gerade am Ende der Warteschlange steht und alle Prozesse vorher das größere Quantum komplett ausnutzen, können schnell Wartezeiten im Bereich von mehreren Sekunden auftreten. Man muss also für das Quantum einen geeigneten (mittleren) Wert finden. Eine sinnvolle Größe für das Quantum ist ein Wert, der etwas größer als die für eine übliche Interaktion erforderliche Zeit ist, typischerweise im Millisekunden-Größenordnungen.
- Bei einem Einprozessorsystem läuft zu jedem Zeitpunkt genau ein Prozess. Warum laufen die Prozesse trotzdem scheinbar parallel? Bei heute üblichen Systemen schaltet das Betriebssystem den Prozessor vieleMale pro Sekunde zwischen verschiedenen Prozessen hin und her. Der Eindruck von Gleichzeitigkeit entsteht dadurch, dass der Scheduler in schnellem Wechsel jedem bereiten Prozess ein gewisses Quantum an Rechenzeit zukommen lässt. Die Umschaltung zwischen den Prozessen erfolgt so schnell, dass dieUnterbrechungen nicht spürbar werden.
- Welche Übergänge gibt es? · Erzeugt: wird ein neuer Prozess erzeugt wird, so tritt dieser neue Prozesskurz in den Zustand Erzeugt ein.o Damit das zugehörige Programm tatsächlich ausgeführt werdenkann, müssen dem Prozess einige Ressourcen zugeteilt werden.· Erzeugt – Bereit: Sind die Ressourcen festgelegt und bereitgestellt(logischen Speicherbereich) geht der Prozess in den Zustand Bereit über.· Bereit – Rechnend: Dem Prozess wurde vom Scheduler die CPUzugeweisen und der Dispatcher hat den Prozesswechsel durchgeführt.· Rechnend – Bereit:o Die Zeitscheibe für den Prozess ist abgelaufen und das BS entziehtdem Prozess die CPU (präemptiv).o Der Prozess gibt von sich aus die CPU ab (nicht-präemptiv).· Rechnend – Blockiert: Der Prozess wartet auf ein Ereignis einer Ein-/Ausgabeanforderung (Tastatureingabe, HDD-Zugriff)· Blockiert – Bereit: das Ein-/Ausgabeereigniss ist eingetreten· Rechenend – Beendet: der Prozess terminiert
- Was macht der Scheduler? Nach verschiedenen Auswahlstrategien, wird der nächste Prozess zur Ausführung.ausgewählt. Der Prozess wechselt dann vom Zustand bereit in den Zustandrechnend. Dem Scheduler wird auch der Prozesskontrollblock des Prozessesübergeben, welcher vom Zustand Rechnend in die Zustände Bereit oder Blockiertwechselt.
- Warum geht ein Prozess vom Zustand rechnend zum Zustand bereit? Wenn das Ereignis eintritt, auf das ein Prozess im Zustand blockiert wartet, ist inder Regel ein anderer Prozess im Zustand rechnend. Der bisher blockierte Prozesskann also den Prozessor nicht sofort erhalten (in den Zustand rechnend wechseln),da ein anderer Prozess den Prozessor hat. Der blockierte Prozess wechselt daherin den Zustand bereit und kann bei der nächsten Prozessorvergabe wieder mitberücksichtigt werden.
- Welche Scheduling-Strategien mit Vor- und Nachteilen sind geeignet für ein Batchbetrieb? Im Batchbetrieb wird normalerweise nicht nur ein einziges Programm ausgeführt,sondern mehrere, die z. B. schrittweise auf den vorherigen Ergebnissen aufbauen.Die Abfolge dieser Programme wird normalerweise durch eineKommandoprozedur beschrieben und diese sollen möglichst eine minimaleDurchlaufzeit haben. Daher bieten sich hier die FCFS Strategie an,
- 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 kurzeEin/Ausgaben haben, nicht lange auf die nächste Prozessorzuteilung wartenmüssen. Sie würden z.B. beim Round Robin ihr Quantum oftmals nichtvollstä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 istaußerdem, dass Prozesse nicht mehr verhungern können. Neue Prozesse erhaltenzunächst eine hohe Priorität und eine kleine Zeitscheibe. Hat der Prozess seinQuantum komplett genutzt, erhält er eine niedrigere Priorität, aber sein Quantumverdoppelt sich. So müssen sehr lang laufende Prozesse nicht ständig ihrenZustand wechseln. Stattdessen kommen sie seltener an den Prozessor und dürfenihn dafür dann etwas länger behalten. Kurz laufende Prozesse haben eine höherePriorität und werden dadurch von den Langläufern nicht behindert. · + Prozesse werden nicht ein für allemal kategorisiert· + Größere Gerechtigkeit, da kein Verhungern von Prozessen· – Höherer Verwaltungsaufwand
- Wie kann man diese Strategien so einstellen, dass sie interaktive Prozesse bevorzugen? Mit der Strategie „Multiple Queues“ werden Prozesse in verschiedene Klasseneingeteilt: Es existiert die Klasse der Systemprozesse, der Dialogprozesse und derHintergrundprozesse (batch jobs). Für jede Klasse ist ein eigener Schedulerzuständig mit einer angepassten Strategie. Nun kann das Gesamtscheduling soeingestellt werden, dass interaktive Prozesse bevorzugt werden.
- Beschreiben Sie die einzelnen Scheduling-Strategien mit Vor- und Nachteilen. · First Come First Serve (nicht-präemptiv)Die Prozesse werden in der Reihenfolge ihrer Ankunft im Systemabgearbeitet. Eigenschaften:o + Einfach zu implementiereno + geringer Verwaltungsaufwando + Fairnesso – nicht geeignet für Dialogsysteme · Shortest Job First (nicht-präemptiv)Hier wird immer dem Prozess mit der kürzesten Bedienzeit der Prozessorzugeordnet. Haben mehrere Prozesse dieselbe Bedienzeit, so kann man fürdiese Prozesse die First Come First Served Strategie anwenden.Eigenschaften:o + minimale Wartezeit für eine feste Menge von Prozesseno + keine Benachteiligung für kurz laufende Prozesseo + leicht zu implementiereno – schlechte Fairness (Langläufer warten ggf. ewig)o – CPU-Burst wird geschätzto – Verwaltungsaufwand ist O(log n) · Priority Scheduling (nicht-präemptiv)Die Prozesse werden in unterschiedlich wichtige Klassen einteilt. Zuerstbekommen die Prozesse der wichtigsten Klasse (Prozesse mit der größtenPriorität) den Prozessor zugeteilt, dann erst die der weniger wichtigenKlassen. Eigenschaften:o + Wichtige Aufgaben werden schnell erledigto – schlechte Fairness bei statischen Prioritäteno – Prioritätenfestlegung nicht ohne weiteres klar · Round Robin (präemptiv)Hierbei werden Prozesse wie bei First-Come-First-Served in einerWarteschlange verwaltet. Jeder Prozess darf den Prozessor jedoch nur füreine bestimmte Zeit behalten. Diese Zeit nennt man Zeitscheibe oderQuantum. Hat der rechnende Prozess nach dem Ablauf seiner Zeitscheibeden Prozessor noch nicht freigegeben, so wird er vom BS unterbrochenund kommt an das Ende der Warteschlange. Dort werden auch neueProzesse eingereiht. Eigenschaften:o + Fairness, jeder Prozess bekommt seinen Anteil am Prozessoro + Kurz laufende Prozesse werden nicht benachteiligto + Einfach zu implementiereno + Wenig Verwaltungsaufwando – Langlaufende Prozesse müssen bis zu ihrem Ende lange warten · Shortest Remaining Time First (präemptiv)Eine Abwandlung der Shortest-Job-First-Strategie. Die Idee ist, dass jedesmal, wenn ein neuer Prozess eintrifft, der rechnende Prozess angehaltenwird. Die noch verbleibende Bedienzeit dieses Prozesses wird zu seinerneuen Bedienzeit. Dann wird wieder unter allen bereiten Prozessenderjenige mit der kleinsten Bedienzeit ausgewählt. Eigenschaften:o + keine Benachteiligung für kurz laufende Prozesseo + leicht zu implementiereno – schlechte Fairness (Langläufer warten ggf. ewig)o – Verwaltungsaufwand ist O(log n) !· Priority Scheduling (präemptiv)Immer wenn ein neuer Prozess im System eintrifft, wird der rechnendeProzess unterbrochen, und danach erhält der Prozess mit der höchstenPriorität den Prozessor. Eigenschaften:o + Wichtige Aufgaben werden schnell erledigto – schlechte Fairness bei statischen Prioritäteno – Prioritätenfestlegung nicht ohne weiteres klar
- Welche theoretische Eigenschaft hat die SJF-Strategie? Die SJF hat die Eigenschaft, dass die durchschnittliche Wartezeit aller Prozesseminimal ist.
- Was ist der Nachteile von SJF? · Die Gefahr, dass Langläufer verhungern (starvation), wenn z.B. immerwieder neue Prozesse mit kürzerer Bedienzeit im System ankommen.· Der CPU-Burst beruht auf Schätzwerte
- Wie kann man CPU bursts abschätzen? Man geht davon aus, dass ein Prozess, der bisher immer nur kurze CPU burstshatte, auch in Zukunft mit großer Wahrscheinlichkeit nur kurze CPU bursts habenwird. Ein Prozess mit großen CPU bursts hat auch in Zukunft wahrscheinlichwieder große CPU bursts. Man benutzt die Formel auf Seite 59 im Kurstext.
- 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 dieBedienzeit eines Prozesses ist, desto höher ist seine Priorität. Bei FCFS erhaltendie Prozesse, die zuerst ankommen eine hohe Priorität, die späteren eineentsprechend niedrigere.
- Wie wird die Zeitscheibe festgelegt, wenn man die FCFS-Strategie als Round Robin betrachtet? Jeder Prozess hat die Größe der Zeitscheibe unendlich.
- Wie soll man die Länge einer Zeitscheibe wählen? Die optimale Zeitscheibe kann man nicht finden. Zur Festlegung derangemessenen Zeitscheibe benötigt man die Informationen über das Verhalten derProzesse. Das Betriebssystem kann das Verhalten eines einzelnen Prozessesmessen und die Zeitscheibe dynamisch anpassen.
- Was ist der Unterschied von Thread zu einem Prozess? Ein Prozess kann mehrere Threads besitzen, alle Threads benutzen denProgrammcode und das Datensegment des Prozesses gemeinsam. Jeder Threadhat seinen eigenen Stack, Registerinhalte und natürlich seinen eigenenProgrammzähler. Also ist der Wechsel von Threads schneller, da nur Stack,Registerinhalte, Programmzähler getausch werden müssen. Bei der User-Level-Threads kennt das Betriebssystem diese Threads nicht, es kennt nur den Prozessder Threads. · Konzept vom Prozess lautet: ein Prozess hat einen Adresseraum und einenAusführungspfad, der durch Befehlszähler beschrieben wird.· Konzept von Threads: erlaubt einen gleichen Adressraum, aber mehrereAusführungspfade
- Was haben die Threads eines Prozesses gemeinsam? Die verschiedenen Threads eines Prozesses teilen sich Programm- undDatensegment.
- Welche Vorteile haben Threads? Insbesondere können die Threads mittels des gemeinsamen Datensegementsdurch das Hinterlassen der Nachrichten gut kommunizieren. · Effiziente Kommunikationo Threads können direkt miteinander kommunizieren, indem sie dasgemeinsamen Datensegment für den Informationsaustauschverwenden. · Erreichbarkeit:o Wenn ein Prozess für eine bestimmte Aktion z. B. eine Anfragenach einer Ressource blockiert würde, so muss nur ein Threadblockiert werden, während die anderen Threads weiterarbeitenkönnen. · Teilen der gemeinsamen Ressourcen:o Es ist möglich, dass verschiedene Threads auf die gleichenRessourcen, z. B. Datenspeicher, Prozessressourcen zugreifen. · Mehr Effizienz:o Threads haben gegenüber herkömmlichen Prozessen den Vorteil,dass sie effizienter arbeiten können, weil bei einem Wechsel derrechnenden Threads nur die Register ausgetauscht werden. Auchim Vergleich zum Erzeugen von weiteren echten Prozessen ist esgünstiger, neue Threads zu kreieren.
- Advertisement
- Was ist der Unterschied zwischen Kernel-Threads und Benutzeer-Threads? Bei Benutzer-Threads hat der Kern keinerlei Kenntnis davon, ob ein Prozessmehrere Threads verwendet oder nicht. Um seine Threads zu verwalten, brauchtjeder Prozess seinen eigenen, privaten Thread-Kontrollblock, analog zum PCB. Erbehandelt das Scheduling seiner Threads selbst. Ein Nachteil von Benutzer-Threads ist, dass der ganze Prozess blockiert, wenn ein Benutzer-Threadblockiert. Bei Kernel-Threads verwaltet der Kern die Threads ähnlich, wie erschon Prozesse verwaltet. Es gibt eine Tabelle von Prozessen und Threads, diealle am Scheduling des BS-Kerns teilnehmen. Diese Realisierung ist aufwändiger,zusammengehörige Kernel-Threads können in Multiprozessor-Systemen jedochauf mehreren Prozessoren parallel ablaufen.
- Welche Threads können in Multiprozessor-Rechner auf mehreren Prozessoren parallel einsetzt werden und warum? Nur die Kernel-Level Threads können auch verschiedene Prozessoren verteiltwerden, da hier das Betriebssystem Kenntnis über die Threads hat und diese achverwaltet. Aufgrund dieser Kenntnis ist es möglich die einzelnen Threadseinzelnen Prozessoren zuzuweisen. Bei Benutzer-Threads ist diese nicht möglich,da hier das Betriebssystem nur den einen Prozess sieht. Diese Threads werdenvom Prozess selber verwaltet.
- Welche Scheduling-Strategien kann man bei Benutzer-Threads verwenden und warum? Zum Scheduling von Benutzer-Threads kommen nur die nicht-präemptivenScheduling-Strategien in Frage. Der Prozess verwaltet die Thread selber und hat keine Mittel dem Thread den Prozessor zu entziehen. Ein zusätzliches Problem ist, dass der ganze Prozess blockiert wird, wenn beimpräemptiven Scheduling das Signal ankommt, dass die Zeit für einen Threadabgelaufen ist. Nun gibt es bei jedem Threadwechsel auch einen Prozesswechsel.Das ist nicht unbedingt erwünscht.
- Warum geht ein Prozess vom Zustand rechnend zum Zustand bereit? - Die Zeitscheibe für den Prozess ist abgelaufen und das BS entzieht dem Prozess die CPU (präemptiv). - Der Prozess gibt von sich aus die CPU ab (nicht-präemptiv) - Der Prozess ist fertig mit Abarbeitung
- Welche Scheduling-Strategien mit Vor- und Nachteilen sind geeignet für ein Batchbetrieb? Im Batchbetrieb wird normalerweise nicht nur ein einziges Programm ausgeführt,sondern mehrere, die z. B. schrittweise auf den vorherigen Ergebnissen aufbauen.Die Abfolge dieser Programme wird normalerweise durch eineKommandoprozedur beschrieben und diese sollen möglichst eine minimaleDurchlaufzeit haben. Daher bieten sich hier die FCFS Strategie an,
- 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 kurzeEin/Ausgaben haben, nicht lange auf die nächste Prozessorzuteilung wartenmüssen. Sie würden z.B. beim Round Robin ihr Quantum oftmals nichtvollständig ausnutzen und stattdessen wegen E/A blockieren. Mit der Strategie„Feedback Scheduling“ wird die Vergangenheit eines Prozesses bei der Auswahldes 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 istaußerdem, dass Prozesse nicht mehr verhungern können. Neue Prozesse erhaltenzunächst eine hohe Priorität und eine kleine Zeitscheibe. Hat der Prozess seinQuantum komplett genutzt, erhält er eine niedrigere Priorität, aber sein Quantumverdoppelt sich. So müssen sehr lang laufende Prozesse nicht ständig ihrenZustand wechseln. Stattdessen kommen sie seltener an den Prozessor und dürfenihn dafür dann etwas länger behalten. Kurz laufende Prozesse haben eine höherePriorität und werden dadurch von den Langläufern nicht behindert.· + Prozesse werden nicht ein für allemal kategorisiert· + Größere Gerechtigkeit, da kein Verhungern von Prozessen· – Höherer Verwaltungsaufwand
- Wie kann man diese Strategien so einstellen, dass sie interaktive Prozesse bevorzugen? Mit der Strategie „Multiple Queues“ werden Prozesse in verschiedene Klasseneingeteilt: Es existiert die Klasse der Systemprozesse, der Dialogprozesse und derHintergrundprozesse (batch jobs). Für jede Klasse ist ein eigener Schedulerzuständig mit einer angepassten Strategie. Nun kann das Gesamtscheduling soeingestellt werden, dass interaktive Prozesse bevorzugt werden.