Fiber

Fiber

Als User Thread, User-level Thread oder Fiber (Windows) bezeichnet man in der Informatik eine bestimmte Art, Programme bzw. Programmteile verzahnt ablaufen zu lassen. Die Funktionalität ist dabei nicht direkt im Betriebssystemkern implementiert (wie bei einem Kernel Thread), sondern in einer separaten Programmbibliothek, die im Userspace liegt. Dadurch ist ein Kontextwechsel zwischen den User Threads ohne aufwendige Systemaufrufe möglich, wodurch Kontextwechsel deutlich schneller sind als zwischen Kernel Threads oder Prozessen.

Inhaltsverzeichnis

Scheduling

Da die User Threads innerhalb eines Kernel Threads prinzipiell nicht gleichzeitig ((pseudo-)parallel), sondern nur nacheinander ausgeführt werden, können die User Threads nicht sinnvoll auf mehrere Prozessoren verteilt werden. Da das Betriebssystem nicht von der Existenz der User Threads weiß, muss das Scheduling der User Threads vom Programm selbst beziehungsweise von der eingesetzten Programmbibliothek erledigt werden. Dabei wird praktisch immer kooperatives Scheduling betrieben und nicht präemptives. Die User Threads müssen also von sich aus die Kontrolle abgeben.

Dies ist problematisch, wenn einer der User Threads einen blockierenden Systemaufruf tätigt. Dadurch, dass dieser User Thread blockiert ist, wird es ihm unmöglich, die Kontrolle an einen anderen User Thread abzugeben. So wird das gesamte Programm blockiert. Dieses Problem kann umgangen werden, indem die genutzte Bibliothek dem User Thread Ersatzfunktionen bereit stellt. Die Bibliothek nutzt dann ausschließlich nichtblockierende Systemaufrufe des Betriebssystemes, die dieses bereitstellen muss.

Andere Sichtweise

Das Konzept der User Threads kann auch als Erweiterung der Konzepte von Prozeduren oder Funktionen in entsprechenden Programmiersprachen gesehen werden. Ein User Thread entspricht in dieser Sichtweise einer Prozedur, die von anderer Stelle aufgerufen wird (über das explizite Scheduling genau dieses User Threads). Eine solche Prozedur kehrt jedoch nicht unbedingt an genau einer Stelle zum Kontrollfluss des Aufrufers zurück, sondern kann vielmehr über ihr selbst durchgeführtes Scheduling auch mehr als ein Mal und an verschiedene Stellen "zurückkehren". Diese Sichtweise spiegelt sich auch in der Art wider, in der in einigen Systemen User Threads deklariert werden, nämlich als eine gesonderte Prozedur je User Thread.

Implementierungen

User Thread Bibliotheken stehen unter vielen Betriebssystemen zur Verfügung, aber auch Interpreter können User Threads unterstützen. Dabei unterscheidet sich die Benennung der User Threads je nach Implementierung.

Windows

Windows bietet User Threads seit Windows 98, hier werden sie Fibers genannt.[1] Der Begriff Fiber (dt. Faser) kann hier als Anlehnung an das natürliche Verhältnis von Thread (dt. Faden) und Fiber verstanden werden: Eine Faser (Fiber) ist dünner und einfacher als ein Faden (Thread); ein Faden kann aus mehreren Fasern gewoben sein.

Linux

User Threads bieten unter Linux zum Beispiel die Bibliotheken LinuxThreads und GNU Portable Threads. LinuxThreads wird nicht mehr weiterentwickelt, der Nachfolger Native POSIX Thread Library (NPTL) ist keine reine Userspace Bibliothek mehr.[2]

Solaris

Die Namenskonvention unter Solaris weicht von Windows und Linux ab. Ein Kernel Thread wird hier Lightweight Process genannt, ein User Thread einfach als Thread bezeichnet. Ein Solaris-Thread kann auch anderen Lightweight Processes desselben Prozesses zugeordnet werden.[3]

Java Virtual Machine

