Bsys

Bsys

Bsys


J. S.
Diese Lernkarten bieten einen umfassenden Überblick über die Funktionsweise von Betriebssystemen und deren Prozesse. Sie behandeln zentrale Themen wie den Zugriff auf Ressourcen, die Verwaltung von Speicher und Threads, sowie die Synchronisation von Prozessen. Besonders hervorgehoben werden Mechanismen wie Locks, Semaphore und Mutex, die für die Koordination von nebenläufigen Prozessen essenziell sind. Die Karteikarten richten sich an Studierende und IT-Profis, die ihr Verständnis von Betriebssystemen vertiefen möchten, insbesondere in Bereichen wie Scheduling, virtueller Speicherverwaltung und der Vermeidung von Deadlocks.
Flashcards
107
Students
1
Language
German
Category
Computer Science
Level
Other
Created / Updated
30.03.2025 / 01.06.2025

Flashcards

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

Study