Betriebssysteme - Threads
AI Ba Sem 2
AI Ba Sem 2
11
0.0 (0)
B. K.
B. K.
Diese Lernkarten behandeln fortgeschrittene Konzepte zu Threads in Betriebssystemen. Sie beleuchten die Rolle von Unterbrechungen, die Unterschiede zwischen User-Level- und Kernel-Level-Threads sowie deren Verwaltung und Vor- und Nachteile. Entwickler und Systemarchitekten profitieren davon, da sie lernen, wie Threads die Effizienz und Leistung von Prozessen verbessern, indem sie gemeinsame Ressourcen nutzen und schnelle Kontextwechsel ermöglichen.
Karten
11
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Andere
Erstellt / Aktualisiert
07.05.2016 / 20.06.2019
-
- 1 / 11
-
Lernkarten
Was bedeutet der Begriff Thread (gegenüber Prozess Task)?
- Folge von Aktivitäten einer ausführbaren Programmeeinheit
- Träger eines Ausführungspfads und des zugehörigen Ausführungszustands eines Prozesses
- dynamische abgearbeitete Befehlsfolge einschließlich des Ausführungskontexts (Register, Stack usw.)
Eigenschaften von Threads
- Prozesse und Tasks können mehrere Threads besitzen
- Threads sind nicht gegeneinander abgeschottet
- Threads nutzen gemeinsam die Ressourcen des Prozesses
- Threads sind an die Existenz des Prozesses gebunden
Wozu sind Threads nützlich?
Gemeinsames Code-Segment, gemeinsame Datensegmente (globale Variable, Heap), gemeinsame Ressourcen, daher:
- kein Austausch des "äußeren Kontextes" erforderlich
- kein Adressbereichswechsel
- kein Austuasch von Datei-Handles usw.
- Kontextwechsel damit wesentlich einfacher und schneller möglich:
- Prozessor-Register
- IP, SP
- Stack-Segment oder Stack-Pointer
- Kommunikation zwischen Threads einfacher
Kernel-Level: Vor- und Nachteile
Vorteile:
- Betriebssystem kann unproduktiven und unkooperativen Threads die Kontrolle entziehen
- Automatischer Thread-Wechsel bei blockierendem Systemruf möglich
- Threads eines Prozesses auf mehrere Prozessoren verteilbar
Nachteile:
- Höherer Aufwand für Thread- um Wechsel wegen Systemrufs
- betriebssystemgebunden
User-Level-Threads: Vor- und Nachteile
Vorteile:
- Sehr schneller ThreadwechseI‚ da kein Systemaufruf nötig
- auf jedem Betriebssystem realisierbar
Nachteile:
- Threads müssen Kontrolle freiwillig abgeben
- Kein automatischer Threadwechsel bei Blockierung in Systemrufen
- Threads eines Prozesses nicht auf mehrere Prozessoren verteilbar
Was spielt Unterbrechung für eine Rolle?
Eine Unterbrechung ist ein Signal an den Prozessor
- Befehlszyklus eines Prozessors wird unterbrochen
- Aufruf einer speziellen Routine zur Unterbrechungsbehandlung
Arten von Unterbrechungen: Synchrone Unterbrechung
- in Ausführung befindlicher Befehl löst (direkt oder indirekt) Unterbrechung aus -> Unterbrechung trifft somit den "Verursacher"
- Unterbrechungsauslöser
- Prozessor ("Trap")
- Arithmetische Fehler
- Adressenfehler (Bsp.: schreiben in Speicher der nur gelesen werden darf)
- Befehl (Systemruf)
- System-Call im Programm (Aufruf INT-Befehl)
- Prozessor ("Trap")
Arten von Unterbrechungen: Asynchrone Unterbrechung
- Unterbrechung außerhalb der Prozessoraktivität
- Quelle ist z.B. ein selbstständig arbeitendes Gerät (vertreten durch E/A- Baustein)
- Unterbrechung trifft mitten in die Programmverarbeitung
- Unterbrechungsauslöser
- E/A-Unterbrechungen
- Zeitgeberunt. durch Taktgeber
- Prozessoranruf zur Mehrprozessorsynchronisation
- Notunterbrechungen
- Ausfall Strom oder Hardware