Betriebssysteme - Threads
AI Ba Sem 2
AI Ba Sem 2
11
0.0 (0)
Set of flashcards Details
Flashcards | 11 |
---|---|
Language | Deutsch |
Category | Computer Science |
Level | Other |
Created / Updated | 07.05.2016 / 20.06.2019 |
Licencing | Not defined |
Weblink |
https://card2brain.ch/box/betriebssysteme_threads
|
Embed |
<iframe src="https://card2brain.ch/box/betriebssysteme_threads/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
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