程序代写代做代考 database capacity planning chain mips algorithm week01

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
@cs.cmu.edu

Arun Iyengar† Erich Nahum† Adam Wierman§
†IBM T.J. Watson Research Center

Yorktown Heights, NY USA
@us.ibm.com

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.