CS 547: Computer System Modeling Fundamentals

Spring 2012

  • Daniel S. Myers
  • Office: 4378 CS&S
  • Telephone: 890-0015
  • E-mail: dsmyers at cs.wisc.edu
  • Office Hours: 9:30 - 11:00 Mondays, 2:00 - 4:00 Thursdays
  • 11:00 - 11:50 MWF, 1325 CS
Course URL http://www.cs.wisc.edu/~dsmyers/cs547

General Course Information

This course provides an introduction to the state-of-the-art analytic modeling techniques that are used in computer system design. Topics include fundamental performance laws, bottleneck analysis, basic probability and probability distributions, server and network workload characterization, mean value analysis, elementary queueing theory, and the use of these techniques in customized system models. Customized models provide insight into software and hardware bottlenecks and quantify the impact of system and application design decisions.

Anlaytic models been used to design optimized operating system semaphores & scheduling policies, optimized query processing systems for e-commerce, optimized high throughput applications, high performance parallel architectures, bottleneck-free interconnection networks, simple fair bus arbitration protocols, high performance Internet protocols such as near-optimal video streaming protocols and a new near-optimal TCP protocol.

Analytically-guided designs have been adopted commercially because they are relatively easy to implement and because they have near-optimal performance. The course focuses on the techniques that have universal application, and also covers example use of the techniques in customized models to illustrate how the techniques are applied and the insights that can be obtained.


  • Introduction
  • Fundamental laws
  • Bounds and approximations
  • Probability overview
  • Single-server queues
  • Open queueing networks
  • Closed queueing networks and mean-value analysis
  • Multi-class and priority queueing networks
  • Customized models
  • Queueing theory using Markov chains


  • Quantitative System Performance, E.D. Lazowska, J. Zahorjan, G.S. Graham, and K.C. Sevcik

    This text was originally published in 1984 and is now available on the web. Some of the examples are now enjoyably out of date, but it contains good, practically-oriented descriptions of several important modeling techniques. We'll refer to it several times during our lectures, particularly for the material on bounds and approximations.

  • The following books are also useful resources. They are generally available at UW libraries, or you can borrow them from me.
    • Queueing Systems Volume 1: Theory, L. Kleinrock
    • A First Course in Probability, S. Ross
    • Probability, Stochastic Processes, and Queueing Thoery, R. Nelson

  • UW math professor Timo Seppäläinen has prepared a set of notes on probability theory that may be helpful.

  • CS professors Remzi and Andrea Arpaci-Dusseau are working on an operating systems book. Their chapters are a good resource for reviewing systems topics.


  • Basic knowledge of computer organization and systems. Some familiarity with probability theory is helpful, but not required.


  • You may discuss assignments with your classmates. However, you may not copy answers, code, or collaborate to complete an assignment. Everything you submit must be your own unique work.

  • Submitting someone else's work as your own is academic misconduct. Cheating and plagiarism will be dealt with in accordance with University procedures (see the Academic Misconduct Guide for Students).

  • Homework 1 (assigned 1/27, due 2/3 in class)
  • Homework 2 (assigned 2/3, due 2/10 in class)
  • Homework 3 (assigned 2/10, due 2/17 in class)
  • Homework 4 (assigned 2/17, due 2/24 in class)
  • Homework 5 (assigned 2/24, due 3/2 in class)
  • Homework 6 (assigned 3/2, due 3/9 in class)
  • Homework 7 (assigned 3/23, due 3/30 in class)
  • Homework 8 (assigned 4/20, due 4/27 in class)
  • Homework 9 (assigned 5/4, due 5/11 in class)


    • Approximately: 50% homework, 25% midterm, 25% final.
    • One assignment most weeks.
    • Some assignments will require programming. There is no required language, but MATLAB is recommended for assignments that require plotting and manipulating large amounts of data.


    • One midterm and one final exam.
    • Both exams will be take-home and emphasize model design and interpretation.
    • Midterm: the week of March 12.
    • Final: given the last week of class, due on or before May 18.

Lecture Notes

These are summaries of the material covered in each lecture. They are provided as a reference to what was covered on each day. I strongly recommend you attend each lecture and take your own notes.

Please let me know if you find any mistakes.

Handouts and Extra Material

Computer Sciences | UW Home