This preview shows page 1. Sign up to view the full content.
Unformatted text preview: far the simplest to write and debug. Processes provide a clean sharing model where descriptors are shared and user address spaces are not. As long as we remember to reap zombie children and close the parent’s connected descriptor each time we create a new child, the children run independently of each other and the parent and can be debugged in isolation. Process-based designs do have disadvantages though. If a particular service requires processes to share state information such as a memory-resident ﬁle cache, performance statistics that are aggregated across all processes, or aggregate request logs, then we must use explicit IPC mechanisms such as FIFO’s, System V shared memory, or System V semaphores (none of which are discussed here). Another disadvantage is that process-based servers tend to be slower than other designs because the overhead for process control and IPC is relatively high. Nonetheless, the simplicity of process-based designs provides a powerful attraction. Practice Problem 12.5:
After the parent closes the connected descriptor in line 39 of the concurrent server in Figure 12.34, the child is still able to communicate with the client using its copy of the descriptor. Why? Practice Problem 12.6:
If we were to delete line 36 of Figure 12.34 that closes the connected descriptor, t...
View Full Document
This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.
- Spring '10
- The American