Two approaches to the improvement of the performance of client-server syste
ms, multithreading and scheduling of servers, are investigated. Both of the
se approaches are observed to have a significant impact on system performan
ce. The use of multithreading improves throughput characteristics of system
s, whereas the deployment of appropriate scheduling strategies at servers c
an produce a significant improvement in mean client response limes. Based o
n a simulation model a number of basic questions that are important in the
context of scheduling on nonmultithreaded, as well as multithreaded, system
s are analyzed. Two important factors, monopolization of servers by large r
equests and software bottlenecks, are observed to be important in the conte
xt of scheduling on client-server systems. Both server scheduling, as well
as multithreading, can be used to control these effects and lead to a highe
r system performance. Scheduling policies based on request characteristics
are observed to perform well. A new request characteristic that is useful i
n the scheduling of client-server systems in the presence of software bottl
enecks is proposed. Selection of both the server process, as well as the th
read within the server, is required when multiple server, are co-located on
the same CPU. A comparison between two scheduling approaches; single level
and two level is presented in the paper. The results of this research are
useful primarily in the design of operating systems for client-server syste
ms and are also of interest to system designers and users. (C) 1999 Academi
c Press.