From owner-freebsd-hackers Sun Aug 11 23:49:28 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id XAA04364 for hackers-outgoing; Sun, 11 Aug 1996 23:49:28 -0700 (PDT) Received: from relay.hp.com (relay.hp.com [15.255.152.2]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id XAA04359 for ; Sun, 11 Aug 1996 23:49:27 -0700 (PDT) Received: from fakir.india.hp.com by relay.hp.com with ESMTP (1.37.109.16/15.5+ECS 3.3) id AA271432558; Sun, 11 Aug 1996 23:49:23 -0700 Received: from localhost by fakir.india.hp.com with SMTP (1.37.109.16/15.5+ECS 3.3) id AA091782688; Mon, 12 Aug 1996 12:21:28 +0530 Message-Id: <199608120651.AA091782688@fakir.india.hp.com> To: freebsd-hackers@freebsd.org Subject: FreeBSD vs. NT Stability Date: Mon, 12 Aug 1996 12:21:27 +0530 From: A JOSEPH KOSHY Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Sometime back there was a posting comparing the behaviour of FreeBSD and NT wrt a test program that created lots of processes and stressed the OS. (I've unfortunately lost the original mails). It struck me that the NT version of the program was using `CreateThread()' while the Unix (FreeBSD) version was using `fork()'. Now I don't know much about NT internals, but it seems to me that the NT approach wouldn't lead to as many process context switches since the threads would be sharing the same address space. Therefore the load on the VM system would be no different from having 1 process. The poster reported a slowdown on NT with many threads but no crashes, which seems logical since multiple threads would consume CPU time, and not placing a load on the VM would mean it wouldn't crash :-). So my question is: how does NT behave when it has to schedule between a large number of processes each with its own process context, VM, page tables etc? Conversely how does the unix program behave when linked with -lpthreads and with `fork()' replaced with `pthread_create()'? Koshy My personal opinions only.