Menu Close

Betriebssysteme (Vorlesung 6)

Skript-AnfangBS_3_SS2013 – Seite 51
Skript-EndeBS_4_SS2013 – Seite 32

Prozess-Zustände

  1. Rechnend
  2. Blockierend
  3. Bereit

Warum gibt es unter Linux nur 1 Zustand für Bereit / Rechnend?

  • Prozesse die laufen bzw. rechnen sind automatisch bereit

Threads

  • Alle Threads eines Prozesses haben Zugriff auf die gleichen Variablen

Threadimplementierung

  • Entweder im Benutzerbereich oder im Kernbereich

Benutzerbereich

  • Betriebsystem kennt die Threads garnicht
  • Emulation innerhalb des Laufzeitsystems
  • Nachteil:
    • Wenn ein Thread blockiert, wie z.B. FOpen (Ladezugriff auf HDD) werden auch alle anderen Threads blockiert
    • Wenn der Thread die „virtuelle CPU“ nicht freigibt nutzt der Thread die gesamte Laufzeit für sich (regelt die CPU normalerweise)

Kernbereich

  • Betriebssystem implementiert Threads bereits

Beispiel Webserver

  • Lösung mit 1 Thread sinnvoll, wenn nur 1 zugreifende Person und er nie warten muss
  • Zu viele Threads beschleunigen nicht unbedingt die Geschwindigkeit (Was tun die Threads?)

Implementierungsprobleme

  • Kann diese Situation auch eintreten, wenn ein Prozess nur aus einem einzigen Thread besteht und fork aufruft? Nein, weil in diesem Fall der Prozess auch sein eigener Thread ist

Interprozesskommunikation

  • Asynchron: Ich warte nicht solange auf der Post, bis mein Brief zugestellt wurde. Dafür bekomme ich eine Information über die Zustellung.
  • Synchron: Ich warte auf dem Postamt bis mein Brief zugestellt und die Antwort eingetrudelt ist.

Signale

  • Sigint entspricht Ctrl + C
  • Man kann nichts dagegen tun, dass ein Programm Signale erhält ← notwendige Signalbehandlungsroutine implementieren um Kill zu verhindern

Kritischer Abschnitt

  • Das komplette Code-Segment ist als kritischer Abschnitt anzusehen.
  • Je kleiner das Segment, desto einfacher ist dieses abzusichern.
  • Je größer der kritische Abschnitt, desto weniger Parallelität ist im Programm vorhanden.
  • Sobald ein anderer Prozess den kritischen Abschnitt betreten will wird dieser blockiert.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index