Ah. In the Burroughs/Unisys architecture I was describing, there's no such thing as a
running application not having a valid stack. Well, gross hardware or OS errors might
result in that, but not user actions. A stack is the basis for all addressing that an
application task does, so if there's no stack, there's no running application.
Also, a user task cannot address above current top-of-stack or below bottom-of-stack --
there are bounds registers that enforce that. A user task also cannot mess with the stack
linkage words that store state, the return location, and the link to the prior stack
frame, since those words are managed by the hardware and protected as non-writable with
memory tags.