A lista de tarefas é armazenada em uma lista circular duplamente vinculada; cada nó é um struct task_struct
. A estrutura da lista está especificamente no campo tasks
. Não há nenhum objeto separado na memória para representar a lista: cada nó contém ponteiros para o nó anterior e seguinte ( some_task->tasks.prev
e some_task->tasks.next
).
Esta estrutura de dados não possui um tamanho máximo inerente. O fator limitante no que diz respeito ao número de tarefas será a memória disponível para estruturas de tarefas e outros recursos consumidos pelas tarefas, ou o número de identificadores de processo (mais precisamente, grupo de tarefas), que são limitados a 15 bits por padrão.
Leia o capítulo 5 do Desenvolvimento do kernel do Linux ou capítulo 11 do Dispositivo do Linux Drivers , para mais informações sobre esta estrutura de dados no kernel do Linux.