Posso "hibernar" um programa?

17

Sim, eu sei que o hibernate geralmente se aplica a um computador. (Hiberne seu significado, economizando memória de programa em disco e restaurando-a de maneira consistente.)

No entanto, a hibernação de um programa pode ser muito útil. Suponha que eu queira jogar um jogo, mas alguns programas como o firefox, acrobat ocupam 500 milhões de memória, então eu quero liberá-lo. Fechar e iniciar pode consumir muito tempo, principalmente se os dados da sessão não puderem ser armazenados. Então, em vez disso, eu vou hiberná-los. Então, existe alguma maneira de eu hibernar um programa?

apoorv020
fonte
Qual sistema operacional você está usando?
Ian C.
1
Windows 7 de 64 bits. Também refiz a pergunta.
precisa saber é o seguinte
agradável melhoria para um SO ...
kokbira
2
Relacionado (mas sem respostas) superuser.com/questions/170434/…
Sathyajith Bhat

Respostas:

8

Há uma pergunta relacionada sobre isso no StackOverflow. É mais relacionado à programação, mas a principal resposta aceita explica por que o que você está tentando fazer é difícil e oferece uma alternativa viável.

Basicamente, execute seus aplicativos de 'negócios' em uma VM e pause / hiberne / feche-o quando quiser jogar.

Ƭᴇcʜιᴇ007
fonte
4

Embora este não seja um hibernar real , o processo pode ser suspenso. Parará imediatamente de usar ciclos da CPU, mas ainda estará usando memória. Felizmente, essa memória será trocada para o arquivo de paginação, se você iniciar qualquer aplicativo que consome muita memória posteriormente, portanto não é um problema real. O processo suspenso não pode sobreviver à reinicialização \ logoff, mas isso será suficiente para jogar um jogo.

Pergunta relacionada: Suspender / retomar um processo da maneira mais fácil?

Internamente, a suspensão do processo pode ser feita através de diferentes abordagens :

  • Par de funções SuspendThread e ResumeThread .

  • NtSuspendProcess função (não oficialmente documentada) que foi introduzida no Windows XP Sp0 e funciona em todas as versões do sistema desde então.

  • Depuração interface fornecida pela Microsoft, usando DebugActiveProcess e DebugActiveProcessStop funções. Quando um depurador se anexa a um processo remoto, todos os threads do destino são suspensos imediatamente até que o depurador dê um sinal para que eles sejam executados.

Há várias ferramentas disponíveis, que podem suspender um processo:

Além disso, o Monitor de Recursos ( Task ManagerPerformanceOpen Resource Monitor) no Windows Vista e superior pode suspender \ retomar processos:

Monitor de recursos

beatcracker
fonte
0

"Hibernar" um aplicativo não seria mais rápido do que apenas fechá-lo e reiniciá-lo, embora seu argumento sobre os dados da sessão seja válido. Em geral, não haveria muita ou nenhuma vantagem.

CarlF
fonte
5
De acordo com a lógica que você diz que a hibernação não seria mais rápida? Hibernar e restaurar um sistema operacional é mais rápido que uma reinicialização.
apoorv020
Pense no que é hibernar. Requer a cópia da imagem do programa no disco rígido e a cópia de volta. Fechar o programa e depois reiniciá-lo requer apenas a cópia do disco rígido. O Windows inicia muito lentamente, por razões que não conheço. Para outros sistemas operacionais, por exemplo, Linux, a hibernação e o despertar levam mais tempo do que apenas desligar e reiniciar, pelo menos em todos os meus sistemas em que experimentei. É conveniente, mas não rápido.
CarlF
Bem, iniciar alguns programas leva bastante tempo, especialmente o Firefox. Sem mencionar irritante também.
precisa saber é o seguinte
3
Closing the program and then restarting it only requires copying it from the hard disk. Você está esquecendo de adicionar o tempo necessário para que o programa volte ao estado em que estava. Por exemplo,
reabrindo várias
-2

Como você está no Windows, sempre pode criar duas contas de usuário e usar a função de troca rápida de conta no Windows e usar cada uma delas para diferentes conjuntos de aplicativos. Como o Windows praticamente hiberna, as outras visões se abrem no computador. Acho que sim.

TripingPC
fonte
2
A alternância entre contas de usuário no Windows 7 não hiberna ou de qualquer outra forma suspende a atividade na conta não ativa. Você pode provar isso por si mesmo tocando um áudio em uma conta e depois alternando para outra e observando que o áudio continua sendo reproduzido.
Eu digo Restabelecer Monica
Wellllllllll ..... na verdade ele pára de desenhar a tela.
djsmiley2k - vaca