Что есть с потоком помимо стека

В процессе Linux каждый поток имеет свой собственный стек. Кроме того, что еще является локальным для каждого потока. Я читал такие вещи, как таблица распределения файлов и т. Д. Может ли кто-нибудь предоставить мне список вещей, относящихся к потоку, и того, как они расположены в памяти.

Во-вторых, я заметил, что когда я выделяю стек потоку (см. Код ниже), адрес первой переменной в функции потока каким-то образом занимает несколько байтов после выделенного мной адреса стека ( stackAddr ). Я думаю, это связано с тем, что вершина стека является конечным адресом выделенной памяти стека, поскольку разница в значении адреса локальной переменной и выделенного стека приблизительно равна размеру стека ( STACKSIZE ). Другими словами, похоже, что он растет снизу вверх.

pthread_attr_init( &attr[tid] );
stackAddr = malloc(STACKSIZE);
pthread_attr_setstack( &attr, stackAddr, STACKSIZE );
7
задан MetallicPriest 14 November 2011 в 15:20
поделиться