the reason you use a multi-process web server is for robustness in the face of failure. on a multithreaded server one thread can wipe out all the rest when it crashes the server. in a multi-process server only the offending process goes down. as far as speed is concerned most multi-process servers allow you to spawn at the beginning any number of processes to handle requests so speed differences on a running system are not much different between multi-threading and multi-process servers.
16.what locking constructs are available on platform x (nt = semaphore, critical section, mutex), what are the main differences between them?
17.familiar with multi-reader, single writer locks?
18.how could you implement that given a simple binary semaphore os construct?
19.how does this implementation behave? can it starve readers? starve writers?