CS601 Recitations
For more infomation about this course see the CS601
home page.
There are few absolute truths in systems in systems
development. As the base technology changes the nature of the
best solution to problems changes. The study of systems is
largely the study of engineering tradeoffs. Thus, a component of
developing sophistication about systems is the ability to
question and analyze design decisions and the benefits of
particular level of technology. (For more information of
available technology see the US
technology road map.)
While the lectures in CS601 will present the fundamental
principles of systems, the recitations will be devoted to the
process of analyzing the tradeoffs between these principles and
between these principles and engineering reality. During each
recitation we will discuss one or more of the following
questions.
- Under what circumstances does it make sense to compromise
speed? When is a module in a system fast enough?
partially discussed on Sept.30
- What does it mean for an interface to be simple?
- Does a scheduler need to be "fair" in its
allocation of time to equal priority tasks? When does it
make sense not to have a scheduler at all?
to be discussed Oct. 7
- What problems need to be addressed to build a Petaflop
scale machine? What problems could such a machine solve
that could not be solved today?
discussed on Oct. 21 and 28
- Distinction between threads and domains, parallels with
software systems, closures, etc.
discussed on Nov. 4
- Cache implementation strategies. Division of cache
structures into name management and fast lookup. Use of
caches in situations other than processors caches, eg.
memoization, object oriented programming dispatch (a la
SOAR).
discussed on Nov. 11
- Cache tradeoffs. Advantages and disadvantages of
instruction/data caches. Special tricks that can be played
with instruction caches. What consistency approaches
should be used when there is more than one level of
cache?
discussed on Nov. 18
- Garbage collection. Different approaches to garbage
collection. What is required to make a garbage collector
incremental?
to be discussed on Nov. 22
- Java machines and network computers. What are the
tradeoffs involved in developing a Java chip? In what ways
can its cost/performance exceed that of a conventional
processor. What are the tradeoffs in developing a network
computer? How should software be distributed? How should
personal file storage be handled?
to be discussed on Dec. 2