Liggewigproses

in Wikipedia, die vrye ensiklopedie

'n Liggewigproses (Engels: lightweight thread) in rekenaarwetenskap is 'n metode om 'n rekenaarprogram in een of meer samelopende take op te deel (sien ook: vurk). Liggewigprosesse en prosesse verskil van een bedryfstelsel tot die volgende, maar oor die algemeen word 'n liggewigproses in 'n gewone proses omvat. Liggewigprosesse wat aan 'n proses behoort deel hulpbronne waar gewone prosesse nie tipies hulpbronne deel nie.

Op 'n enkele verwerker geskied samelopendheid d.m.v. tydsverdeling multipleksering wat soortgelyk is aan die samelopende uitvoering van veelvuldige take (rekenaar samelopendheid): die sentrale verwerker wissel uitvoering opeenvolgend van een liggewigproses tot die volgende. Die kontekswisseling kan vinnig genoeg geskied om 'n illusie van samelopendheid te skep. Op 'n multiverwerker- of multikernstelsel kan samelopendheid van liggewigprosesse d.m.v. multiverwerking geskied, sodat onderskeie liggewigprosesse en gewone prosesse gelyktydig op verskillende verwerkers of kerns kan uitvoer.

Baie moderne bedryfstelsels ondersteun beide die tydverdeelde en multiverwerker uitvoer van liggewigprosesse d.m.v. 'n prosesskeduleerder. Die bedryfstelsel kern laat programmeerders toe om liggewigprosesse te manipuleer d.m.v. die sisteemroepkoppelvlak.

In die afwesigheid van sulke ondersteuning kan programme steeds liggewigprosesse implementeer d.m.v. tydskakelaars, seine of ander wyses wat hul eie uitvoer onderbreek en dus 'n vorm van tydsverdeling toelaat. Hierdie metodes word soms "user-space threads" in Engels genoem.

Liggewigprosesse teenoor prosesse[wysig | wysig bron]

'n Liggewigproses word onderskei van 'n tradisionele samelopende proses deur dat prosesse:

Veelvuldige liggewigprosesse daarenteen deel gewoonlik die toestand, geheue en ander hulpbronne van 'n proses. Kontekswisseling tussen liggewigprosesse in dieselfde proses is gewoonlik vinniger as kontekswisseling tussen prosesse.

Verwysings[wysig | wysig bron]

  • David R. Butenhof: Programming with POSIX Threads, Addison-Wesley, ISBN 0-201-63392-2
  • Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell: Pthreads Programming, O'Reilly & Associates, ISBN 1-56592-115-1
  • Charles J. Northrup: Programming with UNIX Threads, John Wiley & Sons, ISBN 0-471-13751-0
  • Mark Walmsley: Multi-Threaded Programming in C++, Springer, ISBN 1-85233-146-1
  • Paul Hyde: Java Thread Programming, Sams, ISBN 0-672-31585-8
  • Bill Lewis: Threads Primer: A Guide to Multithreaded Programming, Prentice Hall, ISBN 0-13-443698-9
  • Steve Kleiman, Devang Shah, Bart Smaalders: Programming With Threads, SunSoft Press, ISBN 0-13-172389-8
  • Pat Villani: Advanced WIN32 Programming: Files, Threads, and Process Synchronization, Harpercollins Publishers, ISBN 0-87930-563-0
  • Jim Beveridge, Robert Wiener: Multithreading Applications in Win32, Addison-Wesley, ISBN 0-201-44234-5
  • Thuan Q. Pham, Pankaj K. Garg: Multithreaded Programming with Windows NT, Prentice Hall, ISBN 0-13-120643-5
  • Len Dorfman, Marc J. Neuberger: Effective Multithreading in OS/2, McGraw-Hill Osborne Media, ISBN 0-07-017841-0
  • Alan Burns, Andy Wellings: Concurrency in ADA, Cambridge University Press, ISBN 0-521-62911-X
  • Uresh Vahalia: Unix Internals: the New Frontiers, Prentice Hall, ISBN 0-13-101908-2
  • Alan L. Dennis: .Net Multithreading , Manning Publications Company, ISBN 1-930110-54-5
  • Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: C# Threading Handbook, Peer Information Inc, ISBN 1-86100-829-5
  • Tobin Titus, Fabio Claudio Ferracchiati, Srinivasa Sivakumar, Tejaswi Redkar, Sandra Gopikrishna: Visual Basic .Net Threading Handbook, Wrox Press Inc, ISBN 1-86100-713-2

Eksterne skakels (almal in Engels)[wysig | wysig bron]