Windows Internals, 6th Edition from Microsoft Press says that in Windows NT, each thread has 2 stacks: one used when running in user mode, and one used in kernel mode.
Why is this so? It seems that the user-mode stack could also be used while in a system call. Is there some advantage to this design?