Note that this question is different than, but related to, "How do I suspend my computer?" It is also different than, but related to, questions about the "session management" capability in popular Linux desktop platforms.
Here's the scenario: It takes me 10 minutes to get my programming environment all set up the way I want it. I write a bunch of code. I go to sleep. The next morning I have to do something other than write code. Maybe it's compose a presentation. My coding tools are hogging a bunch of system resources, but I don't want to terminate them because they're a pain to set up again. Is there a way to take an application or group of applications and suspend them to disk in a kind of "live session" that I can then "unfreeze" later?
Note that this is a general problem; replace "programming environment" with "running a giant simulation" (or whatever) in the previous paragraph. It seems like this sort of thing should exist but maybe I just don't know what it's called. That, or there are some very good technical reasons for why it doesn't exist. I'm interested to hear about either.
Respondents should focus primarily on Linux desktop platforms. Though if, for example, this capability exists on Windows and not on Linux as a result of fundamental differences between them, I'd be interested to hear about it.
PS - Sorry for the namespace collisions in the problem description. Are there better terms than "suspend" and "session?"