Bsys
Bsys
Bsys
Kartei Details
Karten | 107 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Andere |
Erstellt / Aktualisiert | 30.03.2025 / 01.06.2025 |
Weblink |
https://card2brain.ch/box/20250330_bsys
|
Einbinden |
<iframe src="https://card2brain.ch/box/20250330_bsys/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was versteht man unter einem virtuellen Speicher?
Idee:
- Jeder Prozess erhält einen privaten, riesen grossen Arbeitsspeicher (z.B. 2^164 adressierbare Speicherzellen)
- Dadurch besitzt jeder Prozess einen riesigen Vorrat an Speicheradressen
Problem:
- So viel Speicher können wir physisch gar nicht bauen
Lösung: Betriebssysteme lügen -> vermitteln Prozessen eine Illusion (virtueller Adressraum)
Wie wird Virtueller Speicher realisiert?
- Virtuelles Speichermanagement (VMM): ist die Realisierung der Idee OS spielt Prozessen vor, dass sie einen riesigen, privaten Adressbereich haben
- Abstraktion physischen Arbeitsspeichers: private virtuelle Adressräume
- Abbildung: Virtueller Adressraum -> Physischer Adressraum
- MMUs: Hardware, welche diese Abbildung effizient implementiert (Seitentabelle). Rechnet virtuelle Adressen in physische Adressen um.
Was versteht man unter "Adressraum"?
- Endliche Menge von Adressen
z.B. Menge aller Postadressen einer Stadt
- Menge aller IP-Adressen
Was versteht man unter "Adressraum eines Prozesses"?
- Menge aller ihm zur Verfügung stehenden Arbeitsspeicheradressen
Was versteht man unter "Physischer Adressraum (PA)"?
- Menge aller Adressen eines physichen (realen) Speichers
Was versteht man unter "virtueller Adressraum (VA)"?
- Menge aller Adressen eines virtuellen Speichers
Dabei gilt VA >> PA (VA viel grösser als PA)
Was versteht man unter "Virtueller Speicher"?
- Abstraktion/Erweiterung des physischen Speichers durch eine Vortäuschung von grossen physischen Adressräumen
Was versteht man unter "Virtuelles Speicher Management (VMM)"?
- Befasst sich mit der Abbildung von virtuellen Adressräumen auf physische Adressräume
Was ist gegeben durch VMM?
- Jeder Prozess hat seinen privaten, grossen, virtuellen Adressraum -> Nicht mehr Eng und ist isoliert von anderen Prozessen
Was versteht man unter der Realisierung von VMM -> Virtuelle Speicherverwaltung?
- Jeder virtuelle Adressraum (pro Prozess) VAp wird mittels eines individuellen Abbildung (vmp: VAp -> PA) auf den physchischen Adressraum (RAM) abgebildet
- MMU nimmt dabei die Abbildung vor -> Seitentabelle mit Seitennummer und Frame-Nummer
Abbildung durch MMU:
1) Aufteilung jedes virtuellen Adressraums in Seiten gleicher Grösse, typisch 4 oder 8 KByte (2^10 -> 1KB)
2) Aufteilung des physischen Adressraums in Rahmen gleicher Grössen
3) Seite eines virtuellen Prozessadressraums mit Seitenrahmen des physischen Adressraums assoziieren ("Fliesen legen") -> Seitenabbildungtabelle
Relative Adresse -> x-Stellen ab Referenz(Start)
Seitenabbildungstabellen:
- Pro virtuelle Seite gibt es einen Eintrag in der Seitentabelle
Seitenattribute:
- anwesend: Ob Seite im Arbeitsspeicher liegt (present-bit)
-benutzt: Ob auf die Seite zugegriffen wurde (used/referenced-bit)
-verändert: Ob die Seite "schmutzig" ist (dirty/modified-bit)
-schutz: erlaubte Zugriffsart je Privilligierungsebene (access control list)
-caching: Ob Inhalte der Seite ge"cached" werden darf
VMM is not free
-> Speicher: Seitentabellen können riesig werden!
-> Performanz: Je Speicherzugriff Zugriff auf die Seitentabelle!
Was versteht man unter Paging?
- Viele Prozesse können gleichzeitig aktiv sein
- normalerweise passt der gesamte VA eines Prozesses nicht in den Arbeitsspeicher (Da gilt VA >> PA)
- Paging lagert einzelne Seiten auf ein Hintergrundspeicher aus.
- Es kann jederzeit ein Page Fault kommen, wenn auf eine ausgelagerte Seite zugegriffen werden möchte
RAM voll, was jetzt?
- Seitenaustauschalgorithmus -> FIFO, Second-Chance, Last-Recently-Used (LRU)
Unterschied Paging vs. Swapping?
Swapping: Ganzer Prozess wird aus dem RAM entfernt -> Prozess wird suspended
Paging: Einzelne Seiten werden auf einen Hintergrundspeicher ausgelagert -> Prozess bleibt aktiv
Was versteht man unter Nebenläufigkeit?
- gleichzeitige Ausführung von Befehlen
- Mehrere Prozesse laufen gleichzeitig oder überlappend
Scheinbare Nebenläufigkeit:
- präemptives Multitasking auf einem Prozessor (OS zwingt P zu unterbrechen)
- Unterbrechung durch Interrupts
- Die Prozesse tauschen so schnell (Context-Switch), dass man denkt, dass sie parallel laufen
Echte Nebenläufigkeit:
- Mehrkernprozessor
- Mehrprozessorsystem
- Computernetzwerk
Probleme:
- enstehen bei der Interaktion von nebenläufiger Ausführung von Threads oder Anwendungen, insbesondere beim Zugriff auf geteilte Ressourcen (Bei echter Nebenläufigkeit)
Was ist Race Condition:
- Zwei oder mehrere Prozesse ändern eine geteilte Ressource (Kritischer Abschnitt)
- Ergebnis hängt vom zeitlichen Verhalten der Ausführung ab und wird dadurch nichtdetermentisch (Nicht vorhersehbar) und Inkonsistenz (Fehlerhaftes Ergebnis).
Was ist der "Kritische Abschnitt"?
- Konzept zur Vermeidung von Race Conditions
- Teil des Codes, der den Zugriff auf geteilte Ressourcen koordiniert
- Anwendung des Prinzips des gegenseitigen Ausschlusses:
(MUTEX)-> Wenn ein Prozess einen kritischen Abschnitt durchläuft, können keine anderen oder nur bestimtme andere Prozesse diesen Abschnitt ebenfalls durchlaufen.
Was versteht man unter "Synchronisation"?
- Koordinierung von nebenläufigen Prozessen
- Verhinderung von Inkonsistenz beim Zugriff auf gemeinsam genutze Ressourcen
- Mutex oder Schedulingverfahren
- Kontrollmechanismen: -> Locks (sperren, nur ein Prozess darf in den Bereich), Semaphore (Zähler, der Zugriffe steuert (mehrere Prozesse möglich)
Locks -> einfache Sperre (0/1) oder (True/False)
Semaphore -> Zähler >1 erlaubt mehrere gleichzeitige Zugriffe
Synchronisation verhinder:
- Race Conditions
- Datenverluste
- Inkonsistenz
Was versteht man unter "Lock"?
- Sperre, die den Zugriff auf eine Ressource (kritischer Abschnitt) regelt.
Vor Zugriff (Sperre anfordern) -> nach Zugriff (Sperre wieder aufheben)
Mehraufwand durch -> Locking-Mechanismen
Softwaredesign: richtige Grösse der kritischen Abschnitte finden
Was ist Mutex (Locking-Variante)?
- Erlaubt nur einem einzigen Prozess den Zugriff auf eine Ressource
- Nur der Prozess, der die Mutex angefordert hat, kann sie auch wieder freigeben
Was ist Semaphore (Locking-Variante)?
- Lock mit einem Zähler (Anzahl der maximal gleichzeitigen Zugriffen)
- Vor Zugriff muss Lock reseriert werden (Zähler wird dekrementiert)
- Nach Zugriff muss Lock wieder freigegeben werden (Zähler wird inkrementiert)
- Jeder Prozess darf wieder freigeben, bei Mutex nur der Prozess, welcher gesperrt hat.
Prozess wird suspendiert, bis Semaphore wieder verfügbar ist ("sleeping lock")
Varianten:
- starke Semaphore (echte FIFO-Warteschlange)
- schwache Semaphore (z.B. priorität)
- binäre Semaphore (Zähler nur 0 und 1 / True oder False)
- zählende Semaphore (Zähler auch grösser als 1)
Was versteht man unter "Readers-Writer-Lock"?
- Daten werden häufig von vielen Prozessen gelesen und nur von wenigen Prozessen geschrieben
- Spezielle Lock für diesen Anwendungsfall
- Zugang für mehrere Leser ist gestattet
- Zugang nur für einen Schreiber
- erhöht Nebenläufigkeit im System (Bessere Performanz)
Was versteht man unter "Granularität" beim Locking?
Grobgranulares Locking (Grosses Lock für alles):
- Kann schnell zu einem Flaschenhals werden, bei dem viele Prozesse vor dem Zugriff auf eine geteilte Ressource warten müssen ("lock contention").
Feingranulares Locking (Viele kleine Locks):
- aufwendiger, aber laufen paralleler
Was versteht man unter "Deadlock (Verklemmung)"?
- zyklische Wartesituation zwischen mehreren Prozessen
- Jeder Prozess wartet auf die Freigabe von Betriebsmitteln, die ein anderer beteiligter Prozess bereits exklusiv hat.
Was versteht man unter "Starvation"?
- Ein Prozess bekommt nie Ressourcen, obwohl der Prozess sonst eigentlich laufen könnte
Ursachen:
- Deadlock oder ungeeignete Schedulingverfahren, bei dem grosse Prozesse z.B. verhungern
Starvation vs. Verklemmung:
Starvation: Andere Prozesse laufen weiter
Verklemmung: Alles bleibt stehen, zirkuläre Wartesituation