Я полагаю, что ваш вопрос касается расположения памяти процесса. Если это так, Linux и Solaris процессы имеют следующие разделы:
Text
Data
BSS
Heap
MMS (memory mapping segment)
Stack
Массив памяти между Heap и стека, так называемый Memory Mapping сегмента, отвечает за общий отображение памяти. Да и не только. Общие библиотеки, открытые файлы также отображаются в этот раздел памяти.
Вы можете изучить расположение памяти процесса на Linux с помощью ртара команды или чтение карты файла процесс /Proc // отображает. Вот фрагмент макета памяти процесса DB2 рассмотренного на машине Linux с помощью утилиты ртар (посмотреть на стек и Шмид, общей памяти ID, записи):
0000000000400000 52K r-x-- /opt/ibm/db2/bin/db2vend
000000000060d000 4K rwx-- /opt/ibm/db2/bin/db2vend
000000000c33e000 132K rwx-- [ anon ]
0000000200000000 35520K rwxs- [ shmid=0x57a58007 ]
000000323f200000 112K r-x-- /lib64/ld-2.5.so
and more more more shared libraries
00002b55bb45b000 4K r-x-- /lib64/libnss_files-2.5.so
00002b55bb45c000 4K rwx-- /lib64/libnss_files-2.5.so
00002b55bb45d000 39252K rwxs- [ shmid=0x57a50006 ]
00002b55bdab2000 1152K rwx-- [ anon ]
00007ffffaf35000 84K rwx-- [ stack ]
ffffffffff600000 8192K ----- [ anon ]
Да, это вдвойне связанный список (STRUCT LIST_HEAD задачи;) Но планировщик CFS использует RB-дерево для поддержания runqueue – Sasi