Lernzettel Betriebssysteme PDF

Title Lernzettel Betriebssysteme
Course Betriebssysteme
Institution Hochschule Hannover
Pages 54
File Size 5.6 MB
File Type PDF
Total Downloads 29
Total Views 135

Summary

Zusammenfassung aus dem Bereich Aufbau Betriebssysteme...


Description

Warum waren zu Anfang der EDV keine Betriebssysteme notwendig? Es wurde damals systemnah programmiert (sehr hardwarenahe Maschinensprache) Programme lagen als Lochkarten vor Wozu ist ein Betriebssystem überhaupt notwendig? Verwaltung sämtlicher Betriebsmittel (Hardware und Software-Ressourcen) [Prozessor, Speicher, Dateien und Geräte] Hardware soll benutzerfreundlich [Nutzer soll von komplexen Einzelheiten abgeschirmt werden] effizient [Minimierung des Betriebsmittelverbrauchs Lauf- u. Antwortzeiten, Speicherbedarf] und sicher [Schutz vor Störungen / Vermeidung von Störungen, Was passiert beim Fehler] zu steuern und zu kontrollieren.

Mikroprogrammbefehle Testbefehle, Sprungbefehle (BRANCH), (Add) und logische Befehle (CMP, SHIFT)

Transportbefehle (MOV),

arithmeitische

Welche zwei Sichtweisen gibt Prof. Tanenbaum bei der Betrachtung der Funktion eines BS? Top Down: Eine erweiterte Maschine (Extended machine) Versteckt die technischen Details vor dem Nutzer Einfache Sicht, Rechner als virtuelle Maschine Bottom Up: Betriebsmittelverwalter (Ressource Manager) Jeder Prozess/ Programm bekommt Nutzungszeit für eine Ressource zugewiesen Und er bekommt Arbeitsplatz innerhalb der Ressource. Von Neumann-Architektur Struktur des Rechners ist unabhängig vom bearbeiteten Problem Programme und Daten stehen im selben Speicher Arbeitsweise

Programm als Folge von Befehlen (Instruktionen) nacheinander (sequentielle Abfolge) Æ Durch bedingte / unbedingte Sprungbefehle können Programmfortsetzungen aus späteren Zellen bewirkt werden Nutzung des Binärcodes (Dualzahlen) Alles muss geeignet kodiert werden Bitfolgen sind nicht selbstidentifizierend Æ Rechner entscheidet nach dem zeitlichen Kontext ob Bitfolge ein Befehl, eine Adresse ein Datum ist Befehlsausführung

CPU

Interner Speicher

Ein- und Ausgabewerk

System Bus

