Most locking, that is really effective, like mutex, relies on the hardware, which includes atomic instructions that won't allow data corruption on a write request. MSFT can't do that, because they don't write NT for any specific machine. However, NT is written to run mostly on PC's. PC's aren't powerful enough for enterprise systems
NT synch objects (mutexes, critical sections, semaphores, etc.) do use the x86 atomic InterlockedIncrement instructions. There are other optimizations as well. The argument is specious, Solaris runs on both x86 and SPARC and NT runs on x86 and Alpha. Both use conditional compiles to maximize code re-use and minimize platform dependencies.
I find it hard to believe fork()'ing in solaris will not cause kernel code to execute. Your pid-for-thread makes no sense either, as new pids (PROCESS IDs!) are not created for threads.
The point is, the only companies that have any business writing operating systems software for enterprise systems are those who manufacture the hardware to go with it.
Ahh, good old Apple-style thinking! It would have been interesting if Sun had bought Apple last year...
Parik Rao (disclaimer : ex MSFT'ie) |