Avatar billede sk-man Nybegynder
27. december 2002 - 13:52 Der er 6 kommentarer og
1 løsning

Timing

Kan det passe at det tager det tager doppelt så langt tid at skifte processer som det tager at oprette en process med fork()?

Jeg har lavet lidt timing og får at et fork tager 0.55 ms og jeg får en switch tid på ca. 1.07 ms.

Simon
Avatar billede soreno Praktikant
27. december 2002 - 13:59 #1
Ja.

Oprettelse af en process tager længere tid end at lave en ny tråd.
Avatar billede sk-man Nybegynder
27. december 2002 - 14:03 #2
Jeg er med på at det tager længere tid at oprette en process da der skal laves nyt adressespace m.m., men tager det længere tid at skifte ml. to processer end det tager at oprette en process?
Avatar billede sk-man Nybegynder
27. december 2002 - 14:04 #3
Ved skift skal der jo ikke oprettes nyt adressespace, der skal vel kun flyttes rundt på registre...
Avatar billede soreno Praktikant
27. december 2002 - 14:09 #4
"tager det længere tid at skifte ml. to processer end det tager at oprette en process?"

Det tror jeg ikke der findes et endegyldigt svar på.
Jeg vil formode det afhænger af implementeringen af process manageren.

Hvilket Operativ System snakker vi om ?
Avatar billede sk-man Nybegynder
27. december 2002 - 14:13 #5
UNIX

Jeg måler tiden af en fork ved at lave en masse af dem og så tage et gennemsnit.
Switch tiden måler jeg ved at få en masse processer til at køre en funktion som jeg ved hvor langt tid tager, ug ud fra dette kan jeg beregne hvor langt tid det tager at skifte process (forudsat at der ikke køre andre processer på computeren)
Avatar billede mfalck Praktikant
28. februar 2003 - 23:45 #6
jeg kan erindre noget fra Tannembaums MOS-bog om at process-skifte betyder at cachen på processoren bliver flushed (for at sikre at data skrives), hvilket vil sige at processoren skal hente data fra systemhukommelsen. Jeg kan ikke lige overskue om det samme gør sig gældende for oprettelse af en ny process - f.eks kunne man forestille sig at den blot bliver lagt i køer for kørende processer og så bruger processeren først tid på at initialisere processen når den får en time-slice.

Men igen det kommer nok som soreno siger an på hvilket operativ-system du taler om - unix er en paraply-betegnelse som bl.a. dækker over linux, *bsd, solaris, hp-ux. Processmanageren er meget forskellig i disse. F.eks. er der jo udskiftet processmanager fra 2.4 -> 2.5 hvilket har betydet væsenlige hastighedsforbedringer i visse (io-kritiske, mener jeg) sammenhænge.
Avatar billede sk-man Nybegynder
23. oktober 2003 - 10:40 #7
Jeg må hellere lukke spørgsmålet
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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