sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #17233
Re: fork og wake-on-lan
Allan Frank wrote:
>
> Anders Melchiorsen wrote:
> >
> > Jeg skal dog ikke kunne sige, om cygwin har implementeret system()
> > anderledes med et kald, der er mere effektivt på NT (fordi fork() er
> > langsom under NT har de muligvis en optimeret udgave til dette
> > tilfælde? - jeg aner det ikke).
> >
> Det er fordi at fork() under cygwin kopierer _hele_ processen over i den
> nye proces. Det er nødvendigt da NT vist ikke har et native fork kald().
> Under linux kopieres kun de data der er nødvendige, hvilket ikke er
> mange hvis execlp() køres lige efter at være forket ud. Herved sparer
> linux den tid det tager at kopiere data og kode for den nye proces.
Faktisk kopieres kun selve Memory Managment strukturerne, idet der
bruges COW (Copy-On-Write).
Hele ideen med fork(), eller fork()+exec(), istedet for en spawn() som
man ser i mange andre systemer (NT, AmigaOS oa.) er lidt af en
geni-streg, selvom den kræver tilvænding hvis man kommer fra et
ikke-Unix system. Man kan kun have beundring for Thompson.
Mvh Morten
References