mweerden: NT telah dirancang untuk multi-pengguna sejak hari pertama, jadi ini sebenarnya bukan alasan. Namun, Anda benar tentang pembuatan proses yang memainkan peran yang kurang penting di NT daripada di Unix karena NT, berbeda dengan Unix, lebih menyukai multithreading daripada multiprocessing.
Rob, memang benar bahwa fork relatif murah saat COW digunakan, tapi faktanya, fork lebih banyak diikuti oleh seorang exec. Dan seorang eksekutif harus memuat semua gambar juga. Oleh karena itu, membahas kinerja garpu hanyalah sebagian dari kebenaran.
Saat membahas kecepatan pembuatan proses, mungkin ada baiknya untuk membedakan antara NT dan Windows / Win32. Sejauh NT (yaitu kernel itu sendiri) berjalan, saya tidak berpikir pembuatan proses (NtCreateProcess) dan pembuatan utas (NtCreateThread) secara signifikan lebih lambat seperti pada Unix rata-rata. Mungkin ada sedikit lebih banyak hal yang terjadi, tetapi saya tidak melihat alasan utama perbedaan kinerja di sini.
Jika Anda melihat Win32, bagaimanapun, Anda akan melihat bahwa itu menambahkan sedikit overhead untuk proses pembuatan. Pertama, CSRSS harus diberi tahu tentang pembuatan proses, yang melibatkan LPC. Ini membutuhkan setidaknya kernel32 untuk dimuat tambahan, dan itu harus melakukan sejumlah item pekerjaan pembukuan tambahan yang harus dilakukan sebelum proses tersebut dianggap sebagai proses Win32 lengkap. Dan jangan lupa tentang semua overhead tambahan yang dikenakan oleh penguraian manifes, memeriksa apakah gambar memerlukan shim kompatibilitas, memeriksa apakah kebijakan pembatasan perangkat lunak berlaku, yada yada.
Yang mengatakan, saya melihat perlambatan keseluruhan dalam jumlah semua hal kecil yang harus dilakukan selain pembuatan mentah dari suatu proses, ruang VA, dan utas awal. Tetapi seperti yang dikatakan di awal - karena lebih menyukai multithreading daripada multitasking, satu-satunya perangkat lunak yang sangat terpengaruh oleh biaya tambahan ini adalah perangkat lunak Unix yang di-porting dengan buruk. Meskipun situasi ini berubah ketika perangkat lunak seperti Chrome dan IE8 tiba-tiba menemukan kembali manfaat multiprosesing dan mulai sering memulai dan membongkar proses ...