On 24/09/18 00:46, Raymond Wan wrote:
Hmmmmmm, I'm way out of my comfort zone but I am curious about what happens. Unfortunately, I don't think I'm able to read kernel code, but someone here (https://stackoverflow.com/questions/31946854/how-does-sigstop-work-in-linux-kernel) seems to suggest that SIGSTOP and SIGCONT moves a process between the runnable and waiting queues.
SIGSTOP is a non-catchable signal that immediately stops a process from running, and so it will sit there until either resumed, killed or the system is rebooted. :-) It's like doing ^Z in the shell (which generates SIGTSTP) but isn't catchable via signal handlers, so you can't do anything about it (same as SIGKILL). Regarding memory, yes its memory is still used until the process either resume and releases it or is killed. This is why if you want to do preemption in this mode you'll want swap so that the kernel has somewhere to page out the memory it's using to for the incoming process(es). Hope that helps! All the best, Chris -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC