A system and method for object rundown protection that scales with the
number of processors in a shared-memory computer system is disclosed. In
an embodiment of the present invention, prior to object rundown, a
cache-aware reference count data structure is used to prevent
cache-pinging that would otherwise result from data sharing across
processors in a multiprocessor computer system. In this data structure, a
counter of positive references and negative dereferences, aligned on a
particular cache line, is maintained for each processor. When an object
is to be destroyed, a rundown wait process is begun, during which new
references on the object are prohibited, and the total number of
outstanding references is added to an on-stack global counter.
Destruction is delayed until the global reference count is reduced to
zero. In an embodiment of the invention suited to implementation on
non-uniform memory access multiprocessor machines, each processor's
reference count is additionally allocated in a region of main memory that
is physically close to that processor.
Um sistema e um método para a proteção do rundown do objeto que escala com o número dos processadores em um sistema computatorizado da compartilh-memória são divulgados. Em uma incorporação da invenção atual, antes do rundown do objeto, uma estrutura de dados esconderijo-ciente da contagem da referência é usada impedir esconderijo-sibilar que resulte de outra maneira dos dados que compartilham através dos processadores em um sistema computatorizado do multiprocessor. Nesta estrutura de dados, um contador de referências positivas e o negativo dereferences, alinhado em uma linha particular do esconderijo, são mantidos para cada processador. Quando um objeto é ser destruído, um processo da espera do rundown está começado, durante que as referências novas no objeto são proibidas, e o número total de referências proeminentes é adicionado ao em-empilha o contador global. A destruição é atrasada até que a contagem global da referência esteja reduzida a zero. Em uma incorporação da invenção serviu à execução em máquinas de multiprocessor non-uniform do acesso de memória, contagem da referência de cada processador é alocado adicionalmente em uma região da memória principal que é fisicamente perto desse processador.