Betriebssysteme Flashcards
In welchen Zuständen kann sich ein Prozess befinden?
Bereit:
Aktiv:
Blockiert:
Welche Probleme kann es geben, wenn ein Betriebssystem nur Prozesse aber keine Threads hat
Was ist ein Prozess?
Was ist ein Threads?
Was is nicht-prämpatives Scheduling?
Wie funktioniert shortest job first? (Scheduling)
Was ist Präemptives scheduling?
Präemptives Scheduling:
Was ist Round Robin?
Unterschied klassische vs. Echtzeitsysteme
3 Anforderungen an ein echtzeitsystem:
- Rechtzeitigkeit
- Gleichzeitigkeit
- Verfügbarkeit
Zweiprozessorsystem? (Multiprozessorsysteme)
Es gibt zwei gleich lange beste Pfade.
List Scheduling? (Multiprozessorsysteme)
Lastverteilung: Sequenzieller vs. parallelisierbarer Code
parallelisierbar = besser, da schneller
Was sind Raceconditions?
Speicherorganisation: Welche Belegungsstrategien gibt es?(3)
FirstFit
- Nimm das erste, ausreichend große Stück.
- Aber: Reststücke
NextFit
- Wie FirstFit, aber führe Speicherindex mit (bei nächster Anforderung da weitermachen, wo beim letzten Mal aufgehört wurde)
BestFit
- Nimm das kleinste freie Stück, das passt
- Aber: winzige, unbrauchbare Reststücke
WorstFit
- Größtes freies Stück, um große Reststücke zu erhalten
QuickFit
- Eine Liste pro Anforderungsgröße (also pro Datentyp)
Buddy-System
- Listen von Speicherstücken der Größe 2^n: 256 Byte, 512 , 1024
- Bei Anforderung von 𝑥 Byte: Suche in Liste der kleinstmöglichen passenden Zweierpotenz
- Wenn kein passendes Stück vorhanden ist: Zerteilen eines Stücks der nächstgrößeren Zweierpotenz
- Bei Rückgabe: Schnelles Verschmelzen mit dem Partnerstück
Speicherorganisation: Was ist interner Verschnitt?(3)
=> Speicher, der innerhalb einer Speicherzelle freibleibt
- Interne Zersplitterung (innerhalb des Adressraums eines Prozesses) durch Heap-Belegung
- Abhilfe: garbage collector des Programmiersystems
Speicherorganisation: Was ist externer Verschnitt?(3)
=> Freier Platz zwischen den Programmen im Hauptspeicher
Abhilfen:
● Zuerst Einlagern großer Prozesse, dann Auffüllen mit kleinen
Swapping kleiner Programme (widerspricht der Shortest-Job-First-Strategie?)
● Speicheraufteilung in verschieden große Bereiche, jeder mit eigener Warteschlange (IBM OS/MFT): ineffizient!
● Zusammenschieben des Speichers: Zeitaufwändig!
Was ist virtueller Speicher?(3)
Virtueller Speicher ist ein Speichermanagementsystem, das es einem Computer ermöglicht, mehr Speicher zu nutzen, als physisch vorhanden ist, indem es Daten zwischen dem RAM und einem Festplattenspeicher (Paging-Datei) hin- und herbewegt. Dies ermöglicht es Programmen, größer zu sein als der verfügbare physische Arbeitsspeicher, indem sie Speicheradressen auf logische Weise verwalten.
Virtueller Speicher: Welche Probleme und Lösungen gibt es?(3)
Speicherzusatzbelegung von Programmen
=>Unix: Prozess auslagern, neuen Speicher reservieren, neu einlagern
=> Externen Verschnitt zum Prozess dazuschlagen (Stack & Heap)
Relozierung von Programmcode
=> Relative Adressen bei Sprungbefehlen nutzen?
=> Bei Einlagerung oder zur Laufzeit absolute Adresse errechnen?
Speicherschutz von Programmen
=> Betriebssystemkern darf nicht korrumpiert werden (fences, limits), spezielle Hardwareeinheit überwacht die Einhaltung
=> Ebenso: Prozesse dürfen sich nicht gegenseitig den Speicher überschreiben
Programmiermodell soll klar, einfach und uniform sein (Fehlervermeidung)
Virtueller Speicher: Was ist Paging?(3)
Paging ist eine Speicherverwaltungsstrategie, bei der der virtuelle Speicher in gleich große Blöcke, sogenannte Seiten, und der physische Speicher in gleich große Blöcke, sogenannte Seitenrahmen, unterteilt wird. Bei Bedarf werden diese Seiten zwischen dem physischen Speicher und einem sekundären Speicher (z.B. Festplatte) verschoben, um sicherzustellen, dass Programme mehr Speicher nutzen können, als physisch vorhanden ist.
Paging(3): Was sind …
Seiten / pages?
Seitenrahmen / frames?
Seitentabelle / page table?
- Seiten / pages: Gleich große Blöcke des virtuellen Speichers.
- Seitenrahmen / frames: Gleich große Blöcke des physischen Speichers.
- Seitentabelle / page table: Datenstruktur, die die Zuordnung von virtuellen Seiten zu physischen Seitenrahmen verwaltet.
! Jede virtuelle Adresse muss in physikalische Adresse umgesetzt werden!
Was ist virtuelle Adresskonversion?(3)
Virtuelle Adresskonversion ist der Prozess, bei dem eine virtuelle Speicheradresse mithilfe einer Seitentabelle in eine physische Speicheradresse übersetzt wird. Dabei wird der Seitenindex verwendet, um den entsprechenden Seitenrahmen zu finden, und der Offset (Der Offset ist der Teil einer Speicheradresse, der die genaue Position innerhalb einer Seite angibt.), um die genaue physische Adresse zu bestimmen.
Adresskonversion:
Was ist das Problem und wie ist die Lösung dazu? (3)
Problem: virtueller Adressraum ≫ physikalischer Adressraum: Riesige Seitentabellen!
Lösung: Adressbegrenzung
● Vorteil: kleinere Tabellen
● Z.B. 30 Bit (1 GiB) à 18 Bit 2= 262.144 Tabelleneinträge
● Nachteil: Vergeudung von Platz, da meist nicht benötigt!
● Warum so viele Tabelleneinträge auch für z.B. 40-KiB-Prozess, der insgesamt nur 10 Seiten benötigt?!
● Nachteil: Kleinerer Adressraum