LWP (lichtgewichtproces) en Threads zijn beide mechanismen die worden gebruikt om gelijktijdigheid of parallellisme in een programma te bereiken, maar ze verschillen qua implementatie en eigenschappen:
LWP (lichtgewichtproces):
- Een LWP is een virtuele uitvoeringseenheid die draait binnen de context van een enkel traditioneel besturingssysteemproces.
- LWP's worden volledig beheerd door de gebruikersruimtebibliotheek, zonder tussenkomst van de kernel van het besturingssysteem.
- LWP's delen dezelfde geheugenruimte en systeembronnen als het bovenliggende proces.
- De overheadkosten voor het maken van een LWP zijn relatief lager dan die voor threads.
- LWP's zijn minder draagbaar tussen verschillende besturingssystemen, omdat ze doorgaans worden geïmplementeerd met behulp van specifieke gebruikersruimtebibliotheken.
- LWP's werden vaak gebruikt in systemen als Sun Solaris, maar zijn minder gangbaar geworden in moderne besturingssystemen.
Threads:
- Een thread is een lichtgewicht, op zichzelf staande uitvoeringseenheid binnen een proces.
- Threads worden beheerd en gepland door de kernel van het besturingssysteem, waardoor ze directer toegang krijgen tot systeembronnen.
- Threads binnen hetzelfde proces delen geheugen, maar hebben afzonderlijke stapels.
- Het maken en vernietigen van threads brengt meer overhead met zich mee vergeleken met LWP's vanwege de betrokkenheid van de kernel.
- Threads zijn draagbaarder tussen verschillende besturingssystemen, omdat ze zijn gestandaardiseerd door POSIX en andere API's.
- Threads zijn het overheersende mechanisme geworden voor gelijktijdigheid en parallellisme in moderne besturingssystemen.
Samenvatting:
- LWP's worden beheerd door de gebruikersruimte, terwijl threads worden beheerd door de kernel van het besturingssysteem.
- LWP's delen alle bronnen van het bovenliggende proces, terwijl threads geheugen delen maar afzonderlijke stapels hebben.
- LWP's hebben lagere overheadkosten voor creatie en vernietiging vergeleken met threads.
- Threads zijn draagbaarder en gestandaardiseerd voor alle besturingssystemen.
- Threads zijn het meest gebruikte mechanisme voor gelijktijdigheid en parallellisme in moderne besturingssystemen. |