Kernel and user stack data is stored in relocatable memory. A kernel
thread or a user thread can move its own stack data by creating a
relocation request and adding the relocation request to a queue of a
dedicated thread. The dedicated thread performs the relocation on behalf
of the requesting kernel or user thread.