Avatar billede rhandersen Nybegynder
24. april 2006 - 17:57 Der er 7 kommentarer

Resourcekrævende program

En ven har påstået at jeg ikke kan lave et program der kan få hans computer til at gå ned, det har jeg så tænkt mig at prøve på.

Er der nogen der har ideer til hvordan man kan bruge alle ressourcer med et simpelt c++ program?

Mvh RHAndersen
Avatar billede driis Nybegynder
24. april 2006 - 18:56 #1
Det simpleste resource-brænder program i C ville være:
int main()
{
  while(true);
}

Jeg skal ikke kunne sige hvor godt Windows' scheduler vil håndtere det, men du kan jo prøve.
Avatar billede driis Nybegynder
24. april 2006 - 18:58 #2
... og hvis det ikke er "slemt nok", kunne næste skridt være at starte nogle hundrede tråde, der alle kører koden herover.
Avatar billede bertelbrander Novice
24. april 2006 - 19:49 #3
Du kan lave et program der:
Sætter sin egen prioritet til REALTIME
Starter en tråd
allokerer noget hukommelse og bruger det.
Kalder GetDC et antal gange
Åbner nogle filer
Laver nogle pop-up (MessageBox(...))
Starter sig selv.

Efter nogen tid vil windows nok forekomme en anelse sløv, men om det kan defineres som "at få computeren til at gå ned" er nok tvivlsomt.
Avatar billede tuxic Nybegynder
24. april 2006 - 20:13 #4
Mon ikke at man enten skal finde en bug i windows (2000 eller nyerere) eller skrive en devicedriver der fucker kernen op. På linux må det være lige til. (Kernen selv er jo tilgængelig som open source).

For moderne operativ systemer må det vel anses for en bug hvis et user mode program kan rive operativ systemet omkuld.

(At det ikke svarer så hurtigt som det ellers kunne er vel ikke at operativ systemet er gået ned)
Avatar billede maqhem Nybegynder
24. april 2006 - 21:12 #5
Få den til at lave som bertelbrander siger, og få den til at lave en html-fil, med en kode, der åbner sig selv - og ÅBNER denne fil med programmet ;)
Avatar billede rhandersen Nybegynder
24. april 2006 - 21:37 #6
Vil en af jer prøve at lave et eksempel på kode?
Avatar billede bertelbrander Novice
24. april 2006 - 22:54 #7
Et simpelt eksempel.
Det kan kompileres, men jeg har, af indlysende grunde, ikke forsøgt at køre det.

#include <windows.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <fstream>

using namespace std;

DWORD WINAPI ThreadFunc(void *)
{
  while(1)
  {
      char *p = new char [1024];
      memset(p, 0, 1024);
      GetDC(0);
      MessageBox(0, "Hello", "Hello", MB_OK);
  }
  return 0;
}

int main(int, char *argv[])
{
  system(argv[0]);
  srand((unsigned int )time(0));
  while(1)
  {
      DWORD Id;
      HANDLE Thread = CreateThread(0, 0, ThreadFunc, 0, 0, &Id);
      SetThreadPriority(Thread, THREAD_PRIORITY_TIME_CRITICAL);
      MessageBox(0, "Hello", "Hello", MB_OK);
      stringstream SS;
      SS << "File " << rand();
      ofstream *F = new ofstream(SS.str().c_str());
      if(*F)
        *F << "Hello " << endl;
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester