Problems of Chapter 3 - Processes to Distributed Systems

Andrew S. Tanenbaum - Prentice Hall - ISBN 0-13-219908-4


1. In this problem you are to compare reading a file using a single-threaded file server and a multithreaded server. It takes 15 msec to get a request for work, dispatch it, and do the rest of the necessary processing, assuming that the data needed are in a cache in main memory. If a disk operation is needed, as is the case one-third of the time, an additional 75 msec is required, during which time the thread sleeps. How many requests/sec can the server handle if it is single threaded? If it is multithreaded?

2. Would it make sense to limit the number of threads in a server process?

3. In the text, we described a multithreaded file server, showing why it is better than a single-threaded server and a finite-state machine server. Are there any circunstances in which a single-threaded server might be better? Give an example.

4. Statically associating only a single thread with a lightweight process is not such a good idea. Why not?

5. Having only a single lightwight process per process is also not such a good ideia. Why not?

6. Describe a simple scheme in shich there are as many lightweight processes as there are runnable threads.

7. Proxies can support replication transparency by invoking each replica, as explained in the text. Can (the server side of) an object be subject to a replicated invocation?

8. Constructing a concurrent server by spawning a process has some advantages and disadvantages compared to multithreaded servers. Mention a few.

9. Sketch the designm of a multithreaded server that supports multiple protocols using sockets as its transport-level interface to the underlying operation system.

10. How can we prevent an application from circumventing a window manager and thus being able to completely mess up a screen?

11. Explain what an object adapter is?

12. Mention some design issues for an object adapter that is used to support persistent objects.

13. Change the procedure "thread_per_object" in the example of the object adapters, so that all objects under control of the adapter are handled by a single thread.

14. Is a server that maintains a TCP/IP connection to a client stateful or stateless?

15. To what extent does Java RMI rely on code migration?

16. Where do agent communication languages (ACLs) fit into the OSI Model?


Luís Fernando Faina
Last modified: Wed Nov 12 17:08:27 2003