Suspender, resumir processo

7 respostas
D

Eu preciso suspender e resumir um processo do Windows que eu criei usando o Runtime.exec, no entanto até agora eu não consegui fazer isso, apenas matar o processo. Como eu faço para conseguir suspender e resumir o processo?

7 Respostas

ViniGodoy

Não existe a opção de “suspender e resumir” um processo.

Se seu sistema operacional dá suporte a isso, você pode chamar um comando específico também através do Runtime.exec. Nunca vi um que faça, pois isso também ia deixar aberto locks de regiões críticas e file handlers.

D

Então, meu professor falou que eu teria que instanciar o programa dentro da JVM, para poder fazer esse tipo de controle, no entanto eu não sei fazer isso, apenas instanciar fora da JVM, o que deixa o controle total pro Windows.

ViniGodoy

Você pode suspender e resumir Threads. Isso é, se elas forem parte do seu programa.
Aí sim, daria pra usar o wait e notify.

Seria isso?

D

Não, não é com threads, é com processo mesmo.

O que eu tenho que fazer é

Implementa o conceito de processo

Criar processos CPU-bound e IO-bound;

Suspender/resumir e eliminar processos;

Visualizar as mudanças de estado dos processos;

Além de gerenciar memória e escalonar os processos com prioridade.


Eu cheguei a criar um processo, no entanto eu não descobri como implementar o destroy(), como ele deu a opção de fazer usando processos do windows, eu optei por eles, no entanto não consegui avançar muito mais, o destroy funciona, mas suspender e resumir não, da erro.

ViniGodoy

Melhor confirmar com ele, mas acho que ele quer que você simule isso, como se sua aplicação fosse o sistema operacional.

Por que ele deve estar falando em você implementar um escalonador falso e provavelmente os algoritmos de time-sharing, como o round robin.

D

ViniGodoy:
Melhor confirmar com ele, mas acho que ele quer que você simule isso, como se sua aplicação fosse o sistema operacional.

Por que ele deve estar falando em você implementar um escalonador falso e provavelmente os algoritmos de time-sharing, como o round robin.


Sim, ele falou que dava pra simular, acho que foi justamente nessa parte. Simulando então, o JVM vai ter conhecimento do processo do Windows, no entanto mesmo eu mexendo nele (suspendendo e resumindo) não acontecerá nada com o processo do windows?

ViniGodoy

Na verdade, acho que você vai criar uma classe que representa um processo falso. E colocar métodos nela para dizer que seu escalonador está dando a ela o direito de processar.

Criado 14 de novembro de 2010
Ultima resposta 15 de nov. de 2010
Respostas 7
Participantes 2