Method and apparatus for avoiding locks by speculatively executing critical sections

   
   

One embodiment of the present invention provides a system that facilitates avoiding locks by speculatively executing critical sections of code. During operation, the system allows a process to speculatively execute a critical section of code within a program without first acquiring a lock associated with the critical section. If the process subsequently completes the critical section without encountering an interfering data access from another process, the system commits changes made during the speculative execution, and resumes normal non-speculative execution of the program past the critical section. Otherwise, if an interfering data access from another process is encountered during execution of the critical section, the system discards changes made during the speculative execution, and attempts to re-execute the critical section.

Uma incorporação da invenção atual fornece um sistema que facilite evitar fechamentos speculatively executando seções críticas do código. Durante a operação, o sistema permite que um processo execute speculatively uma seção crítica do código dentro de um programa sem primeiramente adquirir um fechamento associado com a seção crítica. Se o processo terminar subseqüentemente a seção crítica sem encontrar um acesso interferindo dos dados de um outro processo, o sistema comete as mudanças feitas durante a execução speculative, e recomeça a execução non-non-speculative normal do programa após a seção crítica. Se não, se um acesso interferindo dos dados de um outro processo fosse encontrado durante a execução da seção crítica, as mudanças dos descartes do sistema fizeram durante a execução speculative, e tentativas executar a seção crítica.

 
Web www.patentalert.com

< User control of web browser user data

< System and method of processing computer form data

> Hardware assisted lease-based access to memory

> Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system

~ 00164