Brugertråd
Som bruger tråd (også brugere tråd skrevet), lejlighedsvis Bruger Level -gevindhul og z. B. kaldes under Windows Fiber ( se nedenfor ), inden for datalogi kaldes en bestemt måde at køre programmer eller programdele på en sammenkædet måde. Funktionaliteten implementeres ikke direkte i kernen (som det er tilfældet med en kernetråd ), men i et separat programbibliotek, der er placeret i brugerområdet . Dette muliggør en kontekstændring (skift af opgave) mellem brugertråde uden komplekse systemopkald, hvilket betyder, at kontekstændringer er betydeligt hurtigere end mellem kernetråde eller processer .
Planlægning
Da brugertråde i en kernetråd i princippet ikke udføres samtidigt ([pseudo-] parallelt), men kun den ene efter den anden, kan brugertrådene ikke fornuftigt fordeles over flere processorer . Da operativsystemet ikke ved noget om eksistensen af brugertråde, skal planlægningen (tidssekvensstyring) af brugertrådene udføres af selve programmet eller af det anvendte programbibliotek . Derved kooperativ planlægning er stort set altid drives og ikke forebyggende (fra engelsk tegningsret , 'privilegeret'). Brugertrådene skal derfor opgive kontrol af sig selv.
Dette er dog problematisk, hvis en af brugertrådene foretager et blokerende systemopkald . Det faktum, at denne brugertråd er blokeret, gør det umuligt for den at aflevere kontrol til en anden brugertråd - på denne måde er hele programmet blokeret. Dette problem kan dog omgås ved, at det anvendte bibliotek giver erstatningsfunktioner for brugertråden. Biblioteket bruger derefter kun ikke-blokerende systemopkald fra operativsystemet, som operativsystemet skal levere.
Forskelligt synspunkt
Begrebet brugertråde kan også ses som en udvidelse af begreberne procedurer eller funktioner på tilsvarende programmeringssprog . Fra dette synspunkt svarer en brugertråd til en procedure, der kaldes fra en anden placering (via den eksplicitte planlægning af netop denne brugertråd). Imidlertid vender en sådan procedure ikke nødvendigvis tilbage til den, der ringer op, nøjagtigt et punkt, men kan snarere "vende tilbage" mere end én gang og til forskellige punkter via sin selvudførte planlægning. Denne opfattelse afspejles også i den måde, hvorpå brugertråde deklareres i nogle systemer - nemlig som en separat procedure for hver brugertråd.
Implementeringer
Bruger tråd biblioteker er tilgængelige under mange operativsystemer systemer, men tolke kan også støtte brugerens tråde. Navngivningen af brugertråde varierer afhængigt af implementeringen .
Windows
Microsoft kalder de brugertråde, det tilbyder (siden Windows 98 ) under Windows- fibre . Det engelske ord fiber ( dt. ' Fiber ' → ' fiber ') kan her bruges som en henvisning til det naturlige forhold mellem en tråd - d. H. en tråd - skal forstås som en fiber / fiber: En fiber / fiber er tyndere og enklere end en tråd (tråd); en tråd kan spindes fra flere individuelle fibre. En tråd kan konverteres til en fiber under Windows og omvendt.
Linux
I Linux leverer LinuxThreads og GNU Portable Threads- bibliotekerne f.eks. Brugertråde . LinuxThreads udvikles dog ikke længere, og dens efterfølger, Native POSIX Thread Library (NPTL), er ikke længere et rent userpace- bibliotek.
Solaris
Den navnekonvention på Solaris afviger fra på Windows og Linux . En kernetråd er her som en letvægtsproces ( Engl .; → se, letvægtsproces '. Tråd (datalogi) ) der henvises til og en brugertråd kaldes simpelthen til en tråd .
En Solaris-tråd kan også tildeles andre lette processer i samme proces .
Java Virtual Machine
Nyere versioner af Java Virtual Machine (JVM) bruger, hvis det er tilgængeligt, det lokale operativsystems muligheder for at gøre tråde tilgængelige for programmøren. Med ældre versioner, eller hvis operativsystemet ikke understøtter kernetråde , har JVM også sin egen brugertrådfunktionalitet. Dette er kendt som den grønne tråd . Grønne tråde er ægte brugertråde, men tilbyder stadig forebyggende , prioritetsbaseret planlægning , som er implementeret af JVM.
litteratur
- Andrew S. Tanenbaum : Moderne operativsystemer. Pp.515-518, Prentice Hall, Englewood Cliffs, New Jersey 1992, ISBN 0-13-595752-4
Individuelle beviser
- ↑ Cprogramming.com: Introduktion til Windows Programmering og OpenGL. (Engelsk)
- ↑ Vikram Shukla: Sammenlignet Linux-threading-modeller: LinuxThreads og NPTL (PDF; 50 KB, engelsk), tilgængelig den 31. maj 2019.
- ^ Fabian Zabatta, Kevin Ying: Sammenligning af trådydelse : Windows NT og Solaris på en symmetrisk multiprocessor. 2. USENIX Windows NT Symposium, 3. - 5. august 1998. I: usenix.org. USENIX Association, 10. april 2002, adgang til 6. februar 2014 .
- ^ Glenn L. Vanderburg et al.: Tricks of the Java Programming Gurus. Arkiveret fra originalen den 25. maj 2009 ; adgang den 14. april 2018 (engelsk).
Weblinks
- Ralf S. Engelschall: Portable Multithreading . ( PS ; 132 kB ) - Implementering af brugertråde på Unix- systemer (engelsk); adgang den 6. februar 2014.