Fala galera meu professor de Sistemas Operacionais lançou o seguinte desafio:
Criar um ForkBomb que esgote o S.O., até ai tudo bem....o problema foi as perguntas que tem que responder:
1) É possivel saber quanto processos foram de fato criados antes do esgotamento do S.O.?
2) É possivel o processo reverter a situação após esgotamento do S.O.?
3) Que outras informações a teu processo poderá lhe fornecer?
4) Como seria possível o processo garantir que apenas um instancia de si mesmo esteja sendo executada?
Bom criei um laço for() chamando a função shellexecute() um programa qualquer até que emtupa o S.O. de processos derrubando o mesmo, e dentro do laço for a função fprintf() gravando em um arquivo texto a quantidades de processos que foram abertos sendo assim quando o S.O. cair vou ter a qtde de processos que foram necessários.
Segue o código laço for() de 10 apenas para teste:
#include <conio.h>
#include <Windows.h>
int main(int argc, char *argv[])
{
FILE *arq;
int i,cont=0;
int result;
arq = fopen("teste.txt", "wt"); // Cria um arquivo texto para gravação
if (arq == NULL) // Se nào conseguiu criar
{
printf("Problemas na CRIACAO do arquivo\n");
}fprintf(arq,"Desenvolvido por: Fabio RA: xxxxxxxxxx\nFundamento de Sistemas Operacionais: ATPS - ForkBomb\n\n");
fprintf(arq,"Mostrando quantos Processos foram necessários para seu sistema ir pro saco!!\n");
fprintf(arq,"============================================================================\n\n");
for (i = 1; i<=10;i++)
{
ShellExecute( NULL,"open","iexplore.exe","","",SW_SHOWNORMAL);
result = fprintf(arq,"Processo: %d\n",i);
if (result == EOF)
printf("Erro na Gravacao\n");
}
fprintf(arq,"\n******************************\nTotal de Processos: %d",i-1);
fclose(arq);
system("PAUSE>>null");
}
Será que essa instrução vai derrubar o Windows (Colocando um laço infinito)?
Será que isso resolve meu problema para a pergunta 1?
E em questão as outras perguntas alguém pode me ajudar?
Pergunta
FabioArgenton
Fala galera meu professor de Sistemas Operacionais lançou o seguinte desafio:
Criar um ForkBomb que esgote o S.O., até ai tudo bem....o problema foi as perguntas que tem que responder:
1) É possivel saber quanto processos foram de fato criados antes do esgotamento do S.O.?
2) É possivel o processo reverter a situação após esgotamento do S.O.?
3) Que outras informações a teu processo poderá lhe fornecer?
4) Como seria possível o processo garantir que apenas um instancia de si mesmo esteja sendo executada?
Bom criei um laço for() chamando a função shellexecute() um programa qualquer até que emtupa o S.O. de processos derrubando o mesmo, e dentro do laço for a função fprintf() gravando em um arquivo texto a quantidades de processos que foram abertos sendo assim quando o S.O. cair vou ter a qtde de processos que foram necessários.
Segue o código laço for() de 10 apenas para teste:
Será que essa instrução vai derrubar o Windows (Colocando um laço infinito)?
Será que isso resolve meu problema para a pergunta 1?
E em questão as outras perguntas alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.