In constructing a server that provides services to clients via network, concurrent execution is desirable since most services entail some blocking operations. The concurrency can be carried in various types of execution model,i.e., process, thread, state transition models. Even within a single model, several computation structures are available, and thus it needs elaboration to assess the appropriateness of a server for an application.
In this thesis, we set up a few models for such a server to evaluate the performance of each model and server structures within that model. Since threads supported by kernel are quite different from those run in user space, we tested both of them as well as the state transition model. The state transition model needs only a single concurrency from operating system, and this it is independent of the platform on which it executes. We measured execution time of each model for a given workload which is generated by a number of clients connected by a LAN. The WEB service is chosen for a server since it involves some IO and network operation.
Our experiments shows that single thread model has comparative performance with multi-thread model and good adaptability, whereas multi-thread model exhibits stable operation. Consequently, single thread model is preferable approach where constructing simple and fast server.