week01
COMP9334 1
COMP9334
Capacity Planning of Computer Systems
and Networks
Week 1: Introduction to Capacity
Planning
Chun Tung Chou
About your lecturer
• Research in Computer Networks and Embedded Systems
• Example research projects
• Derive efficient algorithms for embedded devices
• Enabling biological computers to talk to each other
• Enabling nano-scale devices to talk to each other
S1, 2017 COMP9334 2
• Tools I use in my research
• Measurements
• Mathematical analysis
• Simulation
• Program and test
http://www.cse.unsw.edu.au/~ctchou/
S1, 2017 COMP9334 3
Course organisation
• Course web site: www.cse.unsw.edu.au/~cs9334
• Email: cs9334@cse.unsw.edu.au
• Read the course outline
• Lectures and Tutorials: Tue 12-3, Webster B
• Either
• 3-hour lecture
• 2-hour lecture + 1-hour tutorial
S1, 2017 COMP9334 4
Course objective:
• Aim: The design of computer systems and networks to
meet performance specifications
• Example problem: You want to design a computer system
that can deal with 400,000 HTTP hits per minutes. How
can you make sure that your system will meet this
demand?
• You will learn how to solve capacity planning problems
using mathematical modelling.
S1, 2017 COMP9334 5
How to learn?
• Lectures
• Key concepts, illustration by small examples
• Don’t just depend the lecture notes, you must
• Read the reference materials too
• Revision problems
• Try if you can solve the problem
• Try also the exercises in the book
• Use discussion board
• Don’t think your question is silly, other may have the same problem
• The key is understanding, not memorisation
• Mathematics is something that you can get used to
S1, 2017 COMP9334 6
Resources
• Books and reference materials
• We will use materials from a number of books
• Available in library as hard copy or electronically
• Two key books:
• Menasce et al. Performance by Design. PH. 2004 (Hard copy)
• Harchol-Balter. Performance Modelling and Design of Computer
Systems. CUP, 2013. (Electronic)
• On-line resources
• Journal and conference articles
• IEEE and ACM
• Solving mathematical problems
• Polya, “How to solve it?” (Highly recommended)
S1, 2017 COMP9334 7
Assessment
• Three assessment components
• Assignment (15%)
• Project (20%)
• Final exam (open book, no laptop/tablet) (65%)
• Assignment: Extended tutorial questions
• Project: Simulation (coding + statistics)
• Overall mark:
• C = Assignment + Project -> Rescale C to be out of 100
• E = Exam mark -> Rescale E to be out of 100
• Overall mark = weighted harmonic mean of C and E
• 1 / (0.65/E + 0.35/C)
• Implication of harmonic mean
S1, 2017 COMP9334 8
Assumed knowledge
• Mathematics
• Probability
• Probability density function, independence, conditional probability
• Statistics
• Vectors and matrices, linear equations
• Differentiation and integration
• A good review of probability is in Chapter 3 of Harcol-
Balter, “Performance Modeling and Design of Computer
Systems”
A quick test on probability
• Probability is fun and very useful, but is sometimes tricky
• Prof. Sheldon Cooper (Big Bang Theory) made a wrong
argument in the following clip. Can you use the language
of probability to explain his error?
• https://www.youtube.com/watch?v=bjUwSHGsG9o
S1, 2017 COMP9334 9
• Sheldon’s reply on why he thought the person’s name
should be Mohammed Li. “Mohammed is the most common
first name in the world. Li the most common surname. As I
didn’t know the answer, I though that gave me a
mathematical edge.”
S1, 2017 COMP9334 10
Lecture outline
• Capacity planning
• Why?
• What?
• Quality of service metrics
• Quantitative performance analysis çè Capacity Planning
• What techniques you will learn
• More quality of service metrics
• Queueing models
• Queues è Waiting time
S1, 2017 COMP9334 11
Why capacity planning?
S1, 2017 COMP9334 12
Why capacity planning?
• The aim of capacity planning is to improve performance of
computer systems by adding “capacity”.
• What is performance?
• What is capacity?
S1, 2017 COMP9334 13
Design of an e-Commerce systems
• Functional requirements
• Product search, database management functions etc
• Search correctness, algorithmic efficiency
• Computer and network security
• System performance
• E.g. Can the computer system return database search within 20ms if
there are 500 search queries per second?
• If not, should we buy more servers? How many?
performance
capacityWorkload
• Can you think of other system performance requirements?
S1, 2017 COMP9334 14
Web search engine
• Say you are planning a computer system which will host a
search engine that rivals Google
• Current expected workload
• 1000 searches per second
• Performance specification
• Return results within 10ms
• What hardware and network should you use?
• How many servers? How much disk space? Etc.
• What if workload is expected to increase by 50% in one
year, can the system still maintain its performance?
performance
capacity
• Question: Can you think of other capacity parameters?
S1, 2017 COMP9334 15
Capacity planning problems
• Focused on capacity planning of computer systems and
networks
• Elements of a capacity planning problems
• Given:
• Workload specifications
• Performance specifications
• Find:
• Capacity e.g. hardware or network requirements, personnel
requirements etc.
• Capacity planning problems are everywhere in life.
Brainstorm with your neighbours to come out with some
capacity planning problems in real life. For each problem, you
must identify the workload, performance and capacity
parameters.
S1, 2017 COMP9334 16
Capacity planning motivations
• Importance of performance
• Can be life and death
• Availability of critical infrastructure e.g. emergency services
• Customer satisfaction
• Availability
• Response time
• The italicised terms are examples of computer system
related performance metrics
• Also known as Quality of service (QoS) metrics
S1, 2017 COMP9334 17
Response time
• Response time
• What is it? (Next slide)
• Possible performance specifications
• Mean response time is less than 1 s when no more than 5000
requests arrive per second
• 95% of the requests are completed within 1s when no more
than 5000 requests arrive / s
• Note: Workload characteristics are also part of the performance
specification
S1, 2017 COMP9334 18
Response time of a system
Request arrives
at time t1
Request
completes
and leaves
at time t2
Response time = t2 – t1.
Measured in seconds. Can be expressed as mean, standard
deviation, probability distribution etc.
S1, 2017 COMP9334 19
Availability
• Fraction of time the system is up and useable by users
• Ex: It is common for Internet Service Providers (ISP) to sign
Service Level Agreement (SLA) with their commercial customers.
One ISP guarantees that its network outage is less than 6 hours
per 30 days. The network availability is 1 – 6/(30*24) = 99.17%
S1, 2017 COMP9334 20
Lecture outline
• Capacity planning
• Why?
• What?
• Quality of service metrics
• Quantitative performance analysis çè Capacity Planning
• What techniques you will learn
• More quality of service metrics
• Queueing models
• Queues è Waiting time
S1, 2017 COMP9334 21
Capacity Planning è Performance analysis
• Capacity planning question:
• A web server needs to complete an HTTP request within 20ms
when there are 500 HTTP requests per second, what CPU speed
do you need?
• Let us turn the capacity planning question into a
performance analysis question
• Performance analysis question:
• If the web server has a CPU with x MIPS, what is the response
time when there are 500 HTTP requests per second?
• If you can solve the performance analysis question for any
value of x, you can also solve the capacity planning
question
Exercise:
• As a capacity planner, your task is to choose the CPU speed
(in MIPS) of a web server so that the mean response time to
a specific workload is no more than 25ms.
• You talk to a performance analyst about your problem. The
analyst knows an algorithm that predicts the mean response
time for any CPU speed.
• You take the algorithm and plug in a number of different CPU
speeds. The results are recorded below.
• Can you solve your capacity planning problem?
S1, 2017 COMP9334 22
CPU Speed (MIPS) Predicted mean response time (ms)
2000 40
2500 32
3000 26
3500 22
4000 18
S1, 2017 COMP9334 23
Three performance analysis strategies
• Build the system and perform measurement
• Simulation
• Mathematical modelling
• This course will look at
• Quantitative methods to determine the QoS metrics of computer
systems using
• Queueing networks
• Markov chains
• Using simulation to study performance
• Optimisation methods such as linear and integer programming
S1, 2017 COMP9334 24
Ex. 1: Database server
• A database server has a CPU and 2 disks (Disk1 and
Disk2)
• The response time is 10s for each query. How can we
improve it?
• Change the CPU? To what speed?
• Add a CPU? What speed?
• Add a new disk? What to move there?
• Technique: Queueing networks
S1, 2017 COMP9334 25
Ex 2: Composite web services
• Aim: Determine response time
• Queueing networks with fork-join
Picture: IEEE Internet Computing Feb 2004
S1, 2017 COMP9334 26
Ex. 3: Server farm power allocation
• A server farm consists of multiple servers
• The servers can run at
• Higher clock speed with higher power
• Lower clock speed with lower power
• Ex: Given
• Higher power = 250W, lower power = 150W
• Power budget = 3000W
• You can have
• 12 servers at highest clock speed
• 20 servers at lowest clock speed
• Other combinations
• Which combination is best?
• Queueing theory
S1, 2017 COMP9334 27
Ex 4: Internet data centre availability
• Distributed data centres
• Availability problem:
• Each data centre may go down
• Mean time between going down is 90 days
• Mean repair time is 6 hours
• Can I maintain 99.9999% availability for 3 out of 4 centres
• Technique: Markov Chain
S1, 2017 COMP9334 28
Ex 5: Network expansion
• You would like to add communication links to a network. The
design questions are: Where to add? How much capacity?
• Technique: Integer programming
S1, 2017 COMP9334 29
Why probability?
• The mathematical methods that we are going to study are
based on probability theory. Why probability?
• Let us say 500 HTTP requests arrive at the web server in
one second
• A deterministic world will mean
• An HTTP request arrives every 2ms
• But the arrival pattern is not deterministic, it’s random
2ms
time
time
S1, 2017 COMP9334 30
Lecture outline
• Capacity planning
• Why?
• What?
• Quality of service metrics
• Quantitative performance analysis çè Capacity Planning
• What techniques you will learn
• More quality of service metrics
• Queueing models
• Queues è Waiting time
S1, 2017 COMP9334 31
QoS metrics
• We have seen 2 QoS metrics
• Response time
• Availability
• More QoS metrics
• Throughput
• Reliability
• Scalability
S1, 2017 COMP9334 32
Throughput (1)
• The rate at which requests are completed
• Ex: For network routers, throughput can be measured in
• Packets per second (pps)
• Ex: 10 Mpps for 40-byte packets
• Note: Should specify packet size
• Mb/s
• Other throughput measures
• Web site: HTTP requests/s, bytes/s
• CPU: MIPS, FLOPS
S1, 2017 COMP9334 33
Throughput (2)
• Throughput is a function of the load
• A disk takes 0.01s to perform an I/O operation
• Maximum number of I/O operation per s = 100
• If 50 I/O operations arrive per second, the throughput = 50 I/O
operations/s
• If 110 I/O operations arrive per second, the throughput = 100 I/O
operations
• Can you find a formula relating throughout, offered load and max
capacity?
• Throughput = min( offered load, max capacity)
S1, 2017 COMP9334 34
Throughput (2*)
• If you find it difficult to do the previous page, you can try
this real life analogy.
• Throughput is a function of the load
• A barister can make a cup of coffee every 30 seconds
• Maximum number of cups of coffee the barister can make in an
hour = 120
• If 50 customers arrive in an hour and each customer orders a
coffee, the barister’s throughput = 50 coffees / hour
• If 150 customers arrive in an hour and each customer orders a
coffee, the barister’s throughput = 120 coffees / hour
S1, 2017 COMP9334 35
Throughput (3)
Thrasing = congestion collapse
Throughput (cont.)
Thrashing = congestion collapse
Page 9
S1, 2017 COMP9334 36
Throughput (4)
• Performance evaluation can be used to determine the
maximum throughput of computer systems
• Example: bottleneck analysis
• Topic for next week
S1, 2017 COMP9334 37
Reliability
• The probability that a system will function
• Possible metrics are
• Mean-time-to-failure (MTTF)
• The mean time between two system failures
• Probability of system failure at any time
• Related metric
• Mean-time-to-repair (MTTR)
S1, 2017 COMP9334 38
Scalability
• How fast does performance degrade with increasing load or users?
Which system is more scalable?
S1, 2017 COMP9334 39
Lecture outline
• Capacity planning
• Why?
• What?
• Quality of service metrics
• Quantitative performance analysis çè Capacity Planning
• What techniques you will learn
• More quality of service metrics
• Queueing models
• Queues è Waiting time
S1, 2017 COMP9334 40
Quantitative performance analysis (3)
• Sample performance analysis question:
• If the web server has a CPU with x MIPS, what is the response
time when there are 500 HTTP requests per second?
• Performance analysis question:
• Given:
• A computer system with a certain capacity
• The workload
• Find
• The performance (response time, throughput etc) of the system
• Our method is:
• Build analytical models of computer systems
• An important part of the analytical model is “queue”
• You can surely relate “queues” to “waiting time”
S1, 2017 COMP9334 41
Single server FIFO queue
• Queueing Theory terminologies
• Server: Processing unit
• FIFO: First-in first-out
• Work conserving server
• The server cannot be idle when there are jobs waiting to be
processed in the queue
• Ex: Shop with only one checkout counter
• The server is a resource
• Queues result from resource contention
• Main concern: response time
S1, 2017 COMP9334 42
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
Assumption: server is idle when job #1 arrives
1 time
2 4
Job #1 is admitted into the server immediately since the
server is idle.
Job #1 is completed and leaves the system at time 4.
S1, 2017 COMP9334 43
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
21 time
2 4 6 10
Job #2 arrives when the server is idle. It gets admitted
immediately.
Job #2 will be completed at time 10.
S1, 2017 COMP9334 44
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
2 31 time
2 4 6 10 14
Job #3 arrives when Job #2 is being served i.e. the server
is busy. Job #3 has to wait in the queue.
Server starts processing Job #3 immediately after finishing
Job #2.
S1, 2017 COMP9334 45
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
2 31 4 time
2 4 6 10 14 17
Job #4 arrives when the server is processing Job#2 and Job#3
is in the queue. Job #4 joins the queue. It gets served at time
14, immediately after Job#3 is completed.
S1, 2017 COMP9334 46
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
2 31 4 time
2 4 6 10 14 17
• Definition: Response time = Departure time – arrival time
Ex: Response time for Job#4 = 8
• Response time = Waiting time + Processing time
S1, 2017 COMP9334 47
Job index Arrival time Processing time required
1 2 2
2 6 4
3 8 4
4 9 3
2 31 4 time
2 4 6 10 14 17
• Definition: Utilisation = Percentage of time over which the
server is busy
•What is the utilisation of the server over the first 12s?
• 8/12 = 66.7%
S1, 2017 COMP9334 48
Single server FIFO queues
• Can be used to model
• Shop with only one checkout counter
• A single processor processing jobs in FIFO order
• A disk processing job in FIFO order
• Model
• An abstraction of the real system
• Need to capture enough details to meet our analysis requirements
S1, 2017 COMP9334 49
Job index Arrival time Processing time required
1 2 1
2 4 1
3 6 1
4 8 1
1 time
2 3
What is the waiting time for each job?
What is the response time for each job?
What if both inter-arrival time and processing time
are determinisitic?
S1, 2017 COMP9334 50
Determining response time
• Generally we need to know
• The arrival pattern
• Ex: The arrival rate
• Ex: The inter-arrival time statistical distribution
• The service time distribution
• The time required to process the job
• Since we are interested in response time, our models
capture the time related aspects of the real systems e.g.
queueing, processing units
• We will learn different methods to determine response
time in this course
S1, 2017 COMP9334 51
Service time
• Time require to process a request at a resource
• Ex: The service time to send a 1000 byte packet over a 10 kbps link
is 0.8s. In this case,
• Service time = packet size / transmission rate
• Ex: The service time for to get a X byte large file from a disk is
• Seek time + X / transfer rate
• For a class of resources, we have
• Service time = Overhead + Job size / Processing rate
S1, 2017 COMP9334 52
Response time of M/M/1 queue (1)
• M/M/1 queue
• A type of single server queue characterised by
• Average arrival rate of jobs is l
• Average service demand per job is 1/µ
• µ is the processing rate
• Inter-arrival time and service demand are drawn from exponential
distribution
• Queueing theory shows that the mean response time for M/M/1
queue is 1 / (µ – l) if µ > l
S1, 2017 COMP9334 53
Response time of M/M/1 queue (2)
• Example:
• Current system:
• Mean arrival rate l is 2 requests/s
• Mean service time 1/µ = 0.2s => µ = 5
• The response time = 1 / (5 – 2) = 0.33s
• What if arrival rate l is doubled?
• The new response time = 1 / (5 – 4) = 1s
• Nonlinear increase!
• If the new response time is too big, what are your options
assuming you still want the new customers?
S1, 2017 COMP9334 54
Modelling computer systems
• Single server queue considers only a component within
a computer system
• A request may require multiple resources
• E.g. CPU, disk, network transmission
• We model a computer systems with multiple resources
by a Queueing Networks (QNs)
S1, 2017 COMP9334 55
Pictorial representation of single server queues
Waiting line
Queue
Arriving
customers
CPU
Arriving jobs
Finished
jobs
Jobs waiting to be
processed
server
S1, 2017 COMP9334 56
Pictorial representation of queues
Systems with m servers
Waiting line
1
2
m
S1, 2017 COMP9334 57
A simple database server
A transaction may visit the CPU and disk multiple times.
The server has a CPU and a disk.
Open queueing network
External arrivals
Workload intensity specified by arrival rate
Unbounded number of customers in the system
In equilibrium, flow in = flow out
) throughput = arrival rate
Page 26
S1, 2017 COMP9334 58
DB servers for batch jobs
• Example: Batch processing system
• For summarising transactions only
• No on-line transactionsDatabase server for batch jobs
Running batch jobs overnight
E.g. producing managerial reports
Assume once a job has completed, a new job starts
Maintain constant number of customers in the system
A closed queueing network
Page 25
S1, 2017 COMP9334 59
Open vs. closed queueing networks (1)
Open queueing
network
• External arrivals
• Workload intensity
specified by arrival
rate
Closed queueing network
• No external arrivals
• Workload intensity
specified by customer
population
Database server for batch jobs
Running batch jobs overnight
E.g. producing managerial reports
Assume once a job has completed, a new job starts
Maintain constant number of customers in the system
A closed queueing network
Page 25
Open queueing network
External arrivals
Workload intensity specified by arrival rate
Unbounded number of customers in the system
In equilibrium, flow in = flow out
) throughput = arrival rate
Page 26
S1, 2017 COMP9334 60
Open vs. closed queueing networks (2)
Open queueing network
• Unbouned #customers
• For stable equilibrium
Throughput = arrival
rate
Closed queueing network
• Known #customers
• Throughput depends on
# customers etc.
Database server for batch jobs
Running batch jobs overnight
E.g. producing managerial reports
Assume once a job has completed, a new job starts
Maintain constant number of customers in the system
A closed queueing network
Page 25
Open queueing network
External arrivals
Workload intensity specified by arrival rate
Unbounded number of customers in the system
In equilibrium, flow in = flow out
) throughput = arrival rate
Page 26
S1, 2017 COMP9334 61
Open vs. closed queueing networks – Terminology
Work in an open
queueing network is
called transaction
Work in a closed
Queueing network is
called jobs
Database server for batch jobs
Running batch jobs overnight
E.g. producing managerial reports
Assume once a job has completed, a new job starts
Maintain constant number of customers in the system
A closed queueing network
Page 25
Open queueing network
External arrivals
Workload intensity specified by arrival rate
Unbounded number of customers in the system
In equilibrium, flow in = flow out
) throughput = arrival rate
Page 26
S1, 2017 COMP9334 62
DB server – mixed model
• The server has both
• External transactions
• Batch jobs
Different techniques are needed to analyse open and
closed queueing networks
Mixed queueing network
Service Level Agreements
Transaction Maximum Average Minimum
Group Response Time (sec) Throughput
Trivial 1.2 –
Medium 2.5 –
Complex 8.0 –
Batch Reports – 20 per hour
Page 28
DB server – Multi-programming level
• Some database server
management systems (DBMS)
set an upper limit on the number
of active transactions within the
system
• This upper limit is called multi-
programming level (MPL)
S1, 2017 COMP9334 63
How to determine a good multi-programming level for external scheduling
Bianca Schroeder§ Mor Harchol-Balter§∗
§Carnegie Mellon University
Department of Computer Science
Pittsburgh, PA USA
Arun Iyengar† Erich Nahum† Adam Wierman§
†IBM T.J. Watson Research Center
Yorktown Heights, NY USA
Abstract
Scheduling/prioritization of DBMS transactions is im-
portant for many applications that rely on database back-
ends. A convenient way to achieve scheduling is to limit
the number of transactions within the database, maintain-
ing most of the transactions in an external queue, which can
be ordered as desired by the application. While external
scheduling has many advantages in that it doesn’t require
changes to internal resources, it is also difficult to get right
in that its performance depends critically on the particular
multiprogramming limit used (the MPL), i.e. the number of
transactions allowed into the database. If the MPL is too
low, throughput will suffer, since not all DBMS resources
will be utilized. On the other hand, if the MPL is too high,
there is insufficient control on scheduling. The question of
how to adjust the MPL to achieve both goals simultaneously
is an open problem, not just for databases but in system de-
sign in general. Herein we study this problem in the context
of transactional workloads, both via extensive experimenta-
tion and queueing theoretic analysis.
We find that the two most critical factors in adjusting the
MPL are the number of resources that the workload utilizes
and the variability of the transactions’ service demands. We
develop a feedback based controller, augmented by queue-
ing theoretic models for automatically adjusting the MPL.
Finally, we apply our methods to the specific problem of ex-
ternal prioritization of transactions. We find that external
prioritization can be nearly as effective as internal prioriti-
zation, without any negative consequences, when the MPL
is set appropriately.
1. Introduction
Many of todays web applications are largely dependent
on a backend database, where the majority of the request
∗Supported by NSF grants CCR-0133077, CCR-0311383, 0313148,
and a 2005 Pittsburgh Digital Greenhouse Grant.
processing time is spent. For such applications it is often
desirable to control the order in which transactions are exe-
cuted at the DBMS. An e-commerce applications for exam-
ple might want to give faster service to those transactions
carrying a lot of revenue.
Recently, systems researchers have started to investigate
the idea of external scheduling as a method of controlling
the order in which transactions are executed. The basic
mechanism in external scheduling is demonstrated in Fig-
ure 1, and simply involves limiting the number of transac-
tions concurrently executing within the DBMS. This limit
is referred to as the MPL (multi-programming limit). If the
MPL is already met, all remaining transactions are queued
up in an external queue. The application can then control
the order in which transactions are executed by scheduling
the external queue.
DBMS
MPL=4incoming
transactions external
queue
Figure 1. Simplified view of the mechanism used in
external scheduling. A fixed limited number of trans-
actions (MPL=4) are allowed into the DBMS simul-
taneously. The remaining transactions are held back
in an external queue. Response time is the time from
when a transaction arrives until it completes, includ-
ing time spent queueing externally to the DBMS.
Examples of recent work on external scheduling come
from many areas including storage servers, web servers, and
database servers. For example, Jin et al. [9] develop an ex-
ternal scheduling front-end to provide proportional sharing
among the requests at a storage service utility. Blanquer et
al. [4] study external scheduling for quality of service pro-
Proceedings of the 22nd International Conference on Data Engineering (ICDE’06)
8-7695-2570-9/06 $20.00 © 2006 IEEE
• A help page from SAP explaining MPL
• http://dcx.sap.com/1200/en/dbadmin_en12/running-s-3713576.html
• Picture from Schroder et al. “How to determine a good multi-
programming level for external scheduling”
S1, 2017 COMP9334 64
DB Server – Interactive systems
• Modelling client interaction
• A client sends a job to the server
• Upon receiving results from the server, the client goes into thinking
mode and send a next job
• Model the client as a delay source with no waiting line.
S1, 2017 COMP9334 65
Capacity planning in action
• Modelling
• Computer Systems —> Queueing Networks
• You will learn different techniques to analyse a number of
different classes of queueing networks:
• Open/closed single/multiple class
• Operational Analysis & Bottleneck Analysis
• The last two will be the topics for next week
• The QN model will allow you to do what-if analysis?
• What if the arrival rate increases by 20%
• The increase in arrival rate has increased response time by 10%.
What if I change the disk to one that is 20% faster, will I have restored
the original performance?
S1, 2017 COMP9334 66
References
• Reading:
• Menasce et al, Chapters 1 & 2
• OR
• Harcol-Balter. Chapters 1 & 2.
• Exercises:
• Revision problems:
• See course web site
• You are expected to try these exercises. Solutions will be available
on the web.