2.3. Estrutura da Lista Dinâmica

O sistema operacional requer um conjunto de informações sobre cada processador do sistema. No Red Hat Enterprise Linux 5, este conjunto de informações foi atribuído a uma matriz de tamanho fixo na memória. Informações sobre cada processador individual foi obtido por indexação nessa matriz. Este método é rápido, fácil e simples para sistemas que continham relativamente poucos processadores.
No entanto, como o número de processadores de um sistema cresce, este método produz uma sobrecarga significativa. Como a matriz de tamanho fixo na memória é um recurso único, compartilhado, pode se afunilar à medida que mais processadores tentam acessá-lo ao mesmo tempo.
Para resolver isso, o Red Hat Enterprise Linux 6 utiliza uma estrutura de lista dinâmica para obter informações do processador. Isso permite que a matriz utilizada para informações sobre o processador seja alocada dinamicamente: se há apenas oito processadores no sistema, então apenas oito entradas são criadas na lista. Se existirem processadores 2048, então 2048 são criadas entradas bem.
A estrutura de lista dinâmica permite bloqueio mais refinado. Por exemplo, se a informação precisa ser atualizado ao mesmo tempo para os processadores de 6, 72, 183, 657, 931 e 1546, isso pode ser feito com maior paralelismo. Situações como esta, obviamente, ocorrem com muito mais freqüência em sistemas de grande porte e de alto desempenho do que em sistemas pequenos.