7 - Ressourcen und Prozesse Flashcards
Physikalische Ressourcen
- Prozessor / CPU
- Hauptspeicher / Memory / RAM
- externe Schnittstellen / Interfaces
- Ein-, Ausgabegeräte / Periphere Geräte / I/O Devices
- Hintergrundspeicher / Secondary Storage
Virtuelle Ressourcen
Vom Betriebssystem geschaffene Ressourcen
z.B. Speichersegmente, Dateien
Betriebsmodi des Prozessors
Moderne Prozessoren haben mindestens 2 Modi:
- Benutzermodus (User Mode)
- Privilegierter Modus (Supervisor Mode)
Modus wird meist als Bit in speziellem Register repräsentiert (Condition Code Register CCR)
- Supervisor Flag S (1 oder 0)
- Bit kann nur im privilegierten Modus verändert werden
Privilegierter Modus
Erlaubt Ausführung privilegierter Befehle:
- Konfigurationsänderungen des Prozessors
- Moduswechsel
- Spezielle I/O-Befehle
Unterbrechungen / Interrupts
= Vorübergehende Unterbrechung eines laufenden Programms um einen anderen zeitkritischen Vorgang abzuarbeiten
- Externe Unterbrechungen (external Interrupt)
- -> durch externe Ereignisse
- Interne Unterbrechungen (internal Interrupt)
- -> durch interne Ereignisse
Interrupt Funktion
- Prozessor unterbricht laufende Bearbeitung und führt definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar)
- Vorher werden alle Register einschl. Programmzähler gesichert (zB auf Stapelspeicher / Stack)
- Nach Unterbrechung kann der ursprüngl. Status wiederhergestellt werden
- Unterbrechungen werden im privilegierten Modus bearbeitet
Anwendung externer Unterbrechungen
Reaktion auf externes Ereignis:
- Tastatureingabe
- Fehlerbedingung
- Ankommende Netzwerknachricht
- Rückmeldung durch langsame Geräte
- “Wecker”-Funktion zB Wake on LAN
Benutzermodus
Hat einen eingeschränkten Befehlssatz
Unterschied zwischen einem Programm und einem Prozess
–> Es kann mehrere Prozesse zu einem Programm geben
Programm:
Folge von Anweisungen und dazugehörigen Daten. ZB als Datei auf dem Hintergrundspeicher hinterlegt.
Prozess: Programm das sich in Ausführung befindet, sowie dessen aktuelle Daten. Stellt Ausführungsumgebung bereit: - Adressraum - Kontext für Ressourcenanforderungen - Prozess als virtueller Prozessor
Threads
Aktivitätsträger (Threads) oder leichtgewichtige Prozesse (lightweight processes, LWPs)
Gruppe von Threads nutzt gemeinsam eine Menge von Ressourcen:
- Instruktionen
- Datenbereiche
- Files, Sockets, etc.
Jeder Thread repräsentiert eigene Aktivität:
-> Eigener Programmzähler, Registersatz, Stack
Vorteile bei der Nutzung mehrerer Threads in einer Anwendung
- Nebenläufige Programmierung möglich (Mehrere Kontrollflüsse)
- Falls ein Thread auf die Ein/Ausgabe wartet können die anderen weiterarbeiten
- Kürzere Reaktionszeit bei Benutzereingaben
- Bei Multiprozessorsystemen: echt parallele Abarbeitung der Threads möglich
Nebenläufigkeit von Prozessen
Zwei Prozesse sind nebenläufig, wenn ihre Anweisungen unabhängig voneinander abgearbeitet werden.
- Egal, ob die Anweisungen zeitlich durchmischt oder echt gleichzeitig bearbeitet werden
- Parallele Bearbeitung ist nebenläufig
- Nebenläufige Bearbeitung auch auf Monoprozessoren möglich
- > Zeitliche Durchmischung der Befehle mehrerer Prozesse/Threads
- > Scheduling-Strategie oft unabhängig von den bearbeiteten Befehlen
Parallelität von Prozessen
Zwei Prozesse werden parallel bearbeitet wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden
-> Nur auf Multiprozessoren (2 oder mehr Kerne/Prozessoren)
Schutzumgebung
Programme werden in isolierten Umgebungen ausgeführt und können durch Zugriffsberechtigungen auf PC-Komponenten zugreifen.
Umschalten zwischen zwei Threads einer Gruoppe
Erheblich einfacher als normaler Kontextwechsel
- Nur Register und Programmzähler müssen gewechselt werden (Entspricht Aufwand für Funktionsaufruf)
- Speicherabbildung muss nicht gewechselt werden
- Alle Systemressourcen bleiben verfügbar