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.

Reply via email to