La respuesta depende principalmente de si la CPU tiene una unidad de administración de memoria. Si hay uno presente, entonces el sistema operativo puede asignar dinámicamente la memoria a un subproceso / proceso según sea necesario hasta que se agoten los recursos de la memoria. El subproceso / proceso no tiene idea de cómo se está asignando la memoria física; solo cree que tiene acceso al espacio completo de direcciones, y el sistema operativo administra el respaldo físico de este espacio de direcciones virtuales como se requiere en el fondo.
Si no hay una unidad de administración de memoria (como en sistemas integrados pequeños), normalmente deberá especificar la cantidad de memoria asignada para la pila de antemano (en el momento de la compilación o cuando se inicie el subproceso). Incluso puede emular, hasta cierto punto, el funcionamiento de una unidad de gestión de memoria si lo desea, pero se complica rápidamente. En la práctica, la pila en sistemas integrados pequeños suele ser bastante pequeña y de buen comportamiento (sin grandes estructuras / matrices automáticas, sin recursión), por lo que la gestión de la pila no es un problema tan grande.