mweerden: NT ha sido diseñado para múltiples usuarios desde el primer día, por lo que esta no es realmente una razón. Sin embargo, tiene razón en que la creación de procesos juega un papel menos importante en NT que en Unix ya que NT, a diferencia de Unix, favorece el multiproceso sobre el multiprocesamiento.
Rob, es cierto que fork es relativamente barato cuando se usa COW, pero de hecho, el fork es seguido principalmente por un ejecutivo. Y un ejecutivo también tiene que cargar todas las imágenes. Por lo tanto, discutir el rendimiento de la bifurcación es solo una parte de la verdad.
Cuando se habla de la velocidad de creación de procesos, probablemente sea una buena idea distinguir entre NT y Windows / Win32. En lo que respecta a NT (es decir, el núcleo en sí), no creo que la creación de procesos (NtCreateProcess) y la creación de subprocesos (NtCreateThread) sea significativamente más lenta que en el Unix promedio. Puede que haya un poco más en marcha, pero no veo la razón principal de la diferencia de rendimiento aquí.
Sin embargo, si observa Win32, notará que agrega bastante sobrecarga a la creación del proceso. Por un lado, requiere que se notifique al CSRSS sobre la creación del proceso, lo que implica LPC. Requiere que al menos kernel32 se cargue adicionalmente, y tiene que realizar una serie de elementos de trabajo de contabilidad adicionales antes de que el proceso se considere un proceso Win32 completo. Y no nos olvidemos de toda la sobrecarga adicional impuesta por el análisis de manifiestos, verificando si la imagen requiere una corrección de compatibilidad, verificando si se aplican las políticas de restricción de software, yada yada.
Dicho esto, veo la desaceleración general en la suma de todas esas pequeñas cosas que deben hacerse además de la creación sin procesar de un proceso, espacio VA y subproceso inicial. Pero como se dijo al principio, debido a que se privilegia el subproceso múltiple sobre la multitarea, el único software que se ve seriamente afectado por este gasto adicional es el software Unix mal adaptado. Aunque esta situación cambia cuando software como Chrome e IE8 redescubren repentinamente los beneficios del multiprocesamiento y comienzan a iniciar y desmontar procesos con frecuencia ...