Bsys

Bsys

Bsys


Set of flashcards Details

Flashcards 107
Language Deutsch
Category Computer Science
Level Other
Created / Updated 30.03.2025 / 01.06.2025
Weblink
https://card2brain.ch/box/20250330_bsys
Embed
<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

Wie können Deadlocks verhindert werden?

cool