Cache Erweiterung für Rechnerarchitekturen Schneller Pufferspeicher / Zwischenspeicher für oft benötigte Daten Speicherung von Daten oder Codeteile zur Zugriffsoptimierung L1-Cache (in der CPU~16-64 kByte) häufig benötigte Befehle und Daten L2-Cache ( Speicherverdichtung / Kompaktifizierung

Fragmentierung

Virtual Memory Sofern Programm größer als Hauptspeicher dann lade nur notwendige Teile davon, die anderen nach Bedarf Jedoch die Frage (Welcher Teil ist notwendig und muss im Speicher sein, Was kann ausgelagert werden)

Paging: Beispiel

MMU Memory Management UNI MMU = Teil der CPU Jede durch einen Prozess angeforderte virtuelle Adresse wird zuerst durch MMU in physikalische Adresse umgesetzt, bevor auf Adressbus geschrieben wird Page Table (Innenleben der MMU) Index gibt die Nummer der virtuellen Seite an Seiteneintrag gibt physikalische Seite an z.B. 16 mögliche virtuelle Seiten werden auf 8 vorhandene physikalische Kacheln abgebildet Present / Absent Bit zeigt an ob die virtuelle Seite vorhanden ist

12 Virtuelle Adresse 8196 Binär 0010000000000100

13 Seitentabelleneintrag (Page Tables (in der MMU)

14 Virtual Memory Größe des Arbeitsspeichers

Eigenschaften vom Paging Keine externe Fragmentierung (letzte Seite eines logischen Adressraums wird nicht genutzt) Æ Intern Fragmentierung Lineare Speicheradressierung (keine Fragmentierung aus Pogrammiersicht) Speicherschutz durch Schutzbits (Zusatz Bits zeigen ob Kachel gültig oder modifiziert ist) Adressraum eines Prozesses muss nicht vollständig im Speicher sein zur Ausführung Zugriffe auf nicht geladene Seiten Æ Seit enfehler (Pagefault) Æ BS behebt Seitenfeher in dem Seite in freie Kachel geladen wird und Befehl erneut ausgeführt wird (Neustart Zeitverlust)

anschließend

15 a 32 Bit-Adresse mit zwei 10 Bit Feldern für Seitennummern b Zweistufige Seitentabellen Seitentabellen werden ausgelagert in andere Tabellen Î Nicht mehr alle müssen im RAM sein

Tabellen

Zweistufige Seitentabellen (statt einer einstufigen Tabelle in der ein 20 Bit Feld über 1 Mio Einträge aufweist) AMD Opteron (64 Bit) hat z.B. 4 stufige Tabellen

16 Translation Lookaside Buffers = Assoziativspeicher (HW, Teil der MMU)

In der MMU spezieller Cache der die letzten Adressübersetzungen als Tabelle abspeichert Æ Beschleunigung des Paging Direkte Abbildung der virtuellen auf Physische Adressen (Ohne Seitentabellen) MMU hat spezielle schneller Register für Basisadressen und Offset ÆUm Adressberechnung so effizient wie möglich zu machen Lokalitätsprinzip Zeitlich: Daten / Code der gerade benutzt wird, wird mit hoher Wahrscheinlichkeit gleich wieder benötigt Örtlich: Nächster Daten / Code-Zugriff ist mit hoher WS in der Nähe der vorherigen Zugriffe

Faustregel: Ein Programm verbringt 90 % seiner Abarbeitungszeit in 10 % des gesamten Codes. Die Befehle ändern sich oft nicht, nur die Adressen der jeweils benötigten Daten (Operanden)

Inverted Page Tables

Abbildung von virtueller Seite auf physische viel aufwendiger: gesamte Seitentabelle muss nach Eintrag durchsucht werden, nicht nur bei Seitenfehlern Æ Nur sinnvoll mit Translation Lookaside Buffers TLB

17 Behandlung von Seitenfehlern

Speicherverwaltung (Memory Management) Teil des Betriebssystems, der für die Verwaltung des Speichers zuständig ist Speicherzuteilung für Prozesse Anschließende Freigabe des Speichers Platzierungsstrategien First Fit

Einfachstes Verfahren / nicht ineffizient Plat zierung in das erste hinreichend große Loch Ziel: Speicherlöcher gleichmäßig im Speicher verteilen

Best Fit

Langsam Gesamter Speicher wird durchsucht nach kleinstem Loch Æ Langsam Große Löcher bleiben lange bestehen Æ starke Fragmentierung

Worst Fit

Schlechte Idee Auswahl des größten verfügbaren Lochs Das einzelne Loch kann zu klein sein zu Aufnahme eines neuen Segments

Quick Fit

Schlechte Idee (Schnell sehr aufwendig) Erstellung einer Liste der Größen der Löcher (4KB, 8KB, 12KB, 20KB…)

Rotating First Fit / Next Fit

hohe Geschwindigkeit / einfache Implementierung

Einführung eines zusätzlichen Zeigers der auf den zuletzt verkleinerten Frei-Bereich oder auf den Nachfolger eines aufgelösten Frei-Bereich Funktionsweise wie First-Fit ab der Zeigerposition 18 Grafische Übersicht der Platzierungsstrategien

Ersetzungsstrategien Seitenfehler entstehen, wenn Seite entfernt werden muss oder Platz geschaffen werden muss für neue Seiten Veränderte Daten müssen zunächst gespeichert werden / Unveränderte Seiten können überschrieben werden Für Seitenauslagerung sinnvoll die selten genutzten Seiten zu nutzen / häufig genutzte müssen bald wieder eingelagert werden Optimaler Algorithmus

Theoretisches Modell nach Belady

Ersetze Seite wird nach unendlicher Zeit erst wieder benötigt Æ Nur die „richtigen Seiten“ werden ausgelagert (kann vom BS nicht vorhergesehen / gesteuert werden) Not-Recently-Used NRU

First in First out FiFo Jede Seite erhält beim Laden in Hauptspeicher einen Zeitstempel Neue Seiten an den Anfang / Älteste Seiten werden am Ende gelöscht + Geringer Aufwand und leicht zu implementieren / - Die Seite, die am längsten im Speicher ist, wird of am meisten genutzt

Second Chance

Abwandlung von FiFo

Überprüfung des Reference Bit der ältesten Seite Wenn das Bit alt ist (FiFo) und unbenutzt ist (Reference-Bit / R-Bit = 0), dann Seite ersetzen Sucht möglichst alte Seiten die im letzten Timerintervall nicht zugegriffen wurde Clock-Algorithmus Ringförmige Liste der Seiten Wenn Seitenfehler auftritt, wird auf die Seite referenziert, auf die der Pfeil zeigt (Abhängig vom R-Bit) R = 0 Seite auslagern R = 1 Lösche R und gehe eine Position weiter

Least-Recently-Used LRU

sehr aufwendig recht selten mit Spezialhardware

Seite die von den letzten Befehlen häufig genutzt wurde wird auch in den nächsten Befehlen genutzt Æ Ausgelagerte Seiten bleiben lange unbenutzt. Seiten die am längsten nicht mehr genutzt wurde, wird ausgelagert Vorhaltung einer verketteten Liste aller Seiten im Hauptspeicher. Zuletzt genutzte Seite am Anfang am wenigsten Genutzte am Ende Æ Aktualisierung bei jedem Speicherzugriff LRU verlangt, dass jede Seite Zeitangabe hat

19 LRU durch Hardware realisieren

Working Set Arbeitsbereich nach Denning (bei hoher Lokalität wirkungsvoll) Menge von Seiten, die von einem Prozess zu einem bestimmten Zeitpunkt benutzt wird Wenn ein zusammenhängender Arbeitsbereich im Speicher ist ÆVerarbeitung fast keine Fehler Vorausschauendes Paging (Arbeitsvorgang eines Prozesses wird vom BS bei Auslagerung registriert und bei erneutem Aufruf schon im Vorhinein geladen) Die Letzten d Referenzen werden betrachtet um daraus sinnvolles Working-Set zu bestimmen Beispiel Distanzkette d = 10

Å

Anordnung

der

Seiten

Referenzhäufigkeit Referenzhäufigkeit pi der Seite i

nach

20 Working Set Algorithmus 21 Working Set Clock Verbesserung des WS-Algorithmus

Gute Leistung einfach zu implementieren Æ A und b zeigen was bei R = 1 passiert C und D geben ein Beispiel für R = 0

Sperrung von Seiten im Speicher Virtueller Speicher und E/A interagieren Prozess startet Systemaufruf um Daten in Puffer seines Adressraumes einzulesen Wenn Prozess auf E/A wartet wird er suspendiert anderer Prozess bekommt CPU-Zeit ÆSeitenfehler werden erzeugt Seite die den Puffer enthält wird ev. Zur Auslagerung gewählt LösungÆ Sperrung der Seiten die mit E/A Zugriffen zu tun haben (pinning) Æ Seiten werden nicht mehr ausgelagert Ladestrategien fetch strategies wann wollen neue Daten in Hauptspeicher geladen werden Demand Paging Seiten nur auf Verlangen laden Pro:

Keine überflüssigen Seiten werden geladen

Con:

Prozess muss warten bis notwendige Seite geladen

Prepaging

Anticipatory Paging

Seiten vorausschauend laden Mehr Hauptspeicher notwendig, dann werden Auswirkungen von falschen Entscheidungen kleiner Pro:

Verringerung der Ausführungszeit bei richtigen Entscheidungen

Con:

Falsche Entscheidungen erhöhen Ausführungszeit

Freigabe Strategien Paging Daemon (Hintergrundprozess) Überprüft regelmäßig Zustand des Speichers und hält Mindestanzahl von Kacheln frei Aus dem Vorrat werden Seitenfehler schnell bedient und neue Adressräume angelegt Wenn nicht genügende Seitenrahmen frei werden mittels Seitenersetzungsalgorithmus Seiten ausgewählt die ausgelagert werden

24 Beladys Anomalie

Modellierung von Ersetzungsstrategien

23 Paging in Linux Buddy Algorithmus

Halbierung des Speichers bis ausreichende Größe erreicht Dynamische Zusammenfassung leerer Bereiche 25 Clock Algorithmus mit 2 Zeiger

22 Design Kriterien für Paging

Lokale vs. Globale Seitenersetzung Anzahl der Seitenrahmen eines Prozesses ist veränderlich Æ globale Strategie flexibler Einige Algorithmen können mit Globalen und Lokalen Paging Strategien arbeiten FIFO: älteste Seite aus dem Speicher (global) auslagern und durch älteste Seite des aktuellen Prozesses (lokal) ersetzen. LRU auch Nur lokale Strategie sinnvoll bei Working Set / WS Clock 26 Lokale vs Globale Seitenersetzung

Seitenfehlerrate (Page Fault Frequency PFF) in Abhängigkeit von Anzahl der zugewiesenen Seitenrahmen

Thrashing Problem Laststeuerung Trotz gutem Design, kann System zu viele Seitenfehler erzeugen, wenn PFF zeigt, dass mehrere Prozesse zu wenig Speicher haben aber keiner zu viel Lösung: Einige Prozesse zeitweise komplett aus Speicher entfernen Auslagerung auf Festplatte und Seiten freigeben (Swapping, wenn beim Paging Gefahr des Trashing besteht) oder Anzahl der laufenden Programme begrenzen

Optimale Seitengröße es gibt kein Optimum bei kleiner Seitengröße Pro:

geringe

interne

Fragmentierung,

bessere Anpassung an verschiedene Daten-Strukturen Weniger ungenutzte Daten im Speicher Con:

Programme belegen viele Seiten und benötigen große Seitentabellen Æ Langsamer werden muss

weil

mehr

durchsucht

Dynamische Speicherzuteilung Segmentierung (Speicherzuteilungsstrategien notwendig) Segmente sind zusammenhängende Speicherbereiche die aufeinanderfolgende Adressen haben Sind deutlich größer als Pages Es werden Segmente allokiert (angefordert) und freigegeben Anwendungsprogramme werden beispielsweise in Codesegment, Datensegment und Stacksegment (für Verwaltungsinformationen) eingeteilt 27 Eindimensionaler Adressraum

28 Vergleich Paging und Segmentierung

29 Umsetzung Logische in physikalische Adresse

Bei Segmentierung wird die Memory Management Unit MMU benötigt Prozessumschaltung

durch

Austausch

der

Segmentbasis

Æ

jeder

Prozess

hat

eigene

Übersetzungstabelle Ein- und Auslagerung wird vereinfacht Æ nach Einlagerung muss nur Übersetzungstabelle angepasst werden

Unterbrechung zeigt Speicherplatzverletzung an >

30 Schutz vor Segmentübertretung

Programme und BS voreinander geschützt > Zugriffsschutz einfach zu integrieren Rechte für Lesen/Schreiben/Ausführen werden von MMU geprüft Speicher

wird

bei

häufigem

Ein-Auslagern

fragmentiert (kleine nicht nutzbare Lücken) Segmente werden verschoben um Lücken zu schließen Æ Kompaktifizierung Lange E/A Zeiten für die Ein- und Auslagerung da nicht alle Teiles eines Segments gleich häufig genutzt werden 31 externe Fragmentierung

Vorteile der Segmentierung Gemeinsame

Segmente

möglich

(global) Befehlssegmente, Datensegmente (Shared Memory), Umfangreiche Gafikbibliotheken Gemeinsam benutzte Adressbereiche (global) Windows: DLL dynamik link library UNIX: Shared library Belegt nur eine Ressource Variable Größe der Segmente Auch in Kombination mit Paging nutzbar

32 Zusammenfassung Logische virtuelle Adressen

Garbage

Collection

Æ

automatische

Speicherverwaltung

die

den

Speicherbedarf

eines

Computerprogramms minimiert. Zur Laufzeit werden nicht länger benötigte Speicherbereiche automatisch identifiziert und dann freigegeben. Manchmal werden diese Bereiche zusammengefasst (Defragmentierung) Æ Ziel:

Vermeidung von Speicherproblemen

Kernel Panic: BS befindet sich in einem undefinierten Zustand (keine Möglichkeit das System kontrolliert weiter zu betreiben (Fataler Fehler Systemabsturz)

Ein Computer soll für einen Mehrprogrammbetrieb ausgelegt sein. Wovon hängt die maximale Größe der quasi gleichzeitig ablaufenden Programme ab?

Æ Die Größe vom Hauptspeicher

Wozu braucht man Speicherverwaltung? Was leistet sie?

Æ

Effiziente

Verwaltung

des

Hauptspeichers (flüchtiger Speicher RAM) Aufbereitung des Prozessscheduler Ein System hat maximal 4 Programme im Hauptspeicher. Diese Programme haben eine E/A-Wartezeit von 50%. Welcher Anteil der Prozessorzeit wird verschwendet? Um welchen Wert verbessert sich hier die Auslastung zum Monoprogramming? Æ 1 – 0,5^4 = 93,75% ausgenutzt ÆMonoprogramming 4 * 50%

In einem Swapping System sind folgende Löcher im Speicher, nach aufsteigenden Adressen geordnet: 10 KB, 4 KB, 20 KB, 18 KB, 7 KB, 9 KB, 12 KB und 15 KB. Welche Löcher wählten die bekannten vier Platzierungs- Modelle / Algorithmen, wenn nacheinander Segmente von 12 KB, 10 KB und 9 KB angefordert würden? (kurze Erklärung!)

Wodurch wird die virtuelle Adresse in eine physische (Speicher-) Adresse umgerechnet? Î Durch die Memory Management Unit und der Page Table Nennen Sie verschiedene Ansätze / Techniken, wie der Hauptspeicher verwaltet werden kann und beschreiben Sie diese. Î Fest, Dynamisch, Swapping, Paging, Segmentierung Woran erkennt das Betriebssystem, ob sich eine Speicherseite eines Prozesses im Hauptspeicher befindet oder nicht? Î An dem Present / Absent Bit Ein Prozessor besitzt virtuelle Adressen mit 32 Bits, physisch mit 28 Bits und Seiten mit 2 Kb. Wie viele Bits werden für die virtuelle und physische Seitennummern benötigt? Æ 17 Bit ? 2kb = 2048 B = 2^11

28 Bit- 11 = 17 Bit

Wie funktioniert Speicherverwaltung in eingebetteten Systemen? Æ Warum ist der Least-Recently-Used-Algorithmus für die Seitenverdrängung nicht praktikabel? Æ zu viele Verwaltungsinformationen, weil alles perfekt passen soll Was macht ein Page Daemon Æ automatischer Hintergrundprozess der Dienste vom System anstößt Ein Rechner hat einen 32-bit Adressraum und eine Seitengröße von 8 KB. Wieviele Einträge hat die Seitentabelle der MMU? 32 Bit -8192 (2^13) = 19 Bit 2^19 = 524.288 Einträge Was versteht man unter einem „Working Set“ eines Programms? Welche Informationen werden benötigt? Rechtfertigt der zusätzliche Aufwand das Ergebnis? Æ Menge von Seiten (Vorausschauendes Paging)

Was ist die Ursache von Thrashing? Wie kann das BS darauf reagieren? Wie kann dieser Zustand verhindert werden?

Æ Thrashing sucht nach freiem Speicher ist aber alles voll

Ein virtueller Adressraum wird mit 32 Bit langen virtuellen Adressen adressiert. Eine virtuelle Adresse enthält jeweils 10 Bit für den Index in der Top-Level- Seitentabelle und 10 Bit für den Index in der Second-Level-Seitentabelle. • Wieviele Second-Level-Seitentabelle gibt es pro Prozess? • Wie groß sind

die

Seitenrahmen

im

Hauptspeicher? Wie

groß

gesamte Adressraum



ist

der

virtuelle eines

Prozesses? Schildern Sie die Vor- und Nachteile von größeren bzw. kleineren Seiten. Con Klein:

große Paging Tabellen viele Einträge viel Verwaltungsaufwand

Pro Klein:

geringe Fragmentierung

Pro Groß:

Einfachere Auslagerung von Seitenrahmen

Con Groß:

Anzahl an Adressen werden weniger

Dateiverwaltung Teil des BS das sich mit der physischen und logischen Aufteilung & Strukturierung der Datenträger beschäftigt Unterschiedliche oft properitäre Dateisysteme (APFS NTFS…) Dateisystem = Sammlung von Daten auf einem Permanentspeicher (HDD, SSD) Im DS wird definiert, wie Dateien abgelegt werden (Blockgröße, zusammenhängend / fragmentiert) DS definiert Listen, welche Speicherpositionen der Dateien enthält

Essentielle Anforderungen an langfristige Datenhaltung -Möglichkeit, große Mengen von Informationen zu speichern -Informationen

muss

eine gewisse Dauer überleben

(Datenpersistenz) -Mehrere Prozesse müssen gleichzeitig auf die Information zugreifen können Namensgebung ist abhängig vom DS Länge, Dateierweiterung, gültige Zeichen, Case Sensitive

Dateityp Reguläre

Dateien

enthalten

Benutzerinformationen,

ASCII

oder

Binärdaten Verzeichnisse sind Systemdateien zur Strukturierung des Dateisystems Spezielle Dateitypen (UNIX) sind z.B. Zeichendateien die E/A Geräte modellieren (Drucker) oder auch spezielle Blockdateien die gesamte Datenträger abbilden (Diskette, USB-Stick) Dateistruktur

Byte-Sequence Record-Sequence (Lochkarte) Baum

(jeder

Record

mit

einem

Schlüssel)

B-Bäume Dateistruktur als Datenbank

schneller Dateizugriff

kurze

Wiederherstellungszeiten Performance Gewinn werden durch komplexere...


Similar Free PDFs