This book is intended primarily for

practitioners engaged in the analysis

and design of computing systems.

Analysts and designers are extremely

interested in the performance character-

istics of computing systems, especially

response times, throughputs, queue

lengths, and utilizations. Although steady-

state characteristics can be well under-

stood using queueing theory (e.g., as is

done with capacity planning), prac-

titioners lack the conceptual tools to

address the *dynamics of resource man-
agement*, especially changes in workloads and configuration. The focus of this

book is to distill and make accessible the essentials of control theory needed by

computing practitioners to address these dynamics.

The dynamics of computing systems are important considerations in ensuring

the profitability and availability of many businesses. For example, e-commerce

sites frequently contend with workloads that change so rapidly that service

degradations and failures result. Experienced designers know that leaving the

management of dynamics to operators is not acceptable because many changes

occur too rapidly for humans to be able to respond in a timely manner. As a result,

ad hoc automation is frequently deployed with surprising results, such as wild

oscillations or very slow responses to changes in workloads. Our belief is that by

understanding the essential elements of control theory, computing practitioners

can design systems that adapt in a more reliable manner.

A second audience for this book comprises researchers in the fields of computer

science and controls. Today, very few computer science researchers have

familiarity with control theory. As a result, many resource management schemes

fail to address concepts that are well understood in control, such as the effect of

measurement and system delays on stability and other aspects of control performance.

Similarly, researchers in control fields rarely appreciate the issues particular

to computing systems, such as considerations for policy-based management,

service-level agreements, and the implications of modifying computing systems

to provide sensors and actuators that are appropriate for control purposes. To

address this second audience, we show through numerous examples how control

theoretic techniques can be applied to computer systems, and describe the many

challenges that remain.

Much effort has been devoted to making this book accessible to computer

scientists. First, the examples focus on computer systems and their components,

such as Web servers, caching, and load balancing. Second, our approach to modeling

draws heavily on insights from queueing systems and their dynamics (as

opposed to Newton’s laws). Third, we focus almost entirely on discrete-time

systems rather than continuous-time systems (as is traditional in controls books).

There are two reasons for this: (1) performance measurements of computer systems

are solicited on a sampled basis, which is best described by a discrete-time

model; and (2) computer scientists are quite comfortable thinking in terms of

difference equations, and much less comfortable thinking in terms of differential

equations.

**Prerequisites**

The book assumes background in series and their convergence, all of which

is common in an undergraduate engineering and mathematics curriculum. Some

prior exposure to Z-transforms (or Laplace transforms) is also of benefit, although

not required. Also helpful is experience with developing statistical models, especially

using linear regression.

Having appropriate software tools is immensely helpful in developing statistical

models as well as for control analysis and design. Throughout the book,

we use MATLAB^{®}, a very powerful analysis environment that is arguably the

standard for control engineers^{1}. In Appendix E we provide an introduction to

MATLAB (including the Control System Toolbox). However, access to MATLAB is

not required for the vast majority of the book, only the optional section (indicated

by *) at the end of each chapter.

**Outline of the Book**

The book is divided into three parts. Part I, Background, consists of one chapter

introducing the control problem and giving an overview of the area. Part II,

Modeling, contains six chapters and covers modeling of dynamic systems in

discrete time using difference equations, Z-transforms, block diagrams, transfer

functions, and transient analysis. The focus is on single-input, single-output

first- and second-order systems, although Chapter 7 is devoted to multiple-input,

multiple-output (MIMO) systems. Part III, Control, has four chapters. In the

first chapter we describe proportional control and pole placement design. In the

next chapter we consider integral and differential control as well, including PID

(proportional–integral–differential) control tuning techniques. In the third chapter

we address state-space feedback control, including the application of pole placement

to MIMO systems and design using linear quadratic regulators. In the last

chapter we discuss a variety of advanced topics, such as adaptive control, gain

scheduling, minimum-variance control, and fuzzy control. In all three parts,

examples are used extensively to illustrate the problems addressed, the techniques

employed, and the value provided by the techniques.

Several appendixes are provided to make the book more useful as a reference

and more self-contained. Appendix A summarizes the mathematical notation

used, Appendix B lists key acronyms, and Appendix C contains key results

developed in the book. Anothertwo appendixes contain supplemental material.

Appendix D describes results from linear algebra that are used in Chapters 7 and

10. In Appendix E we provide an overview of the facilities in MATLAB for doing

control analysis and design along with a brief MATLAB tutorial.

Considerable thought was given to the choice of examples.We sought examples

that both aid in communicating key concepts and provide a basis for modeling

systems encountered in practice (especially based on our experience at IBM and

that of colleagues elsewhere in industry and academia). Our most basic example is

a single-server queueing system with exponential interarrival and service times and

a finite-size buffer (*M */ *M */ 1 / *K*), which provides a means to study the dynamics

of admission control and proportional scheduling. The e-mail example based on

the IBM Lotus^{®} Domino^{TM} Server^{2} provides insight into challenges faced in

system identification. The Apache HTTP Server^{3} example serves as a vehicle for

studying MIMO control. Additional examples include caching with differentiated

service and load balancing.

_________________________________

^{1}MATLAB is a registered trademark of The MathWorks, Inc.

^{2}IBM Lotus Domino is a registered trademark of IBM Corporation.

^{3}Apache is a trademark of The Apache Software Foundation and is used with permission.