A system and method for inexpensively detecting preempted execution
entities such as threads without kernel involvement. In a computer system
having a memory and one or more processors, a shared memory arena is
formed in user space within the memory. A preempt bit vector is then
formed within the shared memory arena such that the preempt bit vector is
accessible to any of a plurality of execution entities running in user
mode. The preempt bit vector includes a plurality of rbits, wherein each
rbit is associated with one of the plurality of execution entities and
wherein an rbit is marked whenever its associated execution entity is
preempted. Detection of preempted threads then becomes a matter of
reading, via program code executing in user mode on one of the plurality
of processors, bits in the preempt bit vector to detect preempted
execution entities.
Een systeem en een methode om voordelig te ontdekken preempted uitvoeringsentiteiten zoals draden zonder pitbetrokkenheid. In een computersysteem dat een geheugen en één of meerdere bewerkers heeft, wordt een gedeelde geheugenarena gevormd in gebruikersruimte binnen het geheugen. Een vector van het preemptbeetje wordt dan gevormd binnen de gedeelde geheugenarena dusdanig dat de vector van het preemptbeetje voor om het even welk van een meerderheid van uitvoeringsentiteiten die op gebruikerswijze toegankelijk is lopen. De vector van het preemptbeetje omvat een meerderheid van rbits, waarin elke rbit met één van de meerderheid van uitvoeringsentiteiten wordt geassocieerd en waarin een rbit duidelijk is wanneer zijn bijbehorende uitvoeringsentiteit preempted is. De opsporing van preempted draden dan wordt een kwestie van lezing, via programmacode uitvoerend op gebruikerswijze op één van de meerderheid van bewerkers, preempted de beetjes in de te ontdekken vector van het preemptbeetje uitvoeringsentiteiten.