Они смешанные. Однако это зависит от реального языка программирования / компилятора. Я могу изобразить компилятор, выделяющий пространство для локальной переменной в куче и сохраняющий указатель на хранилище в стеке.
В каждом процессе по одному стеку на каждый поток. Следовательно, например, процесс с 20 потоками имеет 20 независимых стеков.