Neuere Versionen der Java Virtual Machine nutzen, falls vorhanden, die Möglichkeiten des Betriebssystemes um dem Programmierer Threads zur Verfügung zu stellen. Bei älteren Versionen oder falls das Betriebssystem Kernel Threads nicht unterstützt, hat die JVM aber auch ihre eigene User Thread Funktionalität, die als Green Threads bezeichnet wird. Green Threads sind echte User Threads, bieten aber trotzdem präemptives, prioritätsbasiertes Scheduling, das durch die JVM realisiert wird.[4]

Literatur

  1. www.cprogramming.com
  2. Vergleich von LinuxThreads und NPTL auf ibm.com
  3. Threads unter Solaris und Windows NT
  4. Tricks of the Java Programming Gurus, Glenn L. Vanderburg. et al.: Onlineversion auf docs.rinet.ru
  • Andrew S. Tanenbaum: Modern Operating Systems (S. 515–518). Prentice Hall, Englewood Cliffs, New Jersey 1992, ISBN 0-13-595752-4.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Fiber — Fi ber, Fibre Fi bre,, n. [F. fibre, L. fibra.] 1. One of the delicate, threadlike portions of which the tissues of plants and animals are in part constituted; as, the fiber of flax or of muscle. [1913 Webster] 2. Any fine, slender thread, or… …   The Collaborative International Dictionary of English

  • fiber — [fī′bər] n. [Fr fibre < L fibra, akin to filum, thread: see FILE1] 1. a) a slender, threadlike structure that combines with others to form animal or vegetable tissue b) the tissue so formed [muscle fiber] 2. a slender, threadlike structure… …   English World dictionary

  • Fiber — Sf Faser erw. fach. (16. Jh.) Entlehnung. Entlehnt aus l. fibra, zu der gleichen Grundlage (ig. * gwhis ) wie l. fīlum n. Faden .    Ebenso nndl. fiber, ne. fibre, nfrz. fibre, nschw. fiber, nnorw. fiber; Filet. lateinisch l …   Etymologisches Wörterbuch der deutschen sprache

  • fiber — 1530s, from Fr. fibre (14c.), from L. fibra a fiber, filament, of uncertain origin, perhaps related to L. filum thread, or from root of findere to split. Fiberboard is from 1897; Fiberglas is 1937, U.S. registered trademark name; and fiber optics …   Etymology dictionary

  • FIBER — animal ἀμφίβιον, idem cum castore, quam vocem vide supra; per universum Pontum plurimus Lutris similis est, animal morsu potentissimum, adeo ut cum hominem invadit, conventum dentium non prius laxet, quam concrepuisse persenserit fracta ossa.… …   Hofmann J. Lexicon universale

  • fiber — [n1] strand of material cilia, cord, fibril, filament, footlet, grain, grit, hair, shred, staple, string, strip, tendril, thread, tissue, tooth, vein, warp, web, woof; concepts 392,428,611,831 fiber [n2] texture essence, fabric, feel, hand, nap,… …   New thesaurus

  • fiber — (Brit. fibre) ► NOUN 1) a thread or filament from which a plant or animal tissue, mineral substance, or textile is formed. 2) a substance formed of fibres. 3) dietary material containing substances such as cellulose, that are resistant to the… …   English terms dictionary

  • Fiber — Fiber. См. Волокнистость. (Источник: «Металлы и сплавы. Справочник.» Под редакцией Ю.П. Солнцева; НПО Профессионал , НПО Мир и семья ; Санкт Петербург, 2003 г.) …   Словарь металлургических терминов

  • Fiber — Fiber, Säugethier, 1) so v.w. Biber; 2) F. Cuv. (Zibethmaus), Gattung der schwimmfüßigen [254] Wühlmäuse; oben u. unten jederseits 3 Backenzähne, von den Seiten zusammengedrückter, dünn bebaarter Schuppenschwanz, halbe Schwimmhäute, mit einem… …   Pierer's Universal-Lexikon

  • Fiber — Fiber, die Bisamratte …   Meyers Großes Konversations-Lexikon

  • fiber — index character (personal quality), frame (mood), prowess (bravery) Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”