The task list is stored in a circular doubly linked list; each node is a struct task_struct. The list structure is specifically in the tasks field. There's no separate object in memory to represent the list: each node contains pointers to the previous and next node (some_task->tasks.prev and some_task->tasks.next).
This data structure doesn't have an inherent maximum size. The limiting factor as far as the number of tasks is concerned will be either the available memory for tasks structures and other resources consumed by the tasks, or the number of process (more precisely, task group) identifiers, which are limited to 15 bits by default.
Read chapter 5 of Linux Kernel Development, or chapter 11 of Linux Device Drivers , for more information on this data structure in the Linux kernel.
sizeof(struct task_struct)bytes, but that includes the nodes and all other data. Or did you mean the maximum length of the list? Then the list structure isn't a limiting factor, the limiting factor would be either the limit on PIDs (only 15 bits by default) or the available memory. – Gilles Apr 17 '11 at 12:21