mweerden: NT è stato progettato per il multiutente sin dal primo giorno, quindi non è proprio un motivo. Tuttavia, hai ragione sul fatto che la creazione di processi gioca un ruolo meno importante su NT che su Unix poiché NT, a differenza di Unix, preferisce il multithreading al multiprocessing.
Rob, è vero che fork è relativamente economico quando viene usato COW, ma in realtà fork è per lo più seguito da un exec. E anche un dirigente deve caricare tutte le immagini. Discutere le prestazioni del fork quindi è solo una parte della verità.
Quando si discute della velocità di creazione del processo, è probabilmente una buona idea distinguere tra NT e Windows / Win32. Per quanto riguarda NT (cioè il kernel stesso), non credo che la creazione di processi (NtCreateProcess) e la creazione di thread (NtCreateThread) siano significativamente più lente rispetto a Unix medio. Potrebbe succedere un po 'di più, ma qui non vedo il motivo principale della differenza di prestazioni.
Se guardi Win32, tuttavia, noterai che aggiunge un bel po 'di overhead alla creazione del processo. Per uno, richiede che il CSRSS riceva una notifica sulla creazione del processo, che coinvolge LPC. Richiede almeno il caricamento aggiuntivo di kernel32 e deve eseguire una serie di elementi di lavoro di contabilità aggiuntivi da eseguire prima che il processo sia considerato un processo Win32 a tutti gli effetti. E non dimentichiamoci di tutto il sovraccarico aggiuntivo imposto dall'analisi dei manifesti, controllando se l'immagine richiede uno shim di compatibilità, controllando se le politiche di restrizione del software si applicano, yada yada.
Detto questo, vedo il rallentamento generale nella somma di tutte quelle piccole cose che devono essere fatte oltre alla creazione grezza di un processo, spazio VA e thread iniziale. Ma come detto all'inizio, a causa del vantaggio del multithreading rispetto al multitasking, l'unico software che risente seriamente di questa spesa aggiuntiva è il software Unix con porting scadente. Sebbene questa situazione cambi quando software come Chrome e IE8 riscoprono improvvisamente i vantaggi del multiprocessing e iniziano ad avviare e smontare frequentemente processi ...