Mutual exculsion system and method for restarting critical sections of code when preempted during a critical section

   
   

A mutual exclusion arrangement is disclosed for use in connection with a computer, the computer being configured to execute at least one program having at least one thread in a series of time slots. The mutual exclusion arrangement includes, associated with the computer, a signal generator and, associated with the at least one thread, a signal handler. The signal generator is configured to generate a signal for provision to the at least one thread when the computer initiates processing of the at least one thread in one of the time slots. The signal handler is configured to, in response to the signal, determine whether the thread, when it begins execution in the time slot, will be executing a section of code that is to be executed in an atomic manner, and, if so, enable the thread to begin execution at a beginning of the section, and otherwise enable the thread to begin execution subsequent to previously-executed code.

Un arrangement mutuel d'exclusion est révélé pour l'usage en liaison avec un ordinateur, l'ordinateur étant configuré pour exécuter au moins un programme ayant au moins un fil dans une série de fentes de temps. L'arrangement mutuel d'exclusion inclut, s'est associé à l'ordinateur, à un générateur de signal et, lié à l'au moins un fil, à un traiteur de signal. Le générateur de signal est configuré pour produire d'un signal pour la disposition à l'au moins un fil quand l'ordinateur lance le traitement de l'au moins un fil dans une des fentes de temps. Le traiteur de signal est configuré à, en réponse au signal, déterminent si le fil, quand il commence l'exécution dans la fente de temps, exécutera une section du code qui doit être exécuté d'une façon atomique, et, si oui, permet au fil de commencer l'exécution à un début de la section, et permet autrement au fil de commencer l'exécution suivante au code précédent-exécuté.

 
Web www.patentalert.com

< Virtual machine support for multiple applications

< Method for improving the performance of safe language multitasking

> Method and apparatus for invalidation of data in computer systems

> Establishing a communicator across multiple processes in a multithreaded computing environment

~ 